servlet學習總結六

2021-07-22 20:54:43 字數 1829 閱讀 2065

cookie和session:

http協議是無狀態的,為了實現會話跟蹤,使用cookie和session。

cookie是server向client寫入的一段資訊,使用鍵值對,name-value 存放。

session是儲存在服務端的,客戶端訪問服務的時候,服務端將客戶端的資訊以某種形式儲存起來。

session的實現是基於cookie的。

當client發出第一次請求的時候,server接受到請求,檢查當前client是否存在session,如果不存在,則建立session並建立對應的唯一的sessionid(32位16進製制 , 在tomcat中是jsessionid)分配給cookie,以name=sessionid value=具體的值, 儲存在cookie中,這個sessionid 是服務端session的唯一憑證,當下次請求的時候,cookie會攜帶這個sessionid,服務端接受到請求後,根據sessionid匹配對應的session,與該客戶端進行多次互動,從來來解決http無狀態的問題。

我們專案組有時候需要來建立cookieutil 來對cookie進行一些 增刪改查 操作,網上有很棒 很詳細的文章,這裡我們用servlet來簡單的做個實現。

向client寫入cookie:

}查詢cookie:

writer.println("讀取客戶端 cookie");

writer.println("");

cookie cookies = req.getcookies();

boolean flag = true;

for (cookie cookie : cookies)

} if(flag)else

}結果:

我們可以在瀏覽器檢視

可以通過cookie.setmaxage(n)來設定失效時期,當引數n=0的時候,刪除cookie當n>0的時候,設定n秒之後失效,當n<0的時候,失效時間和瀏覽器繫結,隨瀏覽器失效,預設為-1

jsessionid是只有在server建立sesison的時候才能建立,如果直接訪問html檔案是沒有sessionid的。

在服務端獲取sesison通過request.getsession(boolean);來獲取,當引數為true時 如果client不存在session建立乙個,存在直接使用,如果引數為false,當client不存在session,返回為null,存在的話直接使用。

tomcat中session的預設失效時間為30分,可以自己來設定sesison的失效時間

1.session.setmaxinactiveinterval();

2.

10	

3.修改tomcat的 web.xml檔案

30	

它們的優先順序  1>2>3

servlet學習總結五

forward和redirect區別 forward直接請求 是伺服器端行為,web容器接受請求後,之後的跳轉處理都是在服務端內部,客戶端並不知道,redirect間接請求 重定向,是客戶端行為,客戶端每次發出請求,服務端都會給返回給客戶端乙個狀態碼和新的location位址,客戶端拿到狀態碼之後在...

Servlet元件學習總結

一 servlet的配置 aservlet com.neuedu.servlet.aservlet aservlet bservlet 瀏覽器位址列中請求的url和我們這裡標籤中的對映一致的時候,我們自定義的servlet類才會處理這個請求 二 servletconfig servletconfig...

Servlet學習總結(3)

將瀏覽器與web伺服器之間多次互動當做乙個整體來處理,並且將 多次互動所涉及的資料 即狀態 儲存下來。方式一 將狀態儲存在瀏覽器端 使用cookie 方式二 將狀態儲存在伺服器端 使用session 伺服器臨時存放在瀏覽器端的少量資料,用於存放使用者的狀態。注 當瀏覽器第一次訪問伺服器時,伺服器會將...