亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 0128.htm

?? JspServlet教程專欄 對javaservlet講述的非常詳細
?? HTM
字號:
<html>

<head>
<title>新時代軟件教程:操作系統 主頁制作 服務器 設計軟件 網絡技術 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>Lifecycle 方法</strong></big></p>
<div align="right">---摘自互聯網</div>

<br>3.1&nbsp;重編Init&nbsp;初始化方法&nbsp;<br>
<br>
在初始化過程中,&nbsp;servlet應當準備好它要安排的一些資源,&nbsp;以便這個servlet&nbsp;能夠接收請求,做到這些可以不用考慮多線程,&nbsp;因為在servlet初始化是只能是單進程的。&nbsp;一旦初始化方法完成,&nbsp;servlet就能接收客戶端的請求。&nbsp;當然如果初始化不能成功,這個方法會扔出throw&nbsp;UnavailableException解釋的.&nbsp;<br>
<br>
初始化方法使用ServletConfig&nbsp;對象作為參數.&nbsp;這個方法應該保存這個對象,&nbsp;以便它能有方法getServletConfig返回.&nbsp;最簡單的辦法是,搞出一個新類,他的初始化方法數調用super.init.&nbsp;如果確實這樣做,&nbsp;你就應當自己保存ServletConfig&nbsp;對象,&nbsp;并且自己重編getServletConfig&nbsp;方法以便它能從新的位置得到對象.&nbsp;<br>
<br>
下面是個初始化方法的例子.&nbsp;它是來自Survey&nbsp;Servlet的初始化方法,&nbsp;從一個表單接收輸入然后存儲到文件中,為了存儲survey信息,&nbsp;它需要一個目錄.&nbsp;它以初始化參數接收這個目錄.&nbsp;<br>
<br>
<br>
public&nbsp;void&nbsp;init(ServletConfig&nbsp;config)<br>
throws&nbsp;ServletException<br>
{<br>
super.init(config);<br>
<br>
//獲取目錄<br>
resultsDir&nbsp;=&nbsp;getInitParameter("resultsDir");<br>
<br>
//如果沒有目錄,&nbsp;不處理客戶端<br>
if&nbsp;(resultsDir&nbsp;==&nbsp;null)&nbsp;{<br>
throw&nbsp;new&nbsp;UnavailableException&nbsp;(this,<br>
"Not&nbsp;given&nbsp;a&nbsp;directory&nbsp;to&nbsp;write&nbsp;survey&nbsp;results!");<br>
}<br>
}<br>
<br>
這里的初始化方法調用super.init&nbsp;方法來管理安排ServletConfig對象.&nbsp;這個初始化方法也設置了一個字段:&nbsp;resultsDir,&nbsp;作為初始化參數提供的目錄名.&nbsp;如果沒有目錄名被提供,&nbsp;這個&nbsp;servlet扔出一個不適用的解釋.&nbsp;如果初始化&nbsp;方法成功完成,servlet將能處理客戶端請求&nbsp;<br>
<br>
初始化參數&nbsp;<br>
<br>
初始化參數的規定是一個服務器方面的規定。如果初始化參數被規定,&nbsp;都可以用同樣的方法得到:&nbsp;用&nbsp;getInitParameter方法.&nbsp;這個方法將參數名作為自己的參數項.&nbsp;<br>
<br>
3.2&nbsp;重編Destroy&nbsp;方法&nbsp;<br>
<br>
當服務器卸載一個servlet,&nbsp;它將調用servlet的destroy方法.&nbsp;這個&nbsp;destroy方法是與初始化方法相反,同時從內存中釋放servlet.&nbsp;<br>
<br>
并不是所有的調用了初始化init方法是也必須調用destroy方法.&nbsp;<br>
<br>
對于大多數的servlets,&nbsp;一些初始化的工作必須反做的.&nbsp;如,&nbsp;假設有一個servlet,它在初始化時打開一個數據庫連接,他的destroy&nbsp;方法如下顯示:需要關閉這個連接的&nbsp;<br>
<br>
<br>
/**<br>
*&nbsp;關閉數據庫連接<br>
*/<br>
public&nbsp;void&nbsp;destroy()&nbsp;{<br>
try&nbsp;{<br>
con.close();<br>
}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;{<br>
while(e&nbsp;!=&nbsp;null)&nbsp;{<br>
log("SQLException:&nbsp;"&nbsp;+&nbsp;e.getSQLState()&nbsp;+&nbsp;'\t'&nbsp;+<br>
e.getMessage()&nbsp;+&nbsp;'\t'&nbsp;+<br>
e.getErrorCode()&nbsp;+&nbsp;'\t');<br>
e&nbsp;=&nbsp;e.getNextException();<br>
}<br>
}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br>
e.printStackTrace();<br>
}<br>
}<br>
<br>
關于一個Servlet中斷涉及的多線程&nbsp;<br>
<br>
但一個服務器卸載一個servlet,&nbsp;它會在所有的service已經完成后調用&nbsp;destroy.&nbsp;如果你的操作運行需要很長時間,&nbsp;但destroy&nbsp;被調用時還有線程在運行.&nbsp;這個servlet編寫者有責任確保所有的線程都已經完成;&nbsp;<br>
<br>
長時間運行響應客戶端請求的那些servlet應當保留當前有多少方法在運行的記錄.&nbsp;他的&nbsp;long-running&nbsp;方法應當周期性地輪詢以確保他們能夠繼續運行下去.&nbsp;如果servlet被destroy方法調用,&nbsp;那么這個long-running&nbsp;方法如果必要必須停止工作或清除.&nbsp;<br>
<br>
舉例,&nbsp;變量serviceCounter用來統計有多少service方法在運行,&nbsp;變量&nbsp;shuttingDown顯示這個servlet是否被destory.&nbsp;每個變量有它自己的獲取方法:&nbsp;<br>
<br>
<br>
public&nbsp;ShutdownExample&nbsp;extends&nbsp;HttpServlet&nbsp;{<br>
private&nbsp;int&nbsp;serviceCounter&nbsp;=&nbsp;0;<br>
private&nbsp;Boolean&nbsp;shuttingDown;<br>
...<br>
//&nbsp;serviceCounter<br>
protected&nbsp;synchronized&nbsp;void&nbsp;enteringServiceMethod()&nbsp;{<br>
serviceCounter++;<br>
}<br>
protected&nbsp;synchronized&nbsp;void&nbsp;leavingServiceMethod()&nbsp;{<br>
serviceCounter--;<br>
}<br>
protected&nbsp;synchronized&nbsp;int&nbsp;numServices()&nbsp;{<br>
return&nbsp;serviceCounter;<br>
}<br>
//shuttingDown<br>
protected&nbsp;setShuttingDown(Boolean&nbsp;flag)&nbsp;{<br>
shuttingDown&nbsp;=&nbsp;flag;<br>
}<br>
protected&nbsp;Boolean&nbsp;isShuttingDown()&nbsp;{<br>
return&nbsp;shuttingDown;<br>
}<br>
}<br>
<br>
這個service方法每次在它進入時要增加,而在它返回退出時要減少:&nbsp;<br>
<br>
protected&nbsp;void&nbsp;service(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp)<br>
throws&nbsp;ServletException,&nbsp;IOException<br>
{<br>
enteringServiceMethod();<br>
try&nbsp;{<br>
super.service(req,&nbsp;resp);<br>
}&nbsp;finally&nbsp;{<br>
leavingServiceMethod();<br>
}<br>
}<br>
<br>
destroy方法應當檢查serviceCounter,&nbsp;如果存在長時間方式運行的話,&nbsp;設置變量shuttingDown&nbsp;.&nbsp;這個變量將會讓那個正在處理請求的線程知道:該結束了,關閉吧!&nbsp;destroy&nbsp;方法應當等待這幾個service&nbsp;方法完成,&nbsp;這樣就是一個清楚的關閉過程了.&nbsp;<br>
<br>
<br>
public&nbsp;void&nbsp;destroy()&nbsp;{<br>
/*&nbsp;檢查是否有線程在運行,如果存在,告訴他們stop.&nbsp;*/<br>
if&nbsp;(numServices()&nbsp;>&nbsp;0)&nbsp;{<br>
setShuttingDown(true);<br>
}<br>
<br>
/*&nbsp;等待他們stop.&nbsp;*/<br>
while(numService()&nbsp;>&nbsp;0)&nbsp;{<br>
try&nbsp;{<br>
thisThread.sleep(interval);<br>
}&nbsp;catch&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br>
}<br>
}<br>
}<br>
<br>
long-running&nbsp;方法如必要應當檢查這個變量,并且解釋他們的工作:&nbsp;<br>
<br>
public&nbsp;void&nbsp;doPost(...)&nbsp;{<br>
...<br>
for(i&nbsp;=&nbsp;0;&nbsp;((i&nbsp;&lt;&nbsp;lotsOfStuffToDo)&nbsp;&&&nbsp;!isShuttingDown());&nbsp;i++)&nbsp;{<br>
try&nbsp;{<br>
partOfLongRunningOperation(i);<br>
}&nbsp;catch&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br>
}<br>
}<br>
}<br>
<br>
3.3&nbsp;提供關于Servlet的信息<br>
/**<br>
*&nbsp;This&nbsp;is&nbsp;a&nbsp;simple&nbsp;example&nbsp;of&nbsp;an&nbsp;HTTP&nbsp;Servlet.&nbsp;It&nbsp;responds&nbsp;to&nbsp;the&nbsp;GET<br>
*&nbsp;and&nbsp;HEAD&nbsp;methods&nbsp;of&nbsp;the&nbsp;HTTP&nbsp;protocol.<br>
*/<br>
public&nbsp;class&nbsp;SimpleServlet&nbsp;extends&nbsp;HttpServlet&nbsp;{&nbsp;<br>
<br>
...<br>
<br>
public&nbsp;String&nbsp;getServletInfo()&nbsp;{<br>
return&nbsp;"A&nbsp;simple&nbsp;servlet";<br>
}<br>
}

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费在线观看| 日本aⅴ精品一区二区三区| 日本精品视频一区二区| 蜜臀久久99精品久久久久久9| 欧美激情一区二区| 欧美性生活大片视频| 国产电影一区在线| 日韩不卡一区二区| 尤物视频一区二区| 国产欧美日韩亚州综合| 8x福利精品第一导航| 99久久国产综合精品麻豆| 毛片一区二区三区| 五月天网站亚洲| 亚洲三级免费观看| 国产女人aaa级久久久级| 欧美一区二区久久久| 色综合久久精品| 日本美女视频一区二区| 国产成a人亚洲精| 丝袜亚洲另类欧美| 一区二区三区在线视频免费 | 日本不卡的三区四区五区| 中文字幕一区二区三区不卡在线 | 亚洲一区二区三区自拍| 国产亚洲短视频| 精品国产伦理网| 日韩一区二区三| 欧美日韩aaaaaa| 欧美在线一二三四区| 91视频www| 99re热这里只有精品视频| 成人av第一页| www.亚洲国产| av一区二区久久| www.色综合.com| 91免费版在线看| 91小视频免费看| 色综合久久久久| 欧美三区在线视频| 欧美日韩色综合| 精品无码三级在线观看视频| 日韩1区2区日韩1区2区| 日本欧美在线观看| 久久精品国产免费| 亚洲国产精品成人综合色在线婷婷| 久久婷婷国产综合精品青草| 久久综合色鬼综合色| 久久精品一区八戒影视| 国产女人18水真多18精品一级做| 国产欧美日韩不卡| 最新国产精品久久精品| 玉米视频成人免费看| 午夜久久久影院| 免费高清视频精品| 国产精品一二二区| 99在线热播精品免费| 91国偷自产一区二区使用方法| 欧美在线综合视频| 欧美一区永久视频免费观看| 精品久久久久99| 中文一区二区在线观看| 555www色欧美视频| 久久蜜桃香蕉精品一区二区三区| 国产欧美日韩另类一区| 亚洲精品国久久99热| 香蕉影视欧美成人| 国产在线精品一区二区三区不卡| 成人性生交大合| 欧美三级日韩三级国产三级| 日韩欧美一区二区在线视频| 久久久久久久久岛国免费| 亚洲欧美一区二区三区久本道91| 亚洲va欧美va天堂v国产综合| 中文字幕第一区二区| 亚洲麻豆国产自偷在线| 人妖欧美一区二区| 成人一道本在线| 91精品国产一区二区三区| 国产亚洲一本大道中文在线| 亚洲色图欧美偷拍| 蜜桃视频一区二区三区| 成人一区二区三区| 555夜色666亚洲国产免| 国产午夜精品久久久久久免费视 | 国产精品久久毛片a| 一区二区三区四区av| 久久精品99国产国产精| 99re8在线精品视频免费播放| 欧美精品亚洲二区| 国产农村妇女毛片精品久久麻豆 | 国产亚洲欧美一级| 亚洲永久免费av| 国产盗摄精品一区二区三区在线 | 91精品免费观看| 国产精品乱码久久久久久| 婷婷亚洲久悠悠色悠在线播放| 国产成人亚洲综合a∨猫咪| 欧洲精品中文字幕| 国产欧美日韩在线观看| 蜜桃久久av一区| 性做久久久久久久久| 99热在这里有精品免费| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲一区国产视频| 波多野结衣一区二区三区| 日韩欧美在线网站| 天天综合色天天综合色h| 不卡av在线网| 久久久美女毛片 | 91麻豆高清视频| 久久午夜国产精品| 久久久噜噜噜久久人人看| 视频一区视频二区中文字幕| 91农村精品一区二区在线| 国产偷国产偷亚洲高清人白洁| 青青青伊人色综合久久| 欧美午夜精品免费| 中文字幕日本不卡| 国产成人av福利| 久久尤物电影视频在线观看| 日韩精品一区第一页| 欧美日韩一区二区不卡| 综合久久久久久| 成人精品高清在线| 色综合久久九月婷婷色综合| 一区精品在线播放| av日韩在线网站| 久久久精品综合| 国产精品一二三在| 久久久久久久久蜜桃| 国产精品一区在线观看你懂的| 日韩一区二区精品在线观看| 日本不卡的三区四区五区| 91精品国产综合久久婷婷香蕉| 亚洲va天堂va国产va久| 91麻豆精品国产91久久久久| 天天射综合影视| 欧美一卡在线观看| 奇米影视一区二区三区小说| 91精品国产福利在线观看| 日韩av高清在线观看| 欧美一级一区二区| 久久超碰97人人做人人爱| 欧美mv日韩mv国产网站| 免费看欧美女人艹b| 欧美videossexotv100| 国产一区二区三区香蕉| 国产日本欧洲亚洲| 99久久精品免费看国产免费软件| 日韩码欧中文字| 欧美三级在线视频| 久久国产精品99精品国产| 久久久久免费观看| 北岛玲一区二区三区四区| 国产在线精品一区二区| 久久久99免费| 91一区二区在线| 亚洲一区二区三区三| 欧美一区二区三区性视频| 蜜桃av一区二区在线观看| 国产色综合久久| 色吧成人激情小说| 日本少妇一区二区| 国产目拍亚洲精品99久久精品| 91美女福利视频| 日本成人超碰在线观看| 久久久不卡影院| 欧洲一区在线电影| 国产尤物一区二区| 亚洲天堂免费看| 欧美日韩aaaaa| 成人久久视频在线观看| 亚洲国产精品久久久男人的天堂| 处破女av一区二区| 亚洲一区国产视频| 久久综合九色综合97婷婷| 97se亚洲国产综合在线| 日韩国产欧美在线视频| 中文在线一区二区| 国产一区二区精品久久99| 日韩理论片中文av| 精品国产91九色蝌蚪| 色哟哟一区二区在线观看| 老司机精品视频一区二区三区| 亚洲欧洲日韩在线| 欧美一区二区三区不卡| av男人天堂一区| 久久er精品视频| 亚洲一区二区影院| 中文字幕不卡三区| 日韩一区二区三| 在线亚洲欧美专区二区| 亚洲欧美另类小说| 久久亚洲二区三区| 3d动漫精品啪啪1区2区免费| 91在线视频观看| 国产风韵犹存在线视精品| 日韩电影在线免费观看| 亚洲六月丁香色婷婷综合久久 |