Servlet的運(yùn)行原理是什么

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

創(chuàng)新互聯(lián)公司擁有10余年成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),對(duì)于網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、重慶App定制開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名注冊(cè)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。

一、UML

下圖為Servlet UML關(guān)系圖。

Servlet的運(yùn)行原理是什么

從圖中可以看出:

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

GenericServlet實(shí)現(xiàn)接口Servlet,ServletConfig,Serializable

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

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

二、Servlet在容器中的執(zhí)行過程

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

下圖為簡(jiǎn)單的請(qǐng)求響應(yīng)模型。

Servlet的運(yùn)行原理是什么

分析:

瀏覽器向服務(wù)器發(fā)出GET請(qǐng)求(請(qǐng)求服務(wù)器ServletA)

服務(wù)器上的容器邏輯接收到該url,根據(jù)該url判斷為Servlet請(qǐng)求,此時(shí)容器邏輯將產(chǎn)生兩個(gè)對(duì)象:請(qǐng)求對(duì)象(HttpServletRequest)和響應(yīng)對(duì)象(HttpServletResponce)

容器邏輯根據(jù)url找到目標(biāo)Servlet(本示例目標(biāo)Servlet為ServletA),且創(chuàng)建一個(gè)線程A

容器邏輯將剛才創(chuàng)建的請(qǐng)求對(duì)象和響應(yīng)對(duì)象傳遞給線程A

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

service()方法根據(jù)請(qǐng)求類型(本示例為GET請(qǐng)求)調(diào)用doGet()(本示例調(diào)用doGet())或doPost()方法

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

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

注意:

在容器中的每個(gè)Servlet原則上只有一個(gè)實(shí)例

每個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)線程

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

每個(gè)線程一旦執(zhí)行完任務(wù),就被銷毀或放在線程池中等待回收

三、Servlet在JavaWeb中扮演的角色

Servlet在JavaWeb中,扮演兩個(gè)角色:頁(yè)面角色和控制器角色。

有了jsp等動(dòng)態(tài)頁(yè)面技術(shù)后,Servlet更側(cè)重于控制器角色,jsp+servlert+model 形成基本的三層架構(gòu)

(一)頁(yè)面Page角色

Servlet的運(yùn)行原理是什么

(二)控制器角色

jsp充當(dāng)頁(yè)面角色,Servlet扮演控制器角色,兩者組合構(gòu)建基本的MVC三層架構(gòu)模式

Servlet的運(yùn)行原理是什么

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

下圖為Servlet生命周期簡(jiǎn)要概圖

Servlet的運(yùn)行原理是什么

分析:

***步:容器先加載Servlet類

第二步:容器實(shí)例化Servlet(Servlet無(wú)參構(gòu)造函數(shù)執(zhí)行)

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

第四步:執(zhí)行service()方法,處理客戶請(qǐng)求,doPost()或doGet()

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

到此,關(guān)于“Servlet的運(yùn)行原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

文章題目:Servlet的運(yùn)行原理是什么
文章路徑:http://bm7419.com/article20/gippco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、、虛擬主機(jī)、云服務(wù)器企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)