Latest web development tutorials

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>

เบราว์เซอร์เปิดหน้าผลลัพธ์คือ: