Servlet實現Cookie讀寫


前言

    程序員老婆讓程序員去外面買東西,說,老公,你出去買一籠包子吧,遇到賣西瓜的就買一個。老公高興的出去了,一會兒帶着一個包子回來了,老婆很是郁悶問,怎么只買了一個包子,程序員說:因為我看到賣西瓜的了。

內容

    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,安全性很低,但是很方便。

 

    一個簡單的小例子,很淺顯,希望對大家有用。

 小結


感謝您的寶貴時間···


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM