Servlet – Kiến trúc của servlet trong java

  • Monday 28/04/2025

Servlet là gì?

Servlet là một thành phần phía server trong ngôn ngữ lập trình Java, dùng để xử lý các yêu cầu từ client (thường là trình duyệt web) và trả về phản hồi (response). Nó hoạt động trong môi trường Servlet Container (như Apache Tomcat, Jetty, GlassFish…).

Servlet thường được dùng để tạo ra các ứng dụng web động – ví dụ như xử lý form, truy cập cơ sở dữ liệu, tạo HTML động, v.v.

Servlet

Tổng quan kiến trúc của Servlet

Các đối tượng Java chạy trên máy chủ web hoặc máy chủ ứng dụng. Chúng đóng vai trò là trung gian giữa các yêu cầu (request) từ client (thường là trình duyệt web) và các tài nguyên hoặc logic nghiệp vụ trên server. Kiến trúc của Servlet được xây dựng dựa trên mô hình request-response (yêu cầu-phản hồi) và tuân theo một số thành phần và quy trình chính.

Kiến trúc Servlet được xây dựng theo mô hình Client-Server, trong đó:

1. Client (người dùng/trình duyệt)

  • Gửi yêu cầu HTTP tới server thông qua URL.

  • Thường sử dụng các phương thức HTTP như: GET, POST, PUT, DELETE.

2. Web Server (Servlet Container)

  • Nhận request từ client.

  • Xác định Servlet tương ứng dựa vào cấu hình URL.

  • Khởi tạo Servlet (nếu chưa có), gọi các phương thức xử lý (service, doGet, doPost…).

  • Trả lại phản hồi (response) cho client.

3. Servlet

  • Là một Java class kế thừa từ HttpServlet và override các phương thức như doGet(), doPost(), v.v.
  • Giao tiếp với Servlet Container thông qua API của Java Servlet (javax.servlet hoặc jakarta.servlet).

Servlet

Các thành phần chính trong kiến trúc của Servlet

Một thành phần chính:

1. Client (Trình Duyệt Web)

Người dùng tương tác với ứng dụng web thông qua trình duyệt. Trình duyệt gửi các yêu cầu HTTP (ví dụ: GET, POST) đến server.

2. Web Server (Ví dụ: Apache HTTP Server)

Tiếp nhận các yêu cầu HTTP từ client. Web server không trực tiếp xử lý logic nghiệp vụ mà chuyển các yêu cầu liên quan đến Servlet cho Servlet Container.

3. Servlet Container (Ví dụ: Tomcat, Jetty, GlassFish)

Đây là trái tim của kiến trúc của Servlet. Servlet Container có trách nhiệm:

  • Quản lý vòng đời của Servlet: Tạo, khởi tạo, gọi các phương thức của Servlet (init, service, destroy), và hủy bỏ Servlet khi không còn cần thiết.
  • Cung cấp môi trường runtime cho Servlet: Cung cấp các dịch vụ như quản lý session, bảo mật, concurrency (xử lý đồng thời).
  • Xử lý các yêu cầu từ client: Nhận yêu cầu từ Web Server, xác định Servlet nào sẽ xử lý yêu cầu đó, và chuyển yêu cầu (dưới dạng đối tượng HttpServletRequest) và đối tượng phản hồi (HttpServletResponse) cho Servlet.
  • Quản lý tài nguyên: Cung cấp quyền truy cập đến các tài nguyên như database connection pool, message queue, v.v.
  • Hỗ trợ các giao thức: Chủ yếu là HTTP, nhưng cũng có thể hỗ trợ các giao thức khác.
  • Servlet: Một lớp Java triển khai interface javax.servlet.Servlet (hoặc thường kế thừa từ các lớp tiện ích như javax.servlet.http.HttpServlet). Nó chứa logic nghiệp vụ để xử lý các yêu cầu từ client và tạo ra phản hồi.

4. HttpServletRequest

Một interface đại diện cho yêu cầu HTTP mà client gửi đến server. Nó cung cấp các phương thức để truy cập thông tin về yêu cầu như:

  • Tham số (parameters)
  • Headers
  • Cookies
  • Phương thức HTTP (GET, POST, v.v.)
  • URI (Uniform Resource Identifier)

5. HttpServletResponse

Một interface đại diện cho phản hồi HTTP mà server sẽ gửi lại cho client. Nó cung cấp các phương thức để thiết lập:

  • Status code (ví dụ: 200 OK, 404 Not Found)
  • Headers
  • Cookies
  • Content type (ví dụ: text/html, application/json)
  • Body của phản hồi (dữ liệu trả về cho client)

6. web.xml (Deployment Descriptor – Mô tả triển khai)

Một tệp XML cấu hình ứng dụng web. Servlet chứa các thông tin như:

  • Mapping giữa URL pattern và Servlet (xác định Servlet nào sẽ xử lý yêu cầu đến một URL cụ thể).
  • Các tham số khởi tạo cho Servlet.
  • Các cấu hình liên quan đến security, session, v.v.
  • (Trong các phiên bản Servlet mới hơn, việc cấu hình có thể được thực hiện thông qua annotations trong code Java, giảm sự phụ thuộc vào web.xml).

Servlet

Tóm lại, kiến trúc của Servlet dựa trên sự phối hợp giữa client, web server, servlet container và chính các servlet. Servlet container đóng vai trò trung tâm trong việc quản lý và thực thi các servlet, xử lý các yêu cầu và phản hồi HTTP, tạo nền tảng vững chắc cho việc xây dựng các ứng dụng web Java mạnh mẽ và linh hoạt.

Hy vọng qua bài viết này mọi người sẽ có thông tin hữu ích và hiểu rõ hơn một vài kiến thức cơ bản về kiến trúc của servlet.


P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao
Hosting WordPress

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

5/5 - (1 bình chọn)