Servlet的生命周期和工作原理

@作者博客

Servlet生命周期和工作原理

分為三個階段

  • 初始化階段 調(diào)用init()方法

  • 響應(yīng)客戶請求階段  調(diào)用service()方法

  • 終止階段  調(diào)用destroy()方法 (抵死囧應(yīng))

  • *記住這一點 : Servlet 加載--->實例化--->服務(wù)--->銷毀。

初始化階段 init()

  • 在Servlet的生命周期中,僅執(zhí)行一次init()方法
  • 它是在服務(wù)器載入Servlet時執(zhí)行的,負(fù)責(zé)初始化Servlet對象

核心: service()

  • 它是Servlet的核心,負(fù)責(zé)響應(yīng)客戶的請求,每當(dāng)一個客戶請求一個HTTPServlet對象的時候,該對象就會調(diào)用Service()方法.而且傳遞給這個方法一個請求(ServletRequset)對象和一個響應(yīng)(ServletResponse)對象作為初始.默認(rèn)是調(diào)用Http請求響應(yīng)Do功能

  • 默認(rèn)情況下,當(dāng)客戶第一次請求訪問Servlet時,WEB容器就會創(chuàng)建Servlet的實例

  • 當(dāng)web.xml文件中如果<servlet>元素中指定了<load-on-startup>子元素時,Servlet容器在啟動web服務(wù)器時,將按照順序創(chuàng)建并初始化Servlet對象。

Destory()

  • 僅執(zhí)行一次,在服務(wù)器停止的時候.
  • 當(dāng)Servlet對象退出生命周期時,負(fù)責(zé)釋放占用的資源.
  • 當(dāng)WEB應(yīng)用被終止,或Servlet容器終止運行,或Servlet容器重新裝載Servlet新實例時,Servlet容器會先調(diào)用Servlet的destroy()方法,在destroy()方法中可以釋放掉Servlet所占用的資源。

通俗一點說 工作原理

    首先客戶發(fā)送一個請求,Servlet是調(diào)用service()方法對請求進(jìn)行響應(yīng)
    service()方法中對請求的方式進(jìn)行了匹配,選擇調(diào)用 doGet,doPost等方法,然后再進(jìn)入對應(yīng)的方法,調(diào)用邏輯層的方法,實現(xiàn)對客戶端的響應(yīng).

擴(kuò)展

    Servlet與JSP的比較:
      都可以生成動態(tài)網(wǎng)頁。
      JSP的優(yōu)點是擅長于網(wǎng)頁制作,生成動態(tài)頁面比較直觀,缺點是不容易跟蹤與排錯。
      Servlet是Java語言,擅長于處理流程和業(yè)務(wù)邏輯,缺點是生成動態(tài)網(wǎng)頁不直觀。

思維導(dǎo)圖如下:

@作者博客
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容