這篇文章主要介紹“Servlet的運行原理是什么”,在日常操作中,相信很多人在Servlet的運行原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Servlet的運行原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創新互聯公司擁有10余年成都網站建設工作經驗,為各大企業提供成都網站設計、網站建設服務,對于網頁設計、PC網站建設(電腦版網站建設)、重慶App定制開發、wap網站建設(手機版網站建設)、程序開發、網站優化(SEO優化)、微網站、域名注冊等,憑借多年來在互聯網的打拼,我們在互聯網網站建設行業積累了很多網站制作、網站設計、網絡營銷經驗,集策劃、開發、設計、營銷、管理等網站化運作于一體,具備承接各種規模類型的網站建設項目的能力。
一、UML
下圖為Servlet UML關系圖。

從圖中可以看出:
抽象類HttpServlet繼承抽象類GenericServlet,其有兩個比較關鍵的方法,doGet()和doPost()
GenericServlet實現接口Servlet,ServletConfig,Serializable
MyServlet(用戶自定義Servlet類)繼承HttpServlet,重寫抽象類HttpServlet的doGet()和doPost()方法
注:任何一個用戶自定義Servlet,只需重寫抽象類HttpServlet的doPost()和doGet()即可,如上圖的MyServlet
二、Servlet在容器中的執行過程
Servlet只有放在容器中,方可執行,且Servlet容器種類較多,如Tomcat,WebLogic等。
下圖為簡單的請求響應模型。

分析:
瀏覽器向服務器發出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角色

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

四、Servlet在容器中的生命周期
下圖為Servlet生命周期簡要概圖

分析:
***步:容器先加載Servlet類
第二步:容器實例化Servlet(Servlet無參構造函數執行)
第三步:執行init()方法(在Servlet生命周期中,只執行一次,且在service()方法執行前執行)
第四步:執行service()方法,處理客戶請求,doPost()或doGet()
第五步:執行destroy(),銷毀線程
到此,關于“Servlet的運行原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!
文章題目:Servlet的運行原理是什么
文章路徑:http://www.yijiale78.com/article20/gippco.html
成都網站建設公司_創新互聯,為您提供面包屑導航、手機網站建設、、虛擬主機、云服務器、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