[Lập trình Servlet/JSP] Servlet là gì? Vòng đời Servlet.

Đăng bởi: Admin | Lượt xem: 227 | Chuyên mục: Servlet/JSP

Bài viết này chúng ta cùng tìm hiểu kiến thức cơ bản về Servlet, Servlet là gì? Vòng đời của Servlet?


1- Giới thiệu

Tài liệu này được viết dựa trên:

  • Eclipse 4.6 (NEON)

  • Servlet 3.0

  • Tomcat 8

2- Servlet là gì?

Java Servlet là chương trình chạy trên một Web hoặc ứng dụng máy chủ (Application Server) và hành động như một lớp trung gian giữa một yêu cầu đến từ một trình duyệt Web hoặc HTTP khách (Client) khác và cơ sở dữ liệu hoặc các ứng dụng trên máy chủ HTTP (HTTP Server).

Sử dụng Servlet, bạn có thể thu thập đầu vào từ người dùng thông qua các hình thức trang web, từ một cơ sở dữ liệu hoặc một nguồn khác, và tạo ra các trang web động.

3- Vòng đời của Servlet

Hình dưới đây minh họa về vòng đời của một Servlet. Từ khi nó được tạo ra, xử lý các đòi hỏi từ người dùng, cho tới lúc nó bị hủy.

Có 5 bước:

  1. Tải lớp Servlet vào bộ nhớ.
  2. Tạo đối tượng Servlet.
  3. Gọi phương thức init() của Servlet.
  4. Gọi phương thức service() của Servlet.
  5. Gọi phương thức destroy() 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 (load) 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ể bắt buộc Servlet Container (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 được thực thi khi bộ chứa Servlet (Servlet Container) gỡ bỏ tải (unloaded) một Servlet.

Bạn có thể xem hình minh họa tiếp theo để hiểu hơn về vòng đời của Servlet.

Khi yêu cầu (request) của người dùng gửi tới ServletServlet sẽ gọi phương thức service() để phục vụ yêu cầu của người dùng, service() sẽ gọi một trong hai phương thức doGet() hoặc doPost(). Trong Servlet của bạn, bạn cần ghi đè và xử lý tại các phương thức này.

Như vậy khi người dùng gửi yêu cầu một ServletServlet sẽ được tạo ra tại thời điểm có yêu cầu lần đầu tiên tới, đồng thời sẽ gọi  phương thức init() của servlet để khởi tạo cho nó, init() được gọi duy nhất 1 lần. Phương thức destroy() dùng để hủy servlet, nó sẽ được gọi một lần duy nhất khi bạn gỡ bỏ triển khai (undeloy) ứng dụng web hoặc tắt (shutdown) Web Server (Máy chủ web).

Xem bài học tiếp theo tại đây.

vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: Servlet/JSP