日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:Alan_beijing
來源:https://www.cnblogs.com/wangjiming/p/10360327.html

在JAVAWeb學習研究中,Servlet扮演重要的作用,學好它,是后續JavaWeb學習的良好基礎。無論是SSH,還是SSM,微服務JavaWeb技術,都應先學好Servlet,從而達到事半功倍的效果,本篇將主要分析Servlet的運行原理。

一、UML

下圖為Servlet UML關系圖。

淺析 Servlet 執行原理

 

 

從圖中,可以看出:

1、抽象類HttpServlet繼承抽象類GenericServlet,其有兩個比較關鍵的方法,doGet()和doPost()。

2、 GenericServlet實現接口Servlet,ServletConfig,Serializable。

3、MyServlet(用戶自定義Servlet類)繼承HttpServlet,重寫抽象類HttpServlet的doGet()和doPost()方法。

注:任何一個用戶自定義Servlet,只需重寫抽象類HttpServlet的doPost()和doGet()即可,如上圖的MyServlet。

二、Servlet在容器中的執行過程

Servlet只有放在容器中,方可執行,且Servlet容器種類較多,如Tomcat,WebLogic等。下圖為簡單的請求響應模型。

淺析 Servlet 執行原理

 

 

分析:

1、瀏覽器向服務器發出GET請求(請求服務器ServletA)。

2、服務器上的容器邏輯接收到該url,根據該url判斷為Servlet請求,此時容器邏輯將產生兩個對象:請求對象(HttpServletRequest)和響應對象(HttpServletResponce)。

3、容器邏輯根據url找到目標Servlet(本示例目標Servlet為ServletA),且創建一個線程A。

4、容器邏輯將剛才創建的請求對象和響應對象傳遞給線程A。

5、容器邏輯調用Servlet的service()方法。

6、service()方法根據請求類型(本示例為GET請求)調用doGet()(本示例調用doGet())或doPost()方法。

7、doGet()執行完后,將結果返回給容器邏輯。

8、線程A被銷毀或被放在線程池中。

注意:

1、在容器中的每個Servlet原則上只有一個實例。

2、每個請求對應一個線程。

3、多個線程可作用于同一個Servlet(這是造成Servlet線程不安全的根本原因)。

4、每個線程一旦執行完任務,就被銷毀或放在線程池中等待回收。

三、Servlet在JavaWeb中扮演的角色

Servlet在JavaWeb中,扮演兩個角色:頁面角色和控制器角色。

有了jsp等動態頁面技術后,Servlet更側重于控制器角色,jsp+servlert+model 形成基本的三層架構。

(一)頁面Page角色

 

淺析 Servlet 執行原理

 

 

(二)控制器角色

jsp充當頁面角色,Servlet扮演控制器角色,兩者組合構建基本的MVC三層架構模式

淺析 Servlet 執行原理

 

 

四、Servlet在容器中的生命周期

下圖為Servlet生命周期簡要概圖:

淺析 Servlet 執行原理

 

 

分析:

第一步:容器先加載Servlet類。

第二步:容器實例化Servlet(Servlet無參構造函數執行)。

第三步:執行init()方法(在Servlet生命周期中,只執行一次,且在service()方法執行前執行)。

第四步:執行service()方法,處理客戶請求,doPost()或doGet()。

第五步:執行destroy(),銷毀線程。

分享到:
標簽:Servlet
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定