JSP Lifecycle
กุญแจสำคัญในการทำความเข้าใจเกี่ยวกับพื้นฐานการทำงาน JSP คือการเข้าใจว่าพวกเขาสอดคล้องกับวงจรชีวิต
JSP เป็นวงจรชีวิตจากการสร้างการทำลายคล้ายกับวงจรชีวิตเซิร์ฟเล็ตยกเว้นว่าวงจรชีวิต JSP ยังรวมถึงไฟล์ JSP เรียบเรียงเซิร์ฟเล็ต
ต่อไปนี้เป็นวงจร JSP แยบยลหลายขั้นตอน:
รวบรวมเฟส:
เซิร์ฟเล็ตเซิร์ฟเล็ตไฟล์ที่มาภาชนะรวบรวมระดับเซิร์ฟเล็ตสร้าง
- ขั้นตอนการเริ่มต้น:
รถขุดและสอดคล้อง JSP ระดับเซิร์ฟเล็ตสร้างอินสแตนซ์และเรียกวิธีการเริ่มต้นของ
- ขั้นตอนการดำเนินงาน:
ตัวอย่างของการให้บริการเรียก servlet และ JSP วิธีการที่สอดคล้องกัน
- ขั้นตอนการทำลาย:
ทำลายเรียกวิธีการและอินสแตนซ์ที่สอดคล้องกัน servlet JSP แล้วทำลายเช่นเซิร์ฟเล็ต
เห็นได้ชัดว่าสี่ขั้นตอนหลักของวงจรชีวิตของ JSP และวงจรชีวิต servlet จะคล้ายกับภาพประกอบด้านล่าง:
JSP รวบรวม
เมื่อเบราว์เซอร์ร้องขอ JSP หน้าเครื่องยนต์ JSP แรกจะต้องตรวจสอบว่าการรวบรวมไฟล์ หากไฟล์นี้ไม่ได้รวบรวมหรือรวบรวมการเปลี่ยนแปลงหลังจากครั้งสุดท้ายแล้วรวบรวมไฟล์ JSP
กระบวนการที่เกี่ยวข้องกับการรวบรวมสามขั้นตอน
- แยกไฟล์ JSP
- ไฟล์ JSP เข้าเซิร์ฟเล็ต
- เซิร์ฟเล็ตรวบรวม
JSP การเริ่มต้น
หลังจากภาชนะที่ถูกโหลดไฟล์ JSP มันเรียก jspInit () วิธีการสำหรับการร้องขอก่อนที่จะให้บริการใด ๆ หากคุณจำเป็นต้องดำเนินการเริ่มต้น JSP จำลองแบบกำหนดเอง jspInit () วิธีการในบรรทัดเช่นนี้
public void jspInit(){ // 初始化代码 }
โดยทั่วไปโปรแกรมเริ่มต้นได้เพียงครั้งเดียวเซิร์ฟเล็ตดี ภายใต้สถานการณ์ปกติคุณสามารถเริ่มต้นการเชื่อมต่อฐานข้อมูลใน jspInit () วิธีการเปิดไฟล์และสร้างตารางแบบสอบถาม
การดำเนินการ JSP
ขั้นตอนนี้จะอธิบายเกี่ยวกับวงจรชีวิตของการมีปฏิสัมพันธ์ JSP ทั้งหมดที่เกี่ยวข้องกับการร้องขอจนกว่าจะมีการทำลาย
เมื่อเริ่มต้น JSP หน้าเสร็จสมบูรณ์เครื่องยนต์ JSP จะเรียก _jspService () วิธีการ
_jspService () วิธีการต้องใช้วัตถุ HttpServletRequest และวัตถุ HttpServletResponse เป็นพารามิเตอร์ของตนเช่นนี้
void _jspService(HttpServletRequest request, HttpServletResponse response) { // 服务端处理代码 }
_jspService () วิธีการที่เรียกว่าครั้งเดียวสำหรับแต่ละคำขอและเป็นผู้รับผิดชอบสำหรับการสร้างการตอบสนองตามลําดับและมันเป็นความรับผิดชอบสำหรับการสร้างการตอบสนองไปยังทุกวิธีเจ็ด HTTP เช่น GET, POST ลบและอื่น ๆ
การทำความสะอาด JSP
ขั้นตอนการทำลายวงจรชีวิต JSP อธิบายทุกอย่างเมื่อหน้า JSP จะถูกลบออกจากภาชนะที่เกิดขึ้น
jspDestroy () วิธีการใน servlet JSP เทียบเท่ากับวิธีการทำลาย เมื่อคุณจำเป็นต้องดำเนินการล้างใด ๆ ที่ซ้ำกัน jspDestroy () วิธีการเช่นการเปิดตัวของการเชื่อมต่อฐานข้อมูลหรือปิดโฟลเดอร์และอื่น ๆ
รูปแบบ jspDestroy () วิธีการดังต่อไปนี้:
public void jspDestroy() { // 清理代码 }
ตัวอย่าง
วงจรชีวิต JSP ตัวอย่างรหัสมีดังนี้
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>life.jsp</title> </head> <body> <%! private int initVar=0; private int serviceVar=0; private int destroyVar=0; %> <%! public void jspInit(){ initVar++; System.out.println("jspInit(): JSP被初始化了"+initVar+"次"); } public void jspDestroy(){ destroyVar++; System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次"); } %> <% serviceVar++; System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求"); String content1="初始化次数 : "+initVar; String content2="响应客户请求次数 : "+serviceVar; String content3="销毁次数 : "+destroyVar; %> <h1>本教程 JSP 测试实例</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
เบราว์เซอร์เปิดหน้าผลลัพธ์คือ: