servlet的一些認識

2021-08-19 20:23:28 字數 1487 閱讀 3095

客戶端傳送請求至伺服器端;

伺服器將請求資訊傳送至 servlet;

servlet 生成響應內容並將其傳給伺服器。響應內容動態生成,通常取決於客戶端的請求;

伺服器將響應返回給客戶端。

當乙個請求傳送到servlet容器的時候,容器先會將請求的url減去當前應用上下文的路徑作為servlet的對映url,比如我訪問的是http://localhost/test/aaa.html,我的應用上下文是test,容器會將http://localhost/test去掉,剩下的/aaa.html部分拿來做servlet的對映匹配。這個對映匹配過程是有順序的,而且當有乙個servlet匹配成功以後,就不會去理會剩下的servlet了。

1.     精確路徑匹配。例子:比如servleta 的url-pattern為 /test,servletb的url-pattern為 /* ,這個時候,如果我訪問的url為http://localhost/test ,這個時候容器就會先進行精確路徑匹配,發現/test正好被servleta精確匹配,那麼就去呼叫servleta,也不會去理會其他的servlet了。 

2.     最長路徑匹配。例子:servleta的url-pattern為/test/*,而servletb的url-pattern為/test/a/*,此時訪問http://localhost/test/a時,容器會選擇路徑最長的servlet來匹配,也就是這裡的servletb。 

3.     擴充套件匹配,如果url最後一段包含擴充套件,容器將會根據擴充套件選擇合適的servlet。例子:servleta的url-pattern:*.action 

4.     如果前面三條規則都沒有找到乙個servlet,容器會根據url選擇對應的請求資源。如果應用定義了乙個default servlet,則容器會將請求丟給default servlet(什麼是default servlet?後面會講)。 

建立servlet

例項有兩個時機:

每個servlet

的執行都遵循如下生命週期:

建立servlet例項。

web容器

呼叫servlet

的init()

方法,對

servlet

進行初始化。

servlet

初始化後,將一直存在於容器中,用於

響應客戶端請求

,如果客戶端傳送

get請求,容器呼叫

servlet

的doget()

方法處理並響應請求;如果客戶端傳送

post

請求,容器呼叫

servlet

的dopost()

方法處理並響應請求。或者統一使用

service()

方法處理來響應使用者請求。

web容器決定銷毀

servlet

時,先呼叫

servlet

的destory()

方法,通常在關閉

web應用時

銷毀servlet例項。

session和servlet的一些認識

為客戶開發的系統已經上線使用了,但是反應伺服器斷開的時候太短,希望延長伺服器的有效時間。於是想到了session,專案框架不是我搭建的,但是還是嘗試找找,找了都沒看到 直接設定了session 的有效時間,寫了session的 建立和登出,也是預設的半個小時。於是沒找出問題所在。但是還是對sessi...

關於Servlet的一些知識

servlet的生命週期就是從servlet出現到銷毀的全過程。主要分為以下幾個階段 載入類 例項化 為物件分配空間 初始化 為物件的屬性賦值 請求處理 服務階段 銷毀 伺服器啟動時 web.xml中配置load on startup 1,預設為0 或者第一次請求該servlet時,就會初始化乙個s...

winpcap的一些認識

一 winpcap簡介 winpcap是unix下的libpcap移植到windows下的產物,他是乙個freeandopensource的專案。winpcap工作於驅動 driver 層,所以能以很高的效率進行網路操作。winpcap提供了以下強大的功能 1 捕獲原始的資料報 2 設定filter...