Session简介:Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的Session对象,由于Session为用户浏览器独享,所以用户访问web资源时,可以把各自的数据放在各自的Session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的Session中取出数据为用户服务。
对Session的说明:
1.Session存放在服务器的内存中
2.一个用户浏览器独享一个Session域对象
Session常见应用:
1.购物车
2.保存登录用户的信息
3.将某些数据放入到Session中,共同一用户各个页面使用
4.防止用户非法登录到某个页面,权限控制
..........
提问:如果同一个用户浏览器,向session设置了一个属性,和另外一个Session名字相同会发生什么?
答:会替换对象值。
Session小结:
1.Session存放在服务器内存中
2.一个用户浏览器独享一个Session域对象
3.Session生命周期默认为30分钟,可以通过web.xml修改
4.Session可以存放多个属性
5.Session可以存放对象和集合
6.如果名字重复,后者替换前者的属性,类似于修改属性
重点: Session生命周期
前面已经说到过Session默认生命周期为30分钟,这是由Tomcat的conf根目录下web.xml文件控制,
修改默认Session生命周期有两种方式:
1.在Tomcat安装目录下conf/web.xml文件修改,影响所有的web应用
2.在web应用下conf/web.xml文件添加如下代码:
- <span style="font-size:14px"><session-config>
- <session-timeout>30</session-timeout>
- </session-config></span>
补充说明:如果两个web.xml文件session时间冲突,以该web应用时间为准
关于时间设置:
Session周期是发呆时间,如果我们设置session时间为10秒,是指如果10秒内没有访问过session,session中所有属性失效(不能单独设置某个属性),如果在十秒内再次访问session,则重新计时。
设置时间和cookie不同之处在于cookie指的是累计时间,不管该时间内有无用户访问cookie,时间到则失效
session失效的几种情况:
1.重启tomcat/关闭tomcat
2.重启web应用/关闭web应用
3.关机
4.调用invalidate()方法销毁session
补充:单独设置session某一个属性失效方法:session.removeAttribute(java.lang.String name);