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

Java Servlet 運(yùn)行原理分析

 更新時(shí)間:2020年11月10日 11:52:20   作者:一點(diǎn)教程  
這篇文章主要介紹了Java Servlet 運(yùn)行原理分析,幫助大家更好的理解和學(xué)習(xí)Java Servlet的相關(guān)知識(shí),感興趣的朋友可以了解下

1 Servlet基本執(zhí)行過程

Web容器(如Tomcat)判斷當(dāng)前請求是否第一次請求Servlet程序 。

如果是第一次,則Web容器執(zhí)行以下任務(wù):

  • 加載Servlet類。
  • 實(shí)例化Servlet類。
  • 調(diào)用init方法并傳入ServletConfig對象

如果不第一次執(zhí)行,則:

  • 調(diào)用service方法,并傳入request和response對象

Web容器在需要?jiǎng)h除Servlet時(shí)(例如,在停止服務(wù)器或重新部署項(xiàng)目時(shí))將調(diào)用destroy方法。

2 Web容器如何處理Servlet請求

Web容器負(fù)責(zé)處理請求。讓我們看看它如何處理請求。

  • 將用戶請求與web.xml文件中的Servlet進(jìn)行映射。
  • 創(chuàng)建請求和響應(yīng)對象
  • 創(chuàng)建新的線程,并在該線程上調(diào)用Servlet的service方法
  • 在public的service方法內(nèi)部調(diào)用protected的service方法
  • protected的service方法根據(jù)請求的類型調(diào)用doGet方法。
  • doGet方法生成響應(yīng)并將其傳遞給客戶端。
  • 發(fā)送響應(yīng)后,Web容器將刪除請求和響應(yīng)對象。該線程是繼續(xù)留在線程池中還是被刪除取決于服務(wù)器實(shí)現(xiàn)。

3 public的service方法部分源碼

public的service方法將ServletRequest對象轉(zhuǎn)換為HttpServletRequest類型,而ServletResponse對象轉(zhuǎn)換為HttpServletResponse類型。然后,調(diào)用傳遞這些對象的服務(wù)方法。讓我們看一下內(nèi)部代碼:

public void service(ServletRequest req, ServletResponse res) 
  throws ServletException, IOException 
{ 
  HttpServletRequest request; 
  HttpServletResponse response; 
  try 
  { 
    request = (HttpServletRequest)req; 
    response = (HttpServletResponse)res; 
  } 
  catch(ClassCastException e) 
  { 
    throw new ServletException("non-HTTP request or response"); 
  } 
  service(request, response); 
} 

4 protected的service方法部分源碼

protected的service方法判斷請求的類型,如果請求類型為GET,則調(diào)用doGet方法,如果請求類型為POST,則調(diào)用doPost方法,依此類推。讓我們看一下內(nèi)部代碼:

protected void service(HttpServletRequest req, HttpServletResponse resp) 
    throws ServletException, IOException 
{ 
  String method = req.getMethod(); 
  if(method.equals("GET")) 
  { 
    long lastModified = getLastModified(req); 
    if(lastModified == -1L) 
    { 
      doGet(req, resp); 
    }  
.... 
//rest of the code 
  } 
}

以上就是Java Servlet 運(yùn)行原理分析的詳細(xì)內(nèi)容,更多關(guān)于Java Servlet 運(yùn)行原理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java中如何區(qū)分==和equals

    java中如何區(qū)分==和equals

    這篇文章主要介紹了java中如何區(qū)分==和equals,文中講解的非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Quarkus集成apollo配置中心

    Quarkus集成apollo配置中心

    這篇文章主要介紹了Quarkus集成apollo配置中心,文中詳細(xì)的講解了Quarkus的config構(gòu)成,以及apollo集成實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • Java?EventBus手把手帶你實(shí)現(xiàn)

    Java?EventBus手把手帶你實(shí)現(xiàn)

    EventBus是Guava的事件處理機(jī)制,是設(shè)計(jì)模式中觀察者模式(生產(chǎn)/消費(fèi)者編程模型)的優(yōu)雅實(shí)現(xiàn)。本文就來和大家聊聊EventBus的使用,需要的可以參考一下
    2023-01-01
  • springmvc path請求映射到bean 方法的流程

    springmvc path請求映射到bean 方法的流程

    這篇文章主要介紹了springmvc path請求映射到bean 方法的流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • springboot加載命令行參數(shù)ApplicationArguments的實(shí)現(xiàn)

    springboot加載命令行參數(shù)ApplicationArguments的實(shí)現(xiàn)

    本文主要介紹了springboot加載命令行參數(shù)ApplicationArguments的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot 如何使用Dataway配置數(shù)據(jù)查詢接口

    SpringBoot 如何使用Dataway配置數(shù)據(jù)查詢接口

    這篇文章主要介紹了SpringBoot 如何使用Dataway配置數(shù)據(jù)查詢接口,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解Java動(dòng)態(tài)加載數(shù)據(jù)庫驅(qū)動(dòng)

    詳解Java動(dòng)態(tài)加載數(shù)據(jù)庫驅(qū)動(dòng)

    本篇文章主要介紹了詳解Java動(dòng)態(tài)加載數(shù)據(jù)庫驅(qū)動(dòng),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Spring MVC 中 AJAX請求并返回JSON的示例

    Spring MVC 中 AJAX請求并返回JSON的示例

    本篇文章主要介紹了Spring MVC 中 AJAX請求并返回JSON,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • 利用Sharding-Jdbc組件實(shí)現(xiàn)分表

    利用Sharding-Jdbc組件實(shí)現(xiàn)分表

    這篇文章主要為大家詳細(xì)介紹了利用Sharding-Jdbc組件實(shí)現(xiàn)分表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Java設(shè)計(jì)模式之單例模式實(shí)例詳解【懶漢式與餓漢式】

    Java設(shè)計(jì)模式之單例模式實(shí)例詳解【懶漢式與餓漢式】

    這篇文章主要介紹了Java設(shè)計(jì)模式之單例模式,簡單說明了單例模式的原理并結(jié)合具體實(shí)例形式分析了單例模式中懶漢式與餓漢式的具體實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

黔江区| 宁乡县| 丹东市| 财经| 资溪县| 运城市| 壶关县| 永年县| 奉新县| 佳木斯市| 新疆| 绍兴市| 轮台县| 沂南县| 扎兰屯市| 尚义县| 海丰县| 顺平县| 河北省| 扬中市| 岳池县| 莫力| 嘉鱼县| 独山县| 台南县| 环江| 新巴尔虎右旗| 昌图县| 林州市| 醴陵市| 长岭县| 拜城县| 渭源县| 会昌县| 墨脱县| 泊头市| 博兴县| 安国市| 江永县| 江都市| 龙井市|