日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

servlet的一些简单理解

發(fā)布時間:2025/3/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 servlet的一些简单理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Servlet是sun公司提供的一門用于開發(fā)動態(tài)web資源的技術(shù)
Sun公司在其API中提供了一個servlet接口,用戶若想用發(fā)一個動態(tài)web資源(即開發(fā)一個Java程序向瀏覽器輸出數(shù)據(jù)),需要完成以下2個步驟:
  1、編寫一個Java類,實現(xiàn)servlet接口。
  2、把開發(fā)好的Java類部署到web服務(wù)器中。
  按照一種約定俗成的稱呼習(xí)慣,通常我們也把實現(xiàn)了servlet接口的java程序,稱之為Servlet
一般是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層,用于處理及響應(yīng)客戶的請求
Servlet 生命周期可被定義為從創(chuàng)建直到毀滅的整個過程。以下是 Servlet 遵循的過程:

Servlet 通過調(diào)用 init () 方法進行初始化。
Servlet 調(diào)用 service() 方法來處理客戶端的請求。
Servlet 通過調(diào)用 destroy() 方法終止(結(jié)束)。
最后,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。

Web 應(yīng)用的初始化工作是在 ContextConfig 的 configureStart 方法中實現(xiàn)的,應(yīng)用的初始化主要是要解析 web.xml 文件,
這個文件描述了一個 Web 應(yīng)用的關(guān)鍵信息,也是一個 Web 應(yīng)用的入口。

接下去將會將 Web.xml 對象中的屬性設(shè)置到 Context 容器中,這里包括創(chuàng)建 Servlet 對象、filter、listener 等等

當(dāng)用戶從瀏覽器向服務(wù)器發(fā)起一個請求,通常會包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用來與服務(wù)器建立 TCP 連接,
而后面的 URL 才是用來選擇服務(wù)器中哪個子容器(servlet容器)去服務(wù)用戶的請求

Session 與 Cookie 的作用都是為了保持訪問用戶與后端服務(wù)器的交互狀態(tài)。它們有各自的優(yōu)點也有各自的缺陷,
然而具有諷刺意味的是它們優(yōu)點和它們的使用場景又是矛盾的,例如使用 Cookie 來傳遞信息時,隨著 Cookie 個數(shù)的增多和訪問量的增加,
它占用的網(wǎng)絡(luò)帶寬也很大,試想假如 Cookie 占用 200 個字節(jié),如果一天的 PV 有幾億的時候,它要占用多少帶寬。所以大訪問量的時候希望用 Session,
但是 Session 的致命弱點是不容易在多臺服務(wù)器之間共享,所以這也限制了 Session 的使用。

最后說一說在javaweb的web.xml文件中關(guān)于<servlet-mapping>的<url-pattern>的理解:

容器的Context對象對請求路徑(URL)做出處理,(當(dāng)用戶從瀏覽器向服務(wù)器發(fā)起一個請求,通常會包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用來與服務(wù)器建立 TCP 連接,而后面的 URL 才是用來選擇服務(wù)器中哪個子容器(servlet)的)。去掉請求URL的上下文路徑后,按路徑映射規(guī)則和Servlet映射路徑(<url- pattern>)做匹配,如果匹配成功,則調(diào)用這個Servlet處理請求。
舉個例子說明servlet容器對url的匹配過程:

當(dāng)一個請求發(fā)送到servlet容器的時候,容器先會將請求的url減去當(dāng)前應(yīng)用上下文的路徑作為servlet的映射url,比如我訪問的是http://localhost/test/fourier.html,我的應(yīng)用上下文是test,容器會將http://localhost/test去掉,剩下的/fourier.html部分拿來做servlet的映射匹配。這個映射匹配過程是有順序的,而且當(dāng)有一個servlet匹配成功以后,就不會去理會剩下的servlet了(filter不同,后文會提到),而對于filter,不會像servlet那樣只匹配一個servlet,因為filter的集合是一個鏈,所以只會有處理的順序不同,而不會出現(xiàn)只選擇一個filter。Filter的處理順序和filter-mapping在web.xml中定義的順序相同。

總結(jié)

以上是生活随笔為你收集整理的servlet的一些简单理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。