最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

servlet生命周期_動力節(jié)點Java學院整理

 更新時間:2017年07月21日 10:16:58   作者:xuekyo  
這篇文章主要為大家詳細介紹了servlet生命周期的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了servlet生命周期的相關資料,供大家參考,具體內(nèi)容如下

1.Servlet 生命周期:Servlet 加載--->實例化--->服務--->銷毀。
2.init():在Servlet的生命周期中,僅執(zhí)行一次init()方法。它是在服務器裝入Servlet時執(zhí)行的,負責初始化Servlet對象。可以配置服務器,以在啟動服務器或客戶機首次訪問Servlet時裝入Servlet。無論有多少客戶機訪問Servlet,都不會重復執(zhí)行init()。
3.service():它是Servlet的核心,負責響應客戶的請求。每當一個客戶請求一個HttpServlet對象,該對象的Service()方法就要調(diào)用,而且傳遞給這個方法一個“請求”(ServletRequest)對象和一個“響應”(ServletResponse)對象作為參數(shù)。在HttpServlet中已存在Service()方法。默認的服務功能是調(diào)用與HTTP請求的方法相應的do功能。
4.destroy(): 僅執(zhí)行一次,在服務器端停止且卸載Servlet時執(zhí)行該方法。當Servlet對象退出生命周期時,負責釋放占用的資源。一個Servlet在運行service()方法時可能會產(chǎn)生其他的線程,因此需要確認在調(diào)用destroy()方法時,這些線程已經(jīng)終止或完成。

Tomcat 與 Servlet 是如何工作的:

步驟:

1.Web Client 向Servlet容器(Tomcat)發(fā)出Http請求
2.Servlet容器接收Web Client的請求
3.Servlet容器創(chuàng)建一個Request對象,將Web Client請求的信息封裝到這個對象中。
4.Servlet容器創(chuàng)建一個Response對象
5.Servlet容器調(diào)用HttpServlet對象的service方法,把Request對象與Response對象作為參數(shù)傳給Servlet 對象。
6.Servlet調(diào)用Request對象的有關方法,獲取Http請求信息。
7.HttpServlet調(diào)用Response對象的有關方法,生成響應數(shù)據(jù)。
8.Servlet容器把HttpServlet的響應結(jié)果傳給Web Client。 

Servlet工作原理:

1、首先簡單解釋一下Servlet接收和響應客戶請求的過程,首先客戶發(fā)送一個請求,Servlet是調(diào)用service()方法對請求進行響應的,通過源代碼可見,service()方法中對請求的方式進行了匹配,選擇調(diào)用doGet,doPost等這些方法,然后再進入對應的方法中調(diào)用邏輯層的方法,實現(xiàn)對客戶的響應。在Servlet接口和GenericServlet中是沒有doGet()、doPost()等等這些方法的,HttpServlet中定義了這些方法,但是都是返回error信息,所以,我們每次定義一個Servlet的時候,都必須實現(xiàn)doGet或doPost等這些方法。
2、每一個自定義的Servlet都必須實現(xiàn)Servlet的接口,Servlet接口中定義了五個方法,其中比較重要的三個方法涉及到Servlet的生命周期,分別是上文提到的init(),service(),destroy()方法。GenericServlet是一個通用的,不特定于任何協(xié)議的Servlet,它實現(xiàn)了Servlet接口。而HttpServlet繼承于GenericServlet,因此HttpServlet也實現(xiàn)了Servlet接口。所以我們定義Servlet的時候只需要繼承HttpServlet即可。
3、Servlet接口和GenericServlet是不特定于任何協(xié)議的,而HttpServlet是特定于HTTP協(xié)議的類,所以HttpServlet中實現(xiàn)了service()方法,并將請求ServletRequest、ServletResponse 強轉(zhuǎn)為HttpRequest 和 HttpResponse。

創(chuàng)建Servlet對象的時機:

