Bài giảng Phát triển Web với Java EE - Bài 2: Cơ bản Servlet

Sự tiến hóa của công nghệ web

 Do đó phát sinh nhu cầu sử dụng trang web như một ứng

dụng:

• Kết nối đến CSDL, do đó web có thể lưu trữ lượng

thông tin lớn

• Nhận yêu cầu từ phía client, xử lý và tính toán trên

server

• Nhiều người có thể cùng lúc cập nhật, thêm mới dữ liệu

cho web mà không cần hiểu biết ngôn ngữ lập trình

 Có rất nhiều công nghệ để cho phép ta đưa ứng dụng vào chạy

trong môi trường web như: CGI, ASP, ISAPI, JSP, Servlet

trong số đó có JSP/Servlet là công nghệ của JavaCGI là gì?

 Là một chuẩn để viết ứng dụng web, được lập trình

bằng C, C++ hoặc Perl.

 CGI cho phép máy chủ web gọi chương trình bên ngoài

và chuyển thông tin yêu cầu tới một chương trình bên

ngoài khác để xử lý.

 Với mỗi yêu cầu, chương trình CGI sẽ khởi tạo một tiến

trình mới

pdf 44 trang kimcuc 9220
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển Web với Java EE - Bài 2: Cơ bản Servlet", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phát triển Web với Java EE - Bài 2: Cơ bản Servlet

Bài giảng Phát triển Web với Java EE - Bài 2: Cơ bản Servlet
Bài 2: Cơ bản Servlet 
Mục tiêu bài học 
 - Servlet là gì? 
 - Servlet Scope Object 
 - Servlet Request 
 - Servlet Response 
 - Section Tracking 
Đặc điểm của công nghệ web tĩnh 
 Chỉ chứa các nội dung cố định, 
 Khó cập nhật nội dung, khó nâng cấp mở rộng nên chỉ 
thích hợp với những doanh nghiệp nhỏ, 
 Không thân thiện với người dùng, người dùng muốn cập 
nhật, thêm mới thông tin thì phải hiểu biết ngôn ngữ lập 
trình HTML 
 Khả năng tương tác yếu 
Sự tiến hóa của công nghệ web 
 Do đó phát sinh nhu cầu sử dụng trang web như một ứng 
dụng: 
• Kết nối đến CSDL, do đó web có thể lưu trữ lượng 
thông tin lớn 
• Nhận yêu cầu từ phía client, xử lý và tính toán trên 
server 
• Nhiều người có thể cùng lúc cập nhật, thêm mới dữ liệu 
cho web mà không cần hiểu biết ngôn ngữ lập trình 
 Có rất nhiều công nghệ để cho phép ta đưa ứng dụng vào chạy 
trong môi trường web như: CGI, ASP, ISAPI, JSP, Servlet 
trong số đó có JSP/Servlet là công nghệ của Java 
CGI là gì? 
 Là một chuẩn để viết ứng dụng web, được lập trình 
bằng C, C++ hoặc Perl. 
 CGI cho phép máy chủ web gọi chương trình bên ngoài 
và chuyển thông tin yêu cầu tới một chương trình bên 
ngoài khác để xử lý. 
 Với mỗi yêu cầu, chương trình CGI sẽ khởi tạo một tiến 
trình mới 
CGI là gì? 
CGI là gì? 
 Nhược điểm của CGI 
1. Nếu số client tăng thì thời gian trả lời yêu cầu từ client 
tăng lên 
2. Với mỗi yêu cầu, nó khởi tạo một tiến trình trong khi 
máy chủ Web bị hạn chế về tài nguyên 
Servlet là gì? 
 Servlet là các đối tượng Java, mở rộng chức năng của 
một HTTP server, do đó được viết bằng ngôn ngữ Java 
 Là những chương trình độc lập platform và chạy phía 
server 
 Cơ chế hoạt động theo mô hình CGI mở rộng 
 Chương trình servlet: 
• Thường extends class HttpServlet. Không có method 
main 
• Phải được dịch ra ở dạng byte-code và khai báo với 
web server 
Servlet là gì? 
Servlet là gì? 
 Servlet có nhiều ưu điểm so với CGI. 
