java web 设置持久session

94 篇文章 0 订阅
<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">当浏览器支持cookie的时候,设置服务器端的session周期是不够的,因为浏览器是以会话周期为限保存JSESSIONID的。如果如果想长时间的真正保存session需要设置服务器端的</span>
session期限,同时设置浏览器端的cookie为 JSESSIONID的期限,才能在浏览器和服务器一致。(每次浏览器访问服务器的时候,都会传递cookies给服务器,而JSESSIONID代表session在cookie中对应项,服务器会在有JSESSIONID的cookie下,使用这次SESSIONID生成还原过去的session,如果其不存在,就创建新的session和JSESSIONID的cookie)
 

服务器端设置session的过期时间:(这保证该时间段内服务器不关闭的情况下有效吧?)
session.setMaxInactiveInterval(5*60);


浏览器端通过服务器端的cookie设置,使其浏览器session的周期不会像下面这样:
脚本可访问:否(仅 Http)
已创建:	2016年6月7日星期二 上午10:41:59
过期时间:浏览会话结束时

而是设置成:
脚本可访问:是
已创建:2016年6月7日星期二 上午10:39:48
过期时间:2016年6月12日星期日 上午10:39:48
这样也许服务器关闭,服务器开启后也能访问到原来的session吧?
public void persistenceClientSession(HttpServletResponse response,HttpSession session,int savedSeconds){
		
		Cookie cookie = new Cookie("JSESSIONID",session.getId());
		cookie.setPath("/");
		cookie.setMaxAge(savedSeconds);//单位:s
		response.addCookie(cookie);
	}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值