jspInit(){}: เมธอดนี้ถูกเรียกเมื่อมีการเตรียมใช้งานเพจ jsp และเมธอดนี้จะถูกดำเนินการเพียงครั้งเดียวในระหว่างการเตรียมใช้งาน ดังนั้นคุณจึงสามารถดำเนินการกำหนดค่าพารามิเตอร์การเริ่มต้นและการทำงานแบบครั้งเดียวอื่นๆ ที่นี่ ซึ่งสร้างโดยผู้เขียน
jspDestroy(){}: เมธอดนี้ถูกเรียกเมื่อเพจ jsp ถูกปิดด้วยเหตุผลบางประการ ที่สร้างโดยผู้เขียน
jspService(){}: วิธีการประมวลผลเพจ jsp ที่สร้างขึ้นโดยอัตโนมัติโดยคอนเทนเนอร์ jsp ซึ่งสร้างโดยคอนเทนเนอร์ jsp
เพื่อให้ชัดเจนยิ่งขึ้น jsp ควรมีวิธีการภายในสามวิธี ได้แก่ jspInit(), _jspService(), jspDestroy() ในบรรดาวิธีการทั้งสามนี้ ผู้เขียนสามารถกำหนด jspInit() และ jspDestroy() ได้ ในขณะที่ _jspService() ถูกกำหนดโดย jsp คอนเทนเนอร์ถูกกำหนดตามเนื้อหาของ jsp Pge และผู้เขียนไม่สามารถกำหนดได้
ก่อนอื่นเรามาพูดถึงหลักการภายในของหน้าเว็บ jsp เมื่อไฟล์ jsp ได้รับการประมวลผลเป็นครั้งแรก ไฟล์นั้นจะถูกแปลงเป็นเซิร์ฟเล็ต อันดับแรก เอ็นจิ้น jsp จะแปลงไฟล์ jsp เป็นไฟล์ต้นฉบับ java หากเกิดข้อผิดพลาดระหว่างกระบวนการแปลง ไฟล์จะหยุดทันทีและส่งรายงานข้อความแสดงข้อผิดพลาดไปยังเซิร์ฟเวอร์และไคลเอ็นต์ หากการแปลงสำเร็จ คลาสจะถูกสร้างขึ้น . จากนั้นสร้างอ็อบเจ็กต์ Servlet และเรียกใช้เมธอด jspInit() เพื่อเริ่มต้นใช้งานก่อน เนื่องจากเมธอด jspInit() จะถูกดำเนินการเพียงครั้งเดียวในระหว่างกระบวนการดำเนินการทั้งหมด คุณจึงสามารถดำเนินการที่จำเป็นบางอย่างในวิธีนี้ได้ เช่น การเชื่อมต่อกับฐานข้อมูล เริ่มต้นการทำงานบางอย่าง พารามิเตอร์ ฯลฯ จากนั้นดำเนินการเมธอด _jspService() เพื่อประมวลผลคำขอของไคลเอ็นต์ เธรดจะถูกสร้างขึ้นสำหรับแต่ละคำขอ หากมีคำขอหลายรายการที่ต้องประมวลผลในเวลาเดียวกัน หลายเธรดจะถูกสร้างขึ้น เนื่องจากเซิร์ฟเล็ตถูกจัดเก็บ ในหน่วยความจำเป็นเวลานาน การดำเนินการนั้นรวดเร็ว แต่เนื่องจากการเริ่มต้นจำเป็นต้องมีการคอมไพล์ การดำเนินการครั้งแรกจึงค่อนข้างช้า หากหน้าเว็บ jsp ถูกปิดหรือถูกทำลายด้วยเหตุผลบางประการ เมธอด jspDestroy() จะถูกดำเนินการ
<%@ ภาษาเพจ = "java" contentType="text/html; charset=gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
< meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>ทดสอบ</title>
</head>
<body>
<%!
โมฆะสาธารณะ jspInit(){
System.out. print("start");
}
%>
<%!
public void jspDestroy(){
System.out.print("end");
}
%>
</body>
</html>
รันไฟล์ jsp นี้แล้วปิด ตรวจสอบบันทึกของวันภายใต้ tomcat/logs คุณจะพบว่าเนื้อหาเป็น "เริ่มต้นและสิ้นสุด" เนื่องจากมีการเรียกเมธอด jspInit() เมื่อเริ่มดำเนินการไฟล์ jsp และ เนื้อหา "start" จะถูกบันทึกไว้ในบันทึก เรียกใช้เมธอด jspDestroy() เมื่อปิดไฟล์ jsp และบันทึกเนื้อหา "End" ในบันทึก