Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Vòng đời (Lifecycle) của JSP

Vòng đời của JSP được định nghĩa là quá trình từ khi được tạo ra đến khi bị hủy bỏ. Điều này tương tự như vòng đời của Servlet với một bước bổ sung là biên dịch JSP thành Servlet.

Các giai đoạn của JSP

JSP trải qua các giai đoạn sau:

  • Biên dịch (Compilation)
  • Khởi tạo (Initialization)
  • Thực thi (Execution)
  • Dọn dẹp (Cleanup)

Bốn giai đoạn chính của vòng đời JSP rất giống với vòng đời Servlet. Chi tiết từng giai đoạn như sau:

Vòng đời (Lifecycle) của JSP

Biên dịch JSP

Khi trình duyệt yêu cầu một trang JSP, JSP engine trước tiên kiểm tra xem trang có cần biên dịch hay không. Nếu trang chưa từng được biên dịch, hoặc JSP đã được sửa đổi kể từ lần biên dịch cuối cùng, JSP engine sẽ biên dịch trang.

Quá trình biên dịch bao gồm ba bước:

  • Phân tích cú pháp (Parsing) JSP.
  • Chuyển đổi JSP thành Servlet.
  • Biên dịch Servlet.

Khởi tạo JSP

Khi container tải một JSP, nó gọi phương thức jspInit() trước khi phục vụ bất kỳ yêu cầu nào. Nếu bạn cần thực hiện khởi tạo đặc thù cho JSP, hãy ghi đè phương thức jspInit():

public void jspInit() {
    // Mã khởi tạo...
}

Thông thường, khởi tạo chỉ thực hiện một lần. Giống như phương thức init của servlet, bạn thường khởi tạo kết nối cơ sở dữ liệu, mở file, và tạo bảng tra cứu trong phương thức jspInit.

Thực thi JSP

Giai đoạn này đại diện cho tất cả các tương tác với yêu cầu cho đến khi JSP bị hủy.

Khi trình duyệt yêu cầu một JSP và trang đã được tải và khởi tạo, JSP engine sẽ gọi phương thức _jspService() trong JSP.

Phương thức _jspService() nhận hai tham số là HttpServletRequest và HttpServletResponse:

void _jspService(HttpServletRequest request, HttpServletResponse response) {
    // Xử lý yêu cầu...
}

Phương thức _jspService() được gọi dựa trên từng yêu cầu. Nó chịu trách nhiệm tạo phản hồi cho yêu cầu đó và cũng xử lý phản hồi cho tất cả bảy phương thức HTTP: GET, POST, DELETE, v.v.

Dọn dẹp JSP

Giai đoạn hủy bỏ đại diện cho việc JSP bị gỡ bỏ khỏi container.

Phương thức jspDestroy() là đối ứng của phương thức destroy cho servlet. Ghi đè jspDestroy khi bạn cần thực hiện dọn dẹp, chẳng hạn như giải phóng kết nối cơ sở dữ liệu hoặc đóng file mở.

Phương thức jspDestroy() có dạng sau:

public void jspDestroy() {
    // Mã dọn dẹp của bạn...
}