• Hiệu suất xử lý tốt hơn(better performance): vì nó tạo 
ra một thread cho một yêu cầu chứ không phải tiến 
trình. 
• Khả chuyển: bởi vì servlet được phát triển từ ngôn 
ngữ Java 
• Mạnh(Robust): Servlet được quản lý bởi JVM, JVM chủ 
động quản lý bộ nhớ và thu thập rác. 
• An toàn(Secure): bởi vì Java là ngôn ngữ an toàn 
Vòng đời của servlet 
Vòng đời của Servlet 
 Có 5 bước: 
• Tải Servlet Class vào bộ nhớ. 
• Tạo đối tượng Servlet. 
• Gọi method servlets init() 
• Gọi method servlets service(). 
• Gọi method servlets destroy() 
Vòng đời của Servlet 
 Bước 1, 2 và 3 được thực thi một lần duy nhất, khi mà 
servlet được nạp lần đầu. Mặc định các servlet không 
được tải lên cho tới khi nó nhận một đòi hỏi đầu tiên từ 
người dùng. Bạn có thể buộc ServletContainer (Bộ chứa 
các servlet) tải các servlet khi nó khởi động. 
 Bước 4 được thực thi nhiều lần, mỗi khi có đòi hỏi từ 
phía người dùng tới servlet. 
 Bước 5 nó được thực thi khi bộ chứa servlet (Servlet 
Container) trút bỏ (unloaded) servlet 
Các phương thức trong vòng đời Servlet 
Các phương thức trong vòng đời Servlet 
Các phương thức trong vòng đời Servlet 
int() đọc tham số cấu hình 
Thiết lập các tham số trong web.xml 
destroy() 
service() 
 Method service() của servlet được gọi mỗi khi có request 
từ client đến. Tùy vào các tình huống cụ thể nó gọi đến 
một trong các method doGet(..), doPost(...). Tại các servlet 
của bạn, bạn phải ghi đè và xử lý tại các method này 
service() 
service() 
service() 
doGet() và doPost() 
doGet() và doPost() 
Ví dụ doGet() 
Mô hình Servlet Request & Response 
 Nhiệm vụ của Servlet: 
• Nhận client request ( Hầu hết ở dạng HTTP request) 
• Trích xuất 1 số thông tin từ request 
• Xử lý nghiệp vụ ( truy vấn DB, gọi EJBs,) hoặc sinh nội 
dung động 
• Tạo và gửi response cho client ( hầu hết ở dạng HTTP 
response ) hoặc forward request cho servlet khác 
Servlet Request 
Servlet Request 
Servlet Request 
Servlet Request 
Servlet Response 
Servlet Response 
 Cấu trúc Response 
Servlet Response 
 Cấu trúc Response 
Servlet Response 
 Cấu trúc Response 
Response Header dùng làm gì? 
Phương thức thiết lập Response Header 
Response Body 
Session Tracking 
 Vì phương thức HTTP là stateless (ko lưu các thông tin 
lịch sử), điều này ảnh hưởng sâu sắc đến lập trình ứng 
dụng web. Có 4 kỹ thuật để lưu dấu session: 
• URL rewritting – Thêm các tham số vào cuối URL 
• Hidden fields – Sử dụng các trường ẩn 
• Cookies – Sử dụng cookie để trao đổi dữ liệu giữa client 
và server 
• Session objects – Sử dụng các đối tượng có phạm vi 
(scope) là session để truyền thông tin. 
Session Tracking 
 URL Rewritting: 
 VD:  
 Phần sau ?x=abc&y=xyz là phần được thêm vào để 
truyền 2 parameter x và y 
 Để lấy giá trị này ta dùng lệnh 
request.getParameter(“x”), tương tự với y. 
Session Tracking 
 Hidden fields: 
 
 Để lấy giá trị này ta dùng lệnh 
request.getParameter(“hField”). 
Session Tracking 
 Cookies: được lưu bởi server và gửi về client cùng 
response. Request được gửi tới server cùng với cookie 
nhưng ko thay đổi giá trị của cookie. Giá trị của cookie 
được lưu trong bộ nhớ (ổ cứng ) của client. 
Session Tracking 
 VD1: lưu cookie (sử dụng response) 
 VD2: đọc cookie 
XIN CẢM ƠN! 

File đính kèm:

  • pdfbai_giang_phat_trien_web_voi_java_ee_bai_2_co_ban_servlet.pdf