Servlet là một thành phần quan trọng trong phát triển Web Java. Nó chạy ở phía máy chủ và được sử dụng để xử lý các yêu cầu của máy khách và trả về các phản hồi. Nguyên tắc hoạt động của nó bao gồm nhiều thành phần và bước Từ yêu cầu do khách hàng khởi tạo đến quá trình xử lý và phản hồi ở phía máy chủ, toàn bộ quá trình diễn ra một cách có trật tự.
Bộ chứa Servlet là môi trường trong đó Servlet chạy và chịu trách nhiệm quản lý vòng đời, phân bổ tài nguyên và xử lý yêu cầu của Servlet. Tomcat là một trong những Servlet container được sử dụng phổ biến, có chức năng mạnh mẽ và hiệu suất tốt. Trong Tomcat, vùng chứa Ngữ cảnh quản lý trực tiếp Trình bao bọc của lớp trình bao bọc Servlet và một Ngữ cảnh tương ứng với một dự án Web. Ví dụ: trong tệp cấu hình Tomcat, bạn có thể định cấu hình các tham số liên quan của ứng dụng web thông qua thẻ
Đặc tả Servlet hoạt động dựa trên một số lớp chính, trong đó ServletConfig, ServletRequest và ServletResponse được tự động liên kết với Servlets. ServletConfig được chuyển tới Servlet trong quá trình khởi tạo để lấy các thuộc tính cấu hình của ServletRequest và ServletResponse được chuyển tới Servlet trong quá trình xử lý yêu cầu để lấy thông tin yêu cầu và đặt thông tin phản hồi tương ứng. Trong vùng chứa Tomcat, có một ứng dụng của mẫu thiết kế mặt tiền. Ví dụ: StandardWrapper và StandardWrapperFacade triển khai giao diện ServletConfig và những gì được chuyển đến Servlet là đối tượng StandardWrapperFacade, đảm bảo rằng Servlet thu được dữ liệu được yêu cầu mà không để lộ dữ liệu không liên quan. Tương tự, ServletContext có cấu trúc tương tự. Đối tượng thực tế thu được trong Servlet là ApplicationContextFacade, được sử dụng để lấy thông tin liên quan đến ứng dụng. Để tạo một lớp Servlet, bạn cần kế thừa lớp HttpServlet và ghi đè các phương thức tương ứng. Ví dụ: tạo một HelloWorldServlet đơn giản: Tệp web.xml xạ, vv Sau đây là ví dụ cấu hình của HelloWorldServlet ở trên: Cơ sở JSP là một phần mở rộng của Servlet Trang JSP sẽ được dịch sang Servlet và được thực thi khi nó được truy cập lần first. tất cả các yêu cầu có suffix là .jsp hoặc .jspx. Ví dụ: một trang JSP đơn giản:(2) Vòng đời của servlet
public void init(ServletConfig config) ném ServletException { super.init(config); // Các thao tác khởi tạo được thực hiện ở đây, chẳng hạn như lấy các tham số khởi tạo String paramValue = config.getInitParameter("paramName");
protected void service(HttpServletRequest request, HttpServletResponse reply) ném ServletException, IOException { // Lấy tên người dùng và mật khẩu Chuỗi tên người dùng = request.getParameter("username"); Chuỗi mật khẩu = request.getParameter("password"); Đợi xử lý logic nghiệp vụ if (isValidUser(username, pass)) { reply.getWriter().println("Đăng nhập thành công"); } else { reply.getWriter().println("Đăng nhập thất bại" } }
public void destroy() { // Logic giải phóng tài nguyên, chẳng hạn như đóng kết nối cơ sở dữ liệu if (connection!= null) { try { Connection.close() } Catch (SQLException e) { e.printStackTrace(); } siêu hủy();
(3) Kiến trúc Servlet
2. Sử dụng và cấu hình cơ bản Servlet
(1) Tạo lớp Servlet
nhập javax.servlet.ServletException; nhập javax.servlet.http.HttpServlet; nhập javax.servlet.http.HttpServletRequest; nhập phần mở rộng javax.servlet.http.HttpServletResponse; HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse reply) ThrowletException, IOException { // Đặt loại nội dung phản hồi thành HTML reply.setContentType("text/html"); biểu tượng đầu ra PrintWriter out = reply.getWriter() / Xuất nội dung HTML out.println(""); out.println("
Xin chào thế giới!
"); out.println("Xem sitemap của VNExpress
");
(2) Cấu hình Servlet trong web.xml
(3) Mối quan hệ giữa Servlet và JSP
<%@ page ngôn ngữ="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%=tin nhắn%> Xem sitemap của VNExpress