Session

本文介绍了如何在浏览器中管理和使用session,包括通过cookie存储session ID的方法、解决cookie被禁用的问题、url重写技术以及如何在程序中创建、获取和销毁session等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开一个浏览器如果创建了session那么这个浏览器对应一个session,再打开一个就不能用了(IE8以上除外)。

原因: 

session基于cookie,每个session被创建的时候都有一个ID,并把这个ID以cookie的方式发给浏览器。

这个存id的cookie没有设有效期,所以浏览器关了cookie就消失了。

解决办法:

修改默认的cookie

String sessionid = session.getId();

Cookie cookie = new Cookie(“JSESSIONID”,sessionid);

cookie.setPath(“/session”);

cookie.setMaxAge(30*60);

response.addCookie(cookie);

如果用户把cookie禁用了,解决办法如下:

url重写。在url地址后边跟上session id号,现成方法如下":

String url1 = esponse. encodeURL(“/session/servlet/SessionDemo1”);

该方法会自将为url变成

“/session/servlet/SessionDemo1;jsessionid=***”  ***为session id号

 

配置文件自动摧毁session

在tomcat的web.xml中可以配置:

<session-config>

   <session-timeout>10</session-timeout>

</session-config>

session保存十分钟。

 

在程序中摧毁session

session.invalidate();

 

request.getSession();//获取session,如果没有就创建。

request.getSession(false);//只获取不创建session

转载于:https://www.cnblogs.com/flying607/p/3452675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值