1.Servlet容器啟動時:讀取web.xml配置文件中的信息,構(gòu)造指定的Servlet對象,創(chuàng)建ServletConfig對象,同時將ServletConfig對象作為參數(shù)來調(diào)用Servlet對象的init方法。
2.在Servlet容器啟動后:客戶首次向Servlet發(fā)出請求,Servlet容器會判斷內(nèi)存中是否存在指定的Servlet對象,如果沒有則創(chuàng)建它,然后根據(jù)客戶的請求創(chuàng)建HttpRequest、HttpResponse對象,從而調(diào)用Servlet 對象的service方法。
3.Servlet Servlet容器在啟動時自動創(chuàng)建Servlet,這是由在web.xml文件中為Servlet設置的<load-on-startup>屬性決定的。從中我們也能看到同一個類型的Servlet對象在Servlet容器中以單例的形式存在。

<servlet>
  <servlet-name>Init</servlet-name>
  <servlet-class>org.xl.servlet.InitServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報錯問題

    maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報錯問題

    本地倉庫是遠程倉庫的一個緩沖和子集,當你構(gòu)建Maven項目時首先會從本地倉庫查找資源,如果沒有那么Maven會從遠程倉庫下載到你本地倉庫,這篇文章主要給大家介紹了關于maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報錯問題的相關資料,需要的朋友可以參考下
    2024-01-01
  • spring4新特性之web開發(fā)增強

    spring4新特性之web開發(fā)增強

    這篇文章主要介紹了spring4新特性之web開發(fā)增強的相關資料,需要的朋友可以參考下
    2017-09-09
  • java 線程鎖詳細介紹及實例代碼

    java 線程鎖詳細介紹及實例代碼

    這篇文章主要介紹了java 線程鎖詳細介紹及實例代碼的相關資料,需要的朋友可以參考下
    2016-12-12
  • 一文讓你徹底明白Java中的值傳遞和引用傳遞

    一文讓你徹底明白Java中的值傳遞和引用傳遞

    這篇文章主要給大家介紹了關于Java中值傳遞和引用傳遞的相關資料,值傳遞是指在調(diào)用函數(shù)時將實際參數(shù)復制一份傳遞到函數(shù)中,引用傳遞是指在調(diào)用函數(shù)時將實際參數(shù)的引用直接傳遞到函數(shù)中,需要的朋友可以參考下
    2023-10-10
  • 使用@Value 注入 List 類型的配置屬性需要注意的 BUG

    使用@Value 注入 List 類型的配置屬性需要注意的 BUG

    這篇文章主要介紹了使用@Value 注入 List 類型的配置屬性需要注意的 BUG,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一文帶你深入了解Java的自動拆裝箱

    一文帶你深入了解Java的自動拆裝箱

    Java推出了對于基本數(shù)據(jù)類型的對應的對象,將基本數(shù)據(jù)類型轉(zhuǎn)換為對象就稱為裝箱,反之則是拆箱,本文主要為大家介紹了Java自動拆裝箱的原理與應用,需要的可以參考下
    2023-11-11
  • 一文詳解jvm中的引用類型

    一文詳解jvm中的引用類型

    在Java中對象以引用來指向JVM的內(nèi)存區(qū)塊,這里我們總結(jié)了強引用、軟引用、弱引用和假象引用(幽靈引用),下面這篇文章主要給大家介紹了關于jvm中引用類型的相關資料,需要的朋友可以參考下
    2024-04-04
  • java中使用Filter控制用戶登錄權(quán)限具體實例

    java中使用Filter控制用戶登錄權(quán)限具體實例

    java中使用Filter控制用戶登錄權(quán)限具體實例,需要的朋友可以參考一下
    2013-06-06
  • java 生成二維碼實例

    java 生成二維碼實例

    這篇文章主要介紹了java 生成二維碼的實例,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Java序列化和反序列化_動力節(jié)點Java學院整理

    Java序列化和反序列化_動力節(jié)點Java學院整理

    把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列恢復為對象的過程稱為對象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧
    2017-05-05

最新評論

五峰| 托克托县| 华宁县| 镇沅| 多伦县| 桑日县| 肇东市| 镇坪县| 论坛| 宣化县| 土默特左旗| 乌兰县| 信阳市| 嘉黎县| 贡觉县| 锦屏县| 通山县| 宝鸡市| 巫溪县| 庆阳市| 新竹县| 留坝县| 罗田县| 大新县| 宝鸡市| 宜都市| 岳阳市| 贵州省| 东海县| 呼玛县| 纳雍县| 海林市| 无为县| 浙江省| 福贡县| 松江区| 玉门市| 大荔县| 晋城| 阿拉善右旗| 巴马|