国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
servlet的生命周期
servlet的生命周期
 
1.servlet有良好的生命周期的定義,包括加載、實(shí)例化、初始化、處理請求及服務(wù)結(jié)束。
2.這個(gè)生命周期由javax.servlet.Servlet接口的init()、service()、destroy()方法來表達(dá)。
3.servlet容器進(jìn)行加載servlet,完成servlet的實(shí)例化,
   容器運(yùn)行servlet實(shí)例的init()方法進(jìn)行初始化,
   服務(wù)請求到達(dá)時(shí),調(diào)用service()方法,由service()方法自動(dòng)運(yùn)行與請求對應(yīng)的doXXX()方法(即doGet或doPost),
   當(dāng)服務(wù)器決定將實(shí)例銷毀時(shí),調(diào)用其destroy()方法。
 
Servlet與CGI的區(qū)別:
 
servlet處于服務(wù)器的進(jìn)程中,可以通過多線程的方式運(yùn)行service()方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請求,
并且實(shí)例一般不會被銷毀;
CGI為每個(gè)請求都產(chǎn)生一個(gè)進(jìn)程,服務(wù)結(jié)束后就銷毀,所以效率上低于servlet。
 
詳細(xì)講解servlet的生命周期:
1.servlet運(yùn)行在servlet的容器中,其生命周期由容器進(jìn)行管理;通過javax.servlet.Servlet接口的init()、service()、destroy()方法
來實(shí)現(xiàn);
2.servlet的生命周期包括下面幾個(gè)階段:
(1)加載和實(shí)例化
     servlet容器負(fù)責(zé)servlet的加載和實(shí)例化。當(dāng)servlet容器啟動(dòng)時(shí),或者servlet容器檢測到需要這個(gè)servlet服務(wù)的第一個(gè)請求時(shí),
servlet容器會加載這個(gè)servlet,并生成servlet實(shí)例。
(注:servlet容器在啟動(dòng)后,必須知道這些servlet類所在的位置,servlet容器可以通過本地文件系統(tǒng)、遠(yuǎn)程文件系統(tǒng)或者
其他網(wǎng)絡(luò)服務(wù)中,通過類加載器加載servlet類,加載成功后才能創(chuàng)建servlet實(shí)例;
             servlet容器通過java的反射API,來進(jìn)行實(shí)例化,容器調(diào)用的是servlet的無參構(gòu)造方法-即默認(rèn)的構(gòu)造方法,所以我們在
編寫servlet類時(shí),不要寫帶參的構(gòu)造方法)
 
(2)初始化
    當(dāng)servlet實(shí)例化后,容器將調(diào)用這個(gè)對象的init()方法進(jìn)行初始化,初始化的目的是在這個(gè)實(shí)例為請求提供服務(wù)前完成初始化
工作,如建立配置連接,獲取配置信息等。每個(gè)servlet實(shí)例,容器只調(diào)用一次init()方法。
    servlet實(shí)例可以使用容器為其提供的ServletConfig對象,從web應(yīng)用程序的配置信息中(即web.xml文件),獲取初始化的參數(shù)
信息。
    如果初始化期間發(fā)生錯(cuò)誤,則會拋出ServletException異?;蛘遳navailableException異常,來通知容器。ServletException異常
是一般的初始化失敗,如沒能找到初始化參數(shù);UnavailableException異常是通知容器此實(shí)例不可用,如數(shù)據(jù)庫未啟動(dòng),數(shù)據(jù)
連接不成功,servlet就會向容器拋出UnvailableException異常,提示他暫時(shí)或永久不可用。
 
(3)請求處理
     Servlet容器調(diào)用servlet實(shí)例的service()方法來對請求進(jìn)行處理。需要強(qiáng)調(diào)的是,在service()方法調(diào)用之前,init()方法必須
成功執(zhí)行。
     在service()方法中,servlet實(shí)例通過ServletRequest對象,來獲取客戶端的相關(guān)信息和請求信息;處理完成后,servlet實(shí)例
通過ServletResponse對象來設(shè)置相應(yīng)信息。
     service()方法自動(dòng)運(yùn)行與請求對應(yīng)的doXXX方法,如果請求是get方式的,則調(diào)用doGet()方法;如果請求是post方式的,
則調(diào)用doPost()方法。
     當(dāng)處理過程中出現(xiàn)異常,則servlet實(shí)例會拋出ServletException異?;蛘遀navailableException異常。如果拋出的
UnvailableException異常顯示此實(shí)例永久不可用,則容器將調(diào)用servlet實(shí)例的destroy()方法,釋放該實(shí)例,釋放后對此實(shí)例
的所有請求,都將得到HTTP404的響應(yīng)(請求的資源不可用);如果拋出的UnavailableExceptio異常顯示此實(shí)例暫時(shí)不可用,
則在暫時(shí)不可用的時(shí)間段內(nèi),對此實(shí)例的請求,都將得到HTTP503的響應(yīng)(服務(wù)暫時(shí)忙,不能處理請求)。
 
(4)服務(wù)結(jié)束
     當(dāng)容器檢測到某個(gè)servlet實(shí)例需要在服務(wù)中移除時(shí),則容器將調(diào)用servlet實(shí)例的destroy()方法,以便釋放實(shí)例所使用的
資源,并將數(shù)據(jù)存儲到持久存儲設(shè)備中。當(dāng)調(diào)用destroy()方法后,容器將釋放此servlet實(shí)例,該實(shí)例隨后將由垃圾回收器
進(jìn)行垃圾回收處理。如果再有對此實(shí)例的服務(wù)請求時(shí),容器將重新創(chuàng)建一個(gè)新的servlet實(shí)例。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Servlet的生命周期,Servlet和CGI的區(qū)別
Servlet的多線程和線程安全
java基礎(chǔ)面試題(Servlet生命周期)
Servlet對象的生命周期
Servlet 生命周期
servlet的生命周期,Java實(shí)例教程,Java系列教程,Java
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服