更新時(shí)間:2020-03-20 09:20:00 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2536次
什么是servlet?
Servlet是基于Java技術(shù)的web組件,容器托管的,用于生成動(dòng)態(tài)內(nèi)容。像其他基于Java的組件技術(shù)一樣,
Servlet也是基于平臺(tái)無(wú)關(guān)的Java類格式,被編譯為平臺(tái)無(wú)關(guān)的字節(jié)碼,可以被基于Java技術(shù)的webserver
動(dòng)態(tài)加載并運(yùn)行。容器(平時(shí)我們所使用的tomcat就是其中一種servlet容器),有時(shí)候也叫做servlet引擎,是webserver為支持servlet功能擴(kuò)展的部分??蛻舳?/p>
通過(guò)Servlet容器實(shí)現(xiàn)的請(qǐng)求/應(yīng)答模型與Servlet交互。
servlet如何處理一個(gè)客戶端請(qǐng)求?
servlet的生命周期?
servlet按照一個(gè)嚴(yán)格定義的生命周期被管理,該生命周期包括:如何被加載?實(shí)例化?初始化?處理客戶端請(qǐng)求?何時(shí)結(jié)束服務(wù)?
該生命周期可以通過(guò)Servlet接口中的API來(lái)表示:init、service、destroy
加載和實(shí)例化階段
servlet容器負(fù)責(zé)加載和實(shí)例化servlet,加載和實(shí)例化可以發(fā)生在容器啟動(dòng)時(shí),或者延遲初始化直到容器有請(qǐng)求需要處理時(shí)。(通過(guò)開(kāi)發(fā)者配置來(lái)確定)
初始化階段
servlet容器必須在處理客戶端請(qǐng)求之前,對(duì)servlet實(shí)例進(jìn)行初始化(即調(diào)用Servlet.init接口)??梢酝瓿梢恍┳x取持久化配置數(shù)據(jù)、初始化資源等一次性的動(dòng)作。
處理客戶端請(qǐng)求
完成初始化之后,servlet容器可以使用該servlet來(lái)處理客戶端請(qǐng)求。(容器通過(guò)開(kāi)發(fā)者的配置,即servlet-mapping來(lái)尋找適合當(dāng)前請(qǐng)求的servlet)客戶端請(qǐng)求由ServletRequest類型來(lái)封裝表示、Servlet響應(yīng)由ServletResponse類型來(lái)封裝表示。這兩個(gè)類型的對(duì)象都由容器進(jìn)行實(shí)例化,在調(diào)用Servlet處理客戶端請(qǐng)求時(shí)傳遞給Servlet的service方法。在Http請(qǐng)求的場(chǎng)景下,容器提供的實(shí)現(xiàn)對(duì)應(yīng)為HttpServletRequest、HttpServletResponse。一個(gè)servlet實(shí)例應(yīng)對(duì)多個(gè)客戶端請(qǐng)求的情況,導(dǎo)致了我們需要在處理請(qǐng)求時(shí)保證線程安全。
servlet技術(shù)中的其他組件?
在servlet技術(shù)中,除了Servlet接口用于處理請(qǐng)求這個(gè)組件接口外,還存在Filter、Listener這兩個(gè)重要的組件接口。
其中Filter是一種代碼重用的技術(shù),運(yùn)行運(yùn)行過(guò)程中改變進(jìn)入資源的請(qǐng)求和資源返回的響應(yīng)中的有效負(fù)載和header信息。即可以在分發(fā)請(qǐng)求給servlet處理之前對(duì)請(qǐng)求進(jìn)行攔截,之后再servlet完成處理,返回響應(yīng)后對(duì)響應(yīng)進(jìn)行攔截。可以用于日志記錄、驗(yàn)證等需求。
和servlet生命周期一樣,應(yīng)用同樣存在生命周期。監(jiān)聽(tīng)?wèi)?yīng)用生命周期事件可以讓開(kāi)發(fā)人員更好的控制ServletContext、HTTPSession和ServletRequest的生命周期,可以更好的進(jìn)行代碼分解。Servlet事件監(jiān)聽(tīng)器支持在ServletContext、HTTPSession和ServletRequest狀態(tài)改變時(shí)進(jìn)行事件通知。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Javaweb項(xiàng)目學(xué)習(xí)視頻:Servlet解讀”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743