JavaWeb之Session技術

session
服務器用於緩存數據會話技術
默認情況:session依賴於cookie
對象HttpSession

1.session原理:

根據上圖分析如下:
a.瀏覽器發送請求到服務器,並交給一個servlet進行處理。此時request.getSession()第一次創建session對象,將sessionId以cookie的方式發送給瀏覽器。同時在服務端會保存session,並且,有唯一的id。
b.服務端將響應的信息發送到客戶端,客戶端會保存cookie信息。
c.當瀏覽器再次請求的時候,並交給另一servlet-twoservlet進行處理,此時request.getsession()會首先在服務端找是否有匹配的session,如果匹配,則不創建。
getSession()用於獲得session對象,並以cookie方式將session id發送瀏覽器
如果沒有特殊的cookie getSession方法創建session對象
2.session生命週期
創建:第一次使用
銷燬:
過期,默認30分鐘,%tomcat%/conf/web.xml配置
<session-config>
<session-timeout>30</session-timeout>
</session-config>
執行invalidate() ,進行銷燬
setMaxInactiveInterval(int interval) 設置生命週期的時間,單位秒
非正常關閉
操作屬性--用於緩存數據
xxxAttribute
3.URL重寫
如果瀏覽器禁用了cookie,通過指定的api給URL後面追加特殊的標記,將session id傳遞給服務器
http://......./day10/oneServlet;jsessionid=23542958BF73D36C6F4086173606AA9B
encodeURL(url) 重寫URL,重寫普通的URL【】
encodeRedirectURL(java.lang.String url) ,專門用於處理重定向 URL重寫。
如果參數是空字符串,內容不同

用法:見博文中session技術案例session應用案例-註冊驗證碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章