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 伺服器臨時存放在瀏覽器端的少量資料,用於存放使用者的狀態。注 當瀏覽器第一次訪問伺服器時,伺服器會將...