91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Servlet的運行原理是什么

發布時間:2022-01-07 11:29:17 來源:億速云 閱讀:93 作者:iii 欄目:編程語言

這篇文章主要介紹“Servlet的運行原理是什么”,在日常操作中,相信很多人在Servlet的運行原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Servlet的運行原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、UML

下圖為Servlet UML關系圖。

Servlet的運行原理是什么

從圖中可以看出:

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

GenericServlet實現接口Servlet,ServletConfig,Serializable

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

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

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

Servlet只有放在容器中,方可執行,且Servlet容器種類較多,如Tomcat,WebLogic等。

下圖為簡單的請求響應模型。

Servlet的運行原理是什么

分析:

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

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

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

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

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

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

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

線程A被銷毀或被放在線程池中

注意:

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

每個請求對應一個線程

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

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

三、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的運行原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 连山| 赣榆县| 无锡市| 长沙市| 永善县| 曲阳县| 沙湾县| 广东省| 新巴尔虎左旗| 海门市| 精河县| 团风县| 绍兴市| 永登县| 加查县| 文化| 永康市| 香格里拉县| 绍兴县| 嵩明县| 横山县| 白朗县| 弥渡县| 荔波县| 盐边县| 田东县| 黄石市| 太湖县| 古浪县| 云阳县| 张家港市| 固镇县| 大安市| 尚志市| 澜沧| 乃东县| 盘锦市| 始兴县| 阳城县| 娄底市|