前言
程序員老婆讓程序員去外面買東西,說,老公,你出去買一籠包子吧,遇到賣西瓜的就買一個。老公高興的出去了,一會兒帶着一個包子回來了,老婆很是郁悶問,怎么只買了一個包子,程序員說:因為我看到賣西瓜的了。
內容
Cookie通過客戶端http協議傳輸放到request里面,所以在那么可以從request拿到當初存放在里面的cookies。利用java里面封裝好的cookie類,很容易實現數據共享。但是這種存放方式安全性很低,因為很容易讀取到。所以,一些大型網站為了減輕服務器的壓力,把一些個人不重要的服務信息加載到cookies里面,然后用戶很方便獲取到,會話結束的時候自動銷毀,達到很好的數據讀取效果。
采用servlet實現cookies讀寫方式:
寫入cookies
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie c1 = new Cookie("password","123"); response.addCookie(c1); Cookie c2 = new Cookie("client_ip",request.getRemoteAddr()); //設置cookie的生命周期為一個小時,單位為秒 c2.setMaxAge(60*60); response.addCookie(c2); response.getWriter().println("SetCookies OK!"); }
執行效果圖
讀取cookies
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie[] Cookies = request.getCookies(); for(int i =0;i<Cookies.length;i++){ Cookie c = Cookies[i]; response.getWriter().println(c.getName() + "," + c.getValue()); } }
執行效果圖
當我們重新打開一個窗口或者清除cookies記錄時候,再次讀取,會出現以下錯誤,告訴我們空指針,沒有讀取到cookies值。說明,訪問的時候,cookies是存放在客戶端的,重新打開一個窗口,會中斷此次的請求,cookies會失效。也可以手動清除cookies,安全性很低,但是很方便。
一個簡單的小例子,很淺顯,希望對大家有用。
小結
感謝您的寶貴時間···