วัฏจักรชีวิต JSP ถูกกำหนดให้เป็นกระบวนการตั้งแต่การสร้างจนถึงการทำลาย ซึ่งคล้ายกับวงจรชีวิตของเซิร์ฟเล็ตที่มีขั้นตอนเพิ่มเติมซึ่งจำเป็นในการคอมไพล์ JSP เป็นเซิร์ฟเล็ต
เส้นทางที่ตามด้วย JSP
ต่อไปนี้เป็นเส้นทางที่ตามด้วย JSP -
- รวบรวม
- การเริ่มต้น
- การดำเนินการ
- ทำความสะอาด
สี่ขั้นตอนหลัก ๆ ของวงจรชีวิตของ JSP นั้นคล้ายกับวงจรชีวิตของ Servlet มาก มีการอธิบายสี่ขั้นตอนด้านล่าง -
การรวบรวม JSP
เมื่อเบราว์เซอร์ขอ JSP เอ็นจิ้น JSP จะตรวจสอบก่อนว่าจำเป็นต้องคอมไพล์เพจหรือไม่ หากเพจไม่เคยถูกคอมไพล์ หรือถ้า JSP ถูกแก้ไขตั้งแต่มีการคอมไพล์ครั้งล่าสุด เอ็นจิ้น JSP จะคอมไพล์เพจ
กระบวนการรวบรวมประกอบด้วยสามขั้นตอน -
- การแยกวิเคราะห์ JSP
- เปลี่ยน JSP ให้เป็นเซิร์ฟเล็ต
- รวบรวมเซิร์ฟเล็ต
การเริ่มต้น JSP
เมื่อคอนเทนเนอร์โหลด JSP มันจะเรียกใช้ jspInit() วิธีการก่อนให้บริการตามคำขอใด ๆ หากคุณต้องการดำเนินการเริ่มต้นเฉพาะ JSP ให้แทนที่ jspInit() วิธีการ −
public void jspInit() { // Initialization code... }
โดยทั่วไป การเริ่มต้นจะดำเนินการเพียงครั้งเดียว และเช่นเดียวกับวิธีการ init เซิร์ฟเล็ต โดยทั่วไป คุณจะเริ่มต้นการเชื่อมต่อฐานข้อมูล เปิดไฟล์ และสร้างตารางค้นหาในเมธอด jspInit
การดำเนินการ JSP
วัฏจักรชีวิตของ JSP ระยะนี้แสดงถึงการโต้ตอบทั้งหมดกับคำขอจนกว่า JSP จะถูกทำลาย
เมื่อใดก็ตามที่เบราว์เซอร์ร้องขอ JSP และมีการโหลดและเริ่มต้นหน้าเว็บแล้ว เอ็นจิ้น JSP จะเรียกใช้ _jspService() วิธีการใน JSP
_jspService() วิธีการรับ HttpServletRequest และ HttpServletResponse เป็นพารามิเตอร์ดังต่อไปนี้ −
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Service handling code... }
_jspService() เมธอดของ JSP ถูกเรียกใช้ตามคำขอ สิ่งนี้มีหน้าที่สร้างการตอบสนองสำหรับคำขอนั้น และวิธีการนี้ยังรับผิดชอบในการสร้างการตอบสนองต่อวิธี HTTP ทั้งเจ็ดวิธี เช่น GET, POST, DELETE ฯลฯ
การล้าง JSP
ขั้นตอนการทำลายของวงจรชีวิต JSP จะแสดงเมื่อคอนเทนเนอร์ JSP ถูกลบออกจากการใช้งาน
jspDestroy() method คือ JSP ที่เทียบเท่ากับวิธีทำลายสำหรับเซิร์ฟเล็ต แทนที่ jspDestroy เมื่อคุณต้องการดำเนินการล้างใดๆ เช่น การปล่อยการเชื่อมต่อฐานข้อมูลหรือปิดไฟล์ที่เปิดอยู่
jspDestroy() วิธีการมีรูปแบบดังต่อไปนี้ -
public void jspDestroy() { // Your cleanup code goes here. }