session请求的几个情形设置

[复制链接]
查看11 | 回复2 | 2011-3-29 12:31:57 | 显示全部楼层 |阅读模式
用户在同一个IP访问的时候,当浏览器关闭后,再次请求时,任然可以取得之前session的内容,但是超过一定时间,比如1分钟,则session重新建立。
请问如何设置session的ID以及怎么在时间过期时销毁session。
个人觉得session的ID可以根据用户的IP等属性来设置,但是不知道如何在过期的时候销毁session。
请大虾帮忙
麻烦看清楚问题再回答:
我现在的效果是 客户端关闭浏览器过后,再重新打开我的页面,还能够读取之前的session,但是如果客户端过了一定的时间过后再打开我的页面,那么就无法读取之前的session了。
请问 如果设置?
看不懂的,别在那瞎扯!谢谢配合!

回复

使用道具 举报

千问 | 2011-3-29 12:31:57 | 显示全部楼层
SESSION一般不是你说的这种工作方式,你打开一个浏览器,再打开一个,请求同一个网址,然后其中一个登陆,另外一个绝对不会也登陆。SESSION和浏览器本身这个程序就是挂钩的,一般不通过IP和端口去绑定(如果是端口和IP的话,浏览器关闭了SESSION也不一定会失效,显然有安全问题,这个是因为TCP协议的一些问题,很容易被利用到)。当浏览器和服务器联系的时候,服务器会发一个SESSIONID给浏览器,然后浏览器记录这个SESSIONID,每次访问的时候将ID附带过去。假如你想浏览器关闭后重新打开仍然可以获取,有两个方面问题需要解决,1浏览器如何找到之前的SESSIONID,这个需要一个文件去记录,比如COOKIE,2服务器不能立即销毁SESSI
回复

使用道具 举报

千问 | 2011-3-29 12:31:57 | 显示全部楼层
session 的id是由服务端分配的。当你向服务端发起请求时,如果头部中有带jsessionid,则服务端会根据这个值去session池中找是否有该id,没有 则重新分配。默认的销毁时间在你的web容器中是有配置的。比如tomcat是1800。如果你想手工销毁,可以通过session.invalidate(),手工失效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行