深刻理解Servlet运行机制和生命周期
servlet 運(yùn)行在servlet 容器中,其生命周期由容器來(lái)管理。servlet 的生命周期通過(guò) javax.servlet.Servlet接口中的init(),servce(),和destory();方法表示。
1,加載和實(shí)例化
servlet 容器負(fù)責(zé)加載和實(shí)例化servlet 當(dāng)容器啟動(dòng)或在容器中檢測(cè)到需要這個(gè)servlet來(lái)響應(yīng)一個(gè)請(qǐng)求 時(shí)。創(chuàng)建servlet實(shí)例。容器通過(guò)java 的反射API來(lái)創(chuàng)建servlet實(shí)例.所以servlet中不應(yīng)該提供帶參數(shù)的構(gòu)造函數(shù)。
2,初始化
在servlet實(shí)例化后,容器必須調(diào)用 init() 方法來(lái)初始化這個(gè)對(duì)象。初始化的目的是為了讓servlet對(duì)象在處理客戶請(qǐng)求之前完成一些初始工作。對(duì)于每一個(gè)servlet實(shí)例,init() 方法只會(huì)調(diào)用一次。
3,請(qǐng)求處理
servlet 容器調(diào)用service()方法對(duì)請(qǐng)求處理。servlet 實(shí)例通過(guò)ServletRequest對(duì)象獲得客戶端的相關(guān)信息和請(qǐng)求信息。在對(duì)請(qǐng)求處理后調(diào)用ServletResponse對(duì)象設(shè)置響應(yīng)信息。
4,服務(wù)終止
當(dāng)容器檢測(cè)到一個(gè)servlet實(shí)例應(yīng)該從服務(wù)器中移除時(shí),容器調(diào)用實(shí)例的destory方法。讓實(shí)例釋放它所占用的資源。如果在次發(fā)請(qǐng)求就會(huì) 創(chuàng)建一個(gè)新的servlet 實(shí)例。
在整個(gè)servlet 的生命周期中,創(chuàng)建servlet實(shí)例,調(diào)用實(shí)例的init()和destory()方法都只執(zhí)行一次,當(dāng)初始話完成后,servlet容器將該實(shí)例保存在內(nèi)存中,通過(guò)servlce() 方法為接受請(qǐng)求服務(wù)。
轉(zhuǎn)載于:https://www.cnblogs.com/huyayuan1/p/4668990.html
總結(jié)
以上是生活随笔為你收集整理的深刻理解Servlet运行机制和生命周期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hdoj 1247 Hat’s Word
- 下一篇: 进程的逻辑设备如何与一个物理设备建立对应