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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java跟踪会话_JavaWeb会话跟踪

發布時間:2023/12/10 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java跟踪会话_JavaWeb会话跟踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cookie和session是常用的會話跟蹤技術

cookie機制

1、web應用程序是使用HTTP協議傳輸數據的,HTTP協議是無狀態的協議,一旦數據交換完畢就會關閉鏈接。Cookie可以彌補HTTP協議無狀態的不足。

位于:javax.servlet.http.Cookie

2、Cookie具有不可跨域名性。Cookie的管理是瀏覽器,瀏覽器判斷一個網站是否能操作另一個網站的Cookie的依據是域名。例:p_w_picpaths.baidu.com與www.baidu.com不是同一個域名,cookie不能相互操作。但可以對此類cookie做特殊處理,讓其相互訪問。

3、Unicode編碼:保存中文

中文屬于Unicode字符,在內存中占4個字符,而英文屬于ASCII字符,內存中只占2個字節。Cookie中使用Unicode字符時需要URLEncode編碼,否則亂碼。一般采用UTF-8即可,GBK不推薦使用,因為瀏覽器不一定支持,而javascript也不支持GBK。

4、BASE64編碼:保存二進制圖片

Cookie可以使用二進制數據。例如在Cookie中使用數字證書,提供安全度。使用二進制數據時需要編碼BASE64。

BASE64:sun.misc.BASE64Encode;sun.misc.BASE64Decoder;

byte[] binary = new byte[1024];

String content = BASE64Encode.class.newInstance().encode(binary);

5、Cookie的屬性

6、Cookie的有效期

cookie.setMaxAge(秒)

負數:為臨時性Cookie,不會被持久化,不會寫到cookie文件中,cookie信息保存在瀏覽器內存中,關閉瀏覽器cookie就會消失,cookie的默認值為-1。

0:為零表示刪除該cookie,會從瀏覽器內存中刪除。

maxAge屬性只是被瀏覽器判斷是否過期的,不會提交到服務端。

修改:新建一個同名的cookie,覆蓋原來的cookie。

刪除:新建同名的cookie,并將maxAge為零,進行覆蓋。

7、永久登錄

方案:在登錄時查詢一次數據庫,以后訪問驗證登錄信息時不再查詢數據庫。實現方式是把賬號按照一定的規則加密后,連同賬號一塊保存到cookie中。下次訪問時只需要判斷賬號的加密規則是否正確即可。如:把賬號連同密匙用MD5算法加密后保存到cookie中,驗證時,驗證cookie中的賬號與密匙是否與cookie中的一樣。

session機制

session對應類javax.servlet.http.HttpSession類

session的使用比cookie方便,但過多的session存儲在服務器內存中,會對服務器造成壓力。

session的生命周期:

session在用戶第一次訪問服務器的時候自動創建,需要注意只有訪問JSP,Servlet等程序時才會創建session,訪問html等靜態資源并不會創建session。如果未生成session,可以使用request.getSession(true)強制生成。session生成后,只要用戶繼續訪問,服務器就會更新session的最后時間,并維護session。用戶每訪問服務器一次,無論是否讀寫session,服務器都認為該用戶的session活躍了一次。

session的有效期:

越來越多的用戶訪問,session也會越多,為防止內存溢出,服務器會把長時間內沒有活躍的session從內存中刪除。超時時間屬性為maxInactiveInterval,可設置超時時間。

tomcat的默認超時時間是20分鐘。

web.xml也可以設置超時時間

60?

session對瀏覽器的要求:

http協議是無狀態的,不能依據http連接來判斷是否同一客戶,因此服務器向客戶發送一個名為JSESSIONID的cookie,它的值為session的id,session依據該cookie來識別是否為同一用戶。該cookie為服務器自動生成,他的maxAge屬性為-1,表示僅當前瀏覽器內有效。

如果客戶端瀏覽器將cookie功能禁止,或者不支持cookie,例如大多數手機瀏覽器都不支持cookie,Javaweb提供另一種方案:URL地址重寫。

URL地址重寫:

原理是將該用戶session的id信息重新寫到URL地址中。

總結

以上是生活随笔為你收集整理的java跟踪会话_JavaWeb会话跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。