Kitaran hayat JSP
Kunci untuk memahami fungsi asas JSP ialah memahami kitaran hayat yang mereka patuhi.
Kitaran hayat JSP ialah keseluruhan proses daripada penciptaan hingga kemusnahan, sama dengan kitaran hayat servlet Perbezaannya ialah kitaran hayat JSP juga termasuk menyusun fail JSP ke dalam servlet.
Berikut ialah peringkat yang telah dilalui oleh kitaran hayat JSP:
Fasa kompilasi:
Kompilasi bekas servlet fail sumber servlet, jana kelas servlet
Fasa permulaan:
Muatkan kelas servlet yang sepadan dengan JSP, buat instancenya dan panggil Initializationnya kaedah
Fasa pelaksanaan:
Panggil kaedah perkhidmatan instance servlet yang sepadan dengan JSP
Fasa pemusnahan:
Panggil kaedah pemusnahan instance servlet yang sepadan dengan JSP, dan kemudian musnahkan instance servlet
Jelas sekali, Kitaran hayat JSP Empat peringkat utama adalah hampir sama dengan kitaran hayat servlet, seperti yang ditunjukkan di bawah:
Kompilasi JSP
Apabila pelayar meminta halaman JSP , enjin JSP terlebih dahulu akan menyemak sama ada fail ini perlu disusun. Jika fail ini belum disusun, atau telah diubah sejak kompilasi terakhir, susun fail JSP.
Proses penyusunan merangkumi tiga langkah:
Menghuraikan fail JSP.
Tukar fail JSP kepada servlet.
Kompilasi servlet.
Permulaan JSP
Selepas bekas memuatkan fail JSP, ia memanggil kaedah jspInit() sebelum menyediakan sebarang perkhidmatan kepada permintaan. Jika anda perlu melaksanakan tugas pemulaan JSP tersuai, cuma ganti kaedah jspInit(), seperti ini:
public void jspInit(){ // 初始化代码 }
Secara umumnya, program ini hanya dimulakan sekali, dan perkara yang sama berlaku untuk servlet. Biasanya anda boleh memulakan sambungan pangkalan data, membuka fail dan mencipta jadual pertanyaan dalam kaedah jspInit().
Pelaksanaan JSP
Fasa ini menerangkan semua interaksi berkaitan permintaan dalam kitaran hayat JSP sehingga ia dimusnahkan.
Apabila halaman web JSP melengkapkan permulaan, enjin JSP akan memanggil kaedah _jspService(). Kaedah
_jspService() memerlukan objek HttpServletRequest dan objek HttpServletResponse sebagai parameternya, seperti ini:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // 服务端处理代码 }
kaedah _jspService() dipanggil sekali dalam setiap permintaan dan bertanggungjawab untuk menjana The sepadan respons, dan ia juga bertanggungjawab untuk menjana respons kepada semua 7 kaedah HTTP, seperti GET, POST, DELETE, dsb.
Pembersih JSP
Fasa pemusnahan kitaran hayat JSP menerangkan perkara yang berlaku apabila halaman web JSP dialih keluar daripada bekas.
Kaedah jspDestroy() dalam JSP adalah bersamaan dengan kaedah pemusnahan dalam servlet. Gantikan kaedah jspDestroy() apabila anda perlu melakukan sebarang kerja pembersihan, seperti melepaskan sambungan pangkalan data atau menutup folder, dsb. Format kaedah
jspDestroy() adalah seperti berikut:
public void jspDestroy() { // 清理代码 }
contoh
Contoh kod kitaran hayat JSP adalah seperti berikut:
<%@ 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>php中文网 JSP 测试实例</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
Pelayar membuka halaman, Hasil output ialah: