Vòng đời của JSP được định nghĩa là quá trình từ khi nó được tạo ra cho đến khi nó bị hủy. Vòng đời của JSP cũng tương tự như một vòng đời của servlet với việc bổ sung thêm một bước biên dịch một JSP thành servlet.
Việc hiểu về vòng đời của JSP chính là chìa khóa để hiểu về bản chất của JSP hoạt động như thế nào.
Vòng đời của JSP bao gồm 4 pha sau:
- Biên dịch (Compilation).
- Khởi tạo (Initialization).
- Thực thi (Execution).
- Hủy (Cleanup).
Các pha này được mô tả trong ảnh sau:
Nội dung chính
1. Biên dịch JSP
Khi trình duyệt yêu cầu một JSP, công cụ JSP đầu tiên sẽ kiểm tra xem liệu nó cần phải biên dịch trang này hay không. Nếu trang chưa bao giờ được biên soạn, hoặc nếu JSP đã được sửa đổi kể từ khi nó được biên dịch lần cuối, công cụ JSP 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 JSP.
- Chuyển JSP thành một servlet.
- Biên dịch servlet.
2. Khởi tạo JSP
Khi một container tải một JSP nó gọi phương thức jspInit() trước khi phục vụ các yêu cầu. Nếu bạn cần thực hiện khởi tạo JSP theo cách của bạn, hãy ghi đè phương thức jspInit().
public void jspInit() { // Initialization code... }
Thông thường, khởi tạo chỉ được thực hiện một lần và giống như phương thức init servlet, thường khởi tạo các kết nối cơ sở dữ liệu, các mở các file và tạo bảng tra cứu trong phương thức jspInit.
3. Thực thi JSP
Giai đoạn này của vòng đời JSP đại diện cho tất cả các tương tác với các yêu cầu cho đến khi JSP bị hủy.
Bất cứ khi nào trình duyệt yêu cầu một JSP và trang đã được nạp và khởi tạo, công cụ JSP sẽ gọi phương thức _jspService().
Phương thức _jspService() có một HttpServletRequest và một HttpServletResponse làm các tham số của nó như sau:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Service handling code... }
Phương thức _jspService() của một JSP được gọi ra theo request. Nó có trách nhiệm tạo ra response cho request đó và phương thức này cũng có trách nhiệm tạo ra response cho tất cả bảy phương thức HTTP như GET, POST, DELETE, UPDATE vv ...
4. Hủy JSP
Giai đoạn hủy của chu kỳ sống JSP biểu thị khi một JSP không được tiếp tục sử dụng bởi một container.
Phương thức jspDestroy() tương đương phương thức hủy đối với servlet. Ghi đè phương thức jspDestroy() khi bạn cần thực hiện bất kỳ công việc dọn dẹp nào, chẳng hạn như giải phóng kết nối cơ sở dữ liệu hoặc đóng các tệp.
Phương thức jspDestroy() có dạng sau:
public void jspDestroy() { // Your cleanup code goes here. }