Bài giảng Lập trình Java - 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
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java - 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 Lập trình Java - 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:
- bai_giang_lap_trinh_java_bai_2_co_ban_servlet.pdf