Session的理解与深入

session测试: 客户端(jsp)访问服务端生成sessionid结果的测试
火狐浏览器打开第一个页面访问服务器 798873A1A595F4D6BF29D4E71BCECBB0
火狐浏览器打开第二个页面访问服务器 798873A1A595F4D6BF29D4E71BCECBB0
 
qq浏览器打开第一个页面访问服务器 9329B22DF63BA6339713410D19210299
qq浏览器打开第二个页面访问服务器 9329B22DF63BA6339713410D19210299
通过ServletActionContext.getRequest().getSession().invalidate(); 通过invalidate可以清除session或者是session超时(关掉浏览器并不会关闭session),下次访问就会生成一个与上一次不同的sessionid。
session
总结: 同一个浏览器打开多个界面访问同一个服务器地址还是同一个session
不同浏览器访问同一个服务器地址,不同浏览器之间的不是同一个session
 
当JSP页面没有显式(<% @page session="false"%> )禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session,并赋予其一个sessionid(tomcat机制生成的sessionid叫做JSESSIONID)
,发送给客户端的浏览器,存在于cookie里面。以后客户端接着请求本应用中其他资源的时候,会自动在请求头上添加:Cookie:JSESSIONID=客户端第一次拿到的session ID,服务器端在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用.
jsp界面访问sessionid值
这里是jsp取到的生成sessionid值
(tomcat的session的id值生成的机制是:一个随机数+时间+jvm的id值,jvm的id值会根据服务器的硬件信息计算得来,因此不同jvm的id值都是唯一的)
另外session存放在服务器端的内存中,不过session可以通过特殊的方式做持久化管理(memcache,redis)。
session超时:Tomcat一般默认时间为30分钟
可以设置session失效:
第一种:在web.xml配置 分钟为单位,最小设置为1分钟
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
第二种:java代码
session.setMaxInactiveInterval(30*60); 以秒为单位
第三种:在server.xml配置
而且tomcat 5.0中的默认配置里面有这个默认标签(过了5.0找不到默认配置),过了5.0就要自己设置
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
如果都设置了,有个优先级的问题,从高到低:java代码>在web.xml配置 >在server.xml配置,感觉优先级别跟着由近到远的范围走的一样,哈哈。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值