Servlet實現session讀寫


前言

    一個女人讓他的程序員丈夫去商店買東西:你去附近的商店買些面包,如果有雞蛋的話,買6個回來,這個丈夫買了6個面包回來,他的妻子大吃一驚:你為什么買了6個面包?! 程序員丈夫回答:因為他們有雞蛋。

內容

    Session是存放在服務端的,當用戶發送請求,session存放機制是下面這樣的:

  • 第一步

用戶訪問的時候,會在服務器上開辟一塊空間(創建一個session,伴隨着一個sessionID)。

  • 第二步

訪問完了就斷開連接(http協議連接后就斷開連接了),下次該用戶還進行重復的訪問,會通過服務器response給客戶端cookiesessionid來進行再次連接。

  • 第三步

    當關閉窗口,cookies里面的東西就沒有了,再次打開就取不到相應的sessionID,服務器存的session內容超時后會自動清除。如果客戶端禁用了cookie,可以進行url重寫,就是將獲取到的sessionID跟蹤到url后面。

 

下面寫入和讀取sessioncookie類似。

Session寫入:

 

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
			HttpSession session = request.getSession(true);
			session.setAttribute("ip", request.getRemoteAddr());
			session.setAttribute("zhoulitong", "very good!");
			
			response.getWriter().println("SetSession OK!");
	}

效果圖:

 

Session讀取:

 

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		HttpSession session = request.getSession(true);
		String ip = (String)session.getAttribute("ip");
		String zhoulitong = (String)session.getAttribute("zhoulitong");
		response.getWriter().println("ip=" + ip +","+ zhoulitong);
	}

效果圖:

 

如果清理cookies或者重啟瀏覽器會出現下面這種情況,說明cookie里面保存的sessionID找不到了,當然就不能根據sessionID獲取服務器的信息了。

 

小結

    學習嘛,遠不比工作。


感謝您的寶貴時間···



免責聲明!

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



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