<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()的这一设置,否则将一直保存在硬盘上,直至超出有效期或被人工清除。

posted on 2013-08-09 11:28  youngjoy  阅读(5183)  评论(0编辑  收藏  举报