jsp創建cookie


<jsp:include flush="true" page="header.jsp" />
<script type="text/javascript">
	alert("add cookie");
	<%
		Cookie cookie=null;
		String cas_user = "no";
		if(request.getCookies()!=null)
			cookie=null;
		cookie = new Cookie("cas_bbs_sso",cas_user);
		cookie.setPath("/");
		response.addCookie(cookie);
	%>
</script>

  

在jsp頁面創建cookie,代碼當然很簡單,但是,需要注意一點的是:如果,jsp頁面存在嵌套,則必須把創建cookie的代碼寫在

<jsp:include flush="true" page="header.jsp" />的外面,上面也好,下面也行,但是,每個人的應用都不一樣,樣式也不一樣,有時候,添加在inclue的前面,會造成些頁面的樣式不一樣,我的就出現了這樣的問題,需要注意點。以下引用來自:http://wenson.iteye.com/blog/99098

無論怎樣添加Cookie,在引用Cookie的時候只得到名稱為JSESSIONID,值為一個無序字符串的Cookie,且從客戶端獲得的Cookie數組長度為1,說明手工添加的Cookie並沒有成功保存到客戶端。反復嘗試了N次,在網上查看了很多這方面的帖子,都沒有找到答案。最后終於發現,如果將創建Cookie的語句放在<jsp:include page="includes\head.jsp" flush="true" />(代碼的頭部有這條語句)的下面,Cookie將添加失敗,反之則添加成功。而我們得到的名稱為JSESSIONID實際上服務器端保存在客戶端的SESSION(會話),它的值就是服務器隨機分配的唯一的SESSION-ID,用以保持http連接的有效性。SESSION實際上是以Cookie的形式保存在客戶端的,SESSION和Cookie的不同之處在於,SESSION保存在瀏覽器所用的內存空間中,而Cookie保存在客戶端的硬盤上。頁面的關閉不會釋放SESSION,只有當客戶端的瀏覽器關閉時,SESSION才會被釋放。對於Cookie,它的聲明周期取決與服務器端對Cookie.setMaxAge()的這一設置,否則將一直保存在硬盤上,直至超出有效期或被人工清除。


免責聲明!

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



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