更新時間:2020-03-20 09:20:00 來源:動力節(jié)點 瀏覽2853次
什么是servlet?
Servlet是基于Java技術(shù)的web組件,容器托管的,用于生成動態(tài)內(nèi)容。像其他基于Java的組件技術(shù)一樣,
Servlet也是基于平臺無關(guān)的Java類格式,被編譯為平臺無關(guān)的字節(jié)碼,可以被基于Java技術(shù)的webserver
動態(tài)加載并運行。容器(平時我們所使用的tomcat就是其中一種servlet容器),有時候也叫做servlet引擎,是webserver為支持servlet功能擴展的部分??蛻舳?/p>
通過Servlet容器實現(xiàn)的請求/應答模型與Servlet交互。
servlet如何處理一個客戶端請求?

servlet的生命周期?
servlet按照一個嚴格定義的生命周期被管理,該生命周期包括:如何被加載?實例化?初始化?處理客戶端請求?何時結(jié)束服務?
該生命周期可以通過Servlet接口中的API來表示:init、service、destroy
加載和實例化階段
servlet容器負責加載和實例化servlet,加載和實例化可以發(fā)生在容器啟動時,或者延遲初始化直到容器有請求需要處理時。(通過開發(fā)者配置來確定)
初始化階段
servlet容器必須在處理客戶端請求之前,對servlet實例進行初始化(即調(diào)用Servlet.init接口)??梢酝瓿梢恍┳x取持久化配置數(shù)據(jù)、初始化資源等一次性的動作。
處理客戶端請求
完成初始化之后,servlet容器可以使用該servlet來處理客戶端請求。(容器通過開發(fā)者的配置,即servlet-mapping來尋找適合當前請求的servlet)客戶端請求由ServletRequest類型來封裝表示、Servlet響應由ServletResponse類型來封裝表示。這兩個類型的對象都由容器進行實例化,在調(diào)用Servlet處理客戶端請求時傳遞給Servlet的service方法。在Http請求的場景下,容器提供的實現(xiàn)對應為HttpServletRequest、HttpServletResponse。一個servlet實例應對多個客戶端請求的情況,導致了我們需要在處理請求時保證線程安全。
servlet技術(shù)中的其他組件?
在servlet技術(shù)中,除了Servlet接口用于處理請求這個組件接口外,還存在Filter、Listener這兩個重要的組件接口。
其中Filter是一種代碼重用的技術(shù),運行運行過程中改變進入資源的請求和資源返回的響應中的有效負載和header信息。即可以在分發(fā)請求給servlet處理之前對請求進行攔截,之后再servlet完成處理,返回響應后對響應進行攔截??梢杂糜谌罩居涗?、驗證等需求。
和servlet生命周期一樣,應用同樣存在生命周期。監(jiān)聽應用生命周期事件可以讓開發(fā)人員更好的控制ServletContext、HTTPSession和ServletRequest的生命周期,可以更好的進行代碼分解。Servlet事件監(jiān)聽器支持在ServletContext、HTTPSession和ServletRequest狀態(tài)改變時進行事件通知。

以上就是動力節(jié)點Java培訓機構(gòu)小編介紹的“Javaweb項目學習視頻:Servlet解讀”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。