jsp(SUN企業級應用的首選)Init(){}:jsp(SUN企業級應用的首選) Page被初始化的時候調用該方法,並且該方法僅再初始化時執行一次,所以客以在這裡進行一些初始化的參數配置等一次性工作,由作者創建
jsp(SUN企業級應用的首選)Destroy(){}:jsp(SUN企業級應用的首選) Page由於某種原因被關閉的時候調用該方法,有作者創建
jsp(SUN企業級應用的首選)Service(){}:由jsp(SUN企業級應用的首選)容器自動創建的處理jsp(SUN企業級應用的首選) Page的方法,由jsp(SUN企業級應用的首選)容器創建
准確的說,jsp(SUN企業級應用的首選)應該由三個內部方法,也就是jsp(SUN企業級應用的首選)Init(),_jsp(SUN企業級應用的首選)Service(),jsp(SUN企業級應用的首選)Destroy(),這三個方法中jsp(SUN企業級應用的首選)Init()和jsp(SUN企業級應用的首選)Destroy()可以由作者定義,而_jsp(SUN企業級應用的首選)Service()由jsp(SUN企業級應用的首選)容器根據jsp(SUN企業級應用的首選) Pge的內容進行定義,不能由作者定義。
先說一下jsp(SUN企業級應用的首選)網頁的內部原理,當jsp(SUN企業級應用的首選)文件第一次被處理時,他會被轉化成一個servlet。jsp(SUN企業級應用的首選)引擎首先把jsp(SUN企業級應用的首選)文件轉化成一個java源文件,如果在轉化過程中發生錯誤的話,會立刻中止,同時向服務器端和客戶端發送錯誤信息報告;如果轉化成功了,就會產生一個class類。然後再創建一個Servlet對象,首先執行jsp(SUN企業級應用的首選)Init()方法進行初始化操作,由於整個執行過程jsp(SUN企業級應用的首選)Init()方法只執行一次,所以可以在這個方法中進行一些必要的操作比如連接數據庫,初始化部分參數等等,接著執行_jsp(SUN企業級應用的首選)Service()方法,對客戶端的請求進行處理,對每一個請求會創建一個線程,如果同時有多個請求需要處理的話就會創建多個線程,由於servlet長期貯存與內存中,所以執行速度快,但是由於初始化需要編譯,所以第一次執行還是比較慢的,如果由於某種原因導致jsp(SUN企業級應用的首選)網頁關閉或者銷毀的話會執行jsp(SUN企業級應用的首選)Destroy()方法。
<%@ page language="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>
<%!
public void jsp(SUN企業級應用的首選)Init(){
System.out.print("開始");
}
%>
<%!
public void jsp(SUN企業級應用的首選)Destroy(){
System.out.print("結束");
}
%>
</body>
</html>
執行這個jsp(SUN企業級應用的首選)文件再關閉,查看tomcat(一個很好用的JSP運行平台)/logs下的當天的日志,會發現內容是“開始結束”,這就是因為開始執行jsp(SUN企業級應用的首選)文件的時候調用jsp(SUN企業級應用的首選)Init()方法,在日志中記錄下內容“開始”,在關閉jsp(SUN企業級應用的首選)文件的時候調用jsp(SUN企業級應用的首選)Destroy()方法,在日志中記錄下內容“結束”。