jspInit(){}:jsp Page被初始化的時候調(diào)用該方法,并且該方法僅再初始化時執(zhí)行一次,所以客以在這里進行一些初始化的參數(shù)配置等一次性工作,由作者創(chuàng)建
jspDestroy(){}:jsp Page由于某種原因被關(guān)閉的時候調(diào)用該方法,有作者創(chuàng)建
jspService(){}:由jsp容器自動創(chuàng)建的處理jsp Page的方法,由jsp容器創(chuàng)建
準確的說,jsp應(yīng)該由三個內(nèi)部方法,也就是jspInit(),_jspService(),jspDestroy(),這三個方法中jspInit()和jspDestroy()可以由作者定義,而_jspService()由jsp容器根據(jù)jsp Pge的內(nèi)容進行定義,不能由作者定義。
先說一下jsp網(wǎng)頁的內(nèi)部原理,當jsp文件第一次被處理時,他會被轉(zhuǎn)化成一個servlet。jsp引擎首先把jsp文件轉(zhuǎn)化成一個java源文件,如果在轉(zhuǎn)化過程中發(fā)生錯誤的話,會立刻中止,同時向服務(wù)器端和客戶端發(fā)送錯誤信息報告;如果轉(zhuǎn)化成功了,就會產(chǎn)生一個class類。然后再創(chuàng)建一個Servlet對象,首先執(zhí)行jspInit()方法進行初始化操作,由于整個執(zhí)行過程jspInit()方法只執(zhí)行一次,所以可以在這個方法中進行一些必要的操作比如連接數(shù)據(jù)庫,初始化部分參數(shù)等等,接著執(zhí)行_jspService()方法,對客戶端的請求進行處理,對每一個請求會創(chuàng)建一個線程,如果同時有多個請求需要處理的話就會創(chuàng)建多個線程,由于servlet長期貯存與內(nèi)存中,所以執(zhí)行速度快,但是由于初始化需要編譯,所以第一次執(zhí)行還是比較慢的,如果由于某種原因?qū)е耲sp網(wǎng)頁關(guān)閉或者銷毀的話會執(zhí)行jspDestroy()方法。
<%@ 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 jspInit(){
新聞熱點
疑難解答
圖片精選