自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

開(kāi)發(fā) 后端
在JavaWeb學(xué)習(xí)研究中,Servlet扮演重要的作用,學(xué)好它,是后續(xù)JavaWeb學(xué)習(xí)的良好基礎(chǔ)。

 在JavaWeb學(xué)習(xí)研究中,Servlet扮演重要的作用,學(xué)好它,是后續(xù)JavaWeb學(xué)習(xí)的良好基礎(chǔ)。

無(wú)論是SSH,還是SSM,微服務(wù)JavaWeb技術(shù),都應(yīng)先學(xué)好Servlet,從而達(dá)到事半功倍的效果,本篇將主要分析Servlet的運(yùn)行原理。

一、UML

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

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

從圖中可以看出:

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

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

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

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

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

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

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

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

分析:

瀏覽器向服務(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角色

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

(二)控制器角色

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

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

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

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

揭秘Java Web技術(shù)內(nèi)幕,別讓CRUD麻木了你!

分析:

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

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

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

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

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

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2020-07-29 14:15:04

JavaJvm算法

2024-05-28 09:12:10

2009-05-26 14:53:50

2025-03-07 00:00:05

黑客AI人工智能

2017-11-10 14:56:29

數(shù)字化體驗(yàn)數(shù)字體驗(yàn)管理DEM

2018-11-28 11:32:19

信息安全流行詞安全領(lǐng)域

2010-04-10 17:43:24

無(wú)線蹭網(wǎng)卡

2019-12-12 09:48:24

Web前端技術(shù)

2012-03-21 09:44:15

云計(jì)算開(kāi)源

2015-11-16 23:49:39

2015-02-27 13:51:32

數(shù)據(jù)安全

2020-06-02 16:33:52

Serverless 云函數(shù)Node

2017-11-02 14:53:30

PC硬件內(nèi)幕

2011-08-12 10:30:36

AMD服務(wù)器處理器

2021-02-20 10:30:33

勒索軟件端點(diǎn)安全漏洞

2020-08-17 17:21:30

備份數(shù)據(jù)數(shù)據(jù)庫(kù)

2015-12-08 15:51:15

數(shù)據(jù)中心灰塵霧霾

2023-08-22 20:23:15

2022-11-30 10:33:03

直播技術(shù)

2022-04-13 07:51:49

API網(wǎng)關(guān)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)