站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题关于session关闭的问题,前辈进~~~~~~~~~~

关于session关闭的问题,前辈进~~~~~~~~~~

摘要: 关于session关闭的问题,前辈进~~~~~~~~~~


登录站点后利用后退或直接链接到其他站点,然后点后退或直接输原来的站点的链接,session还会存在,我看了下,CSDN也是这样的,这种情况没办法解决吗?
现在我想达到的目的就是用户登录进入到站点一后,在地址栏里输入站点二的地址并跳转过去,再点后退,回到站点一不会直接进去,会提示用户没登录的情况,即刚进入时的session已终止,有什么办法可以达到这中情况吗?
同一个IE,跳出站点就关闭session,有办法吗?


例: 已登录了CSDN,在地址栏里输www.baidu.com并跳转到百度,然后点后退,或把刚才在登录的URL输进地址栏,还是会回到登录的状态,即session没有被关闭。


晕,这个要求有点....bt
那你判断http referer吧,如果从站外进来,直接清除session好了


呵呵,现在只设了个超时,一定时间没请求就会终止session,但跳转到其他站点后,在超时时间内回来,还是可以继续处理问题,请问:http referer怎么判断是从站点外进来的啊,不懂-_-~



referer是每个请求里面的一项数据,通过request可以读取出来,如果referer不是本站点,则使session失效!





你点后退按钮的时候是从你的缓存里读取的页面内容,跟本就没有请求服务器!内容肯定是原来的了,而且不可能改变!


request.getHeader("referer");也只是通过超连接请求或是提交请求才能得到上一个请求的URL



采用c/s结构吧,用b/s结构完美的达到这种效果太困难了。
变通的办法可以这样:
1、不允许缓存页面;
2、在页面中利用unload=""调用一个注销的页面;
3、在服务器端每次访问察看ip地址是否改变,如果改变则重新登陆。


狠一点,在你站内的每一个页面都用request.setAttribute()把登陆信息传下去,这样你一跳出你的站点再回去的话登陆信息就不存在了


现在是,后退可以不要求终止session,但直接手动输入其他网站的地址跳转过去后,再手动输入原来网站的地址,要求之前的用户登录的session被终止,返回给用户的应该是用户没登录的错误页面,怎么判断? 顺便请教一下,request.getHeader("referer");是怎么用法,你们平时用的多吗? 马上结帖散分,谢谢~~~~~~~


写个过滤器,解析request中的URL地址,若不符合要求,即...


过滤器怎么写,里面是用到request.getHeader("referer");吗??


对,是从request里面取referer,但是,要留个活口,即如果请求的是首页或者登录页面之类的资源,其referer可以忽略


能不能写2句,举个例子,...不好意思,从没用过request.getHeader("referer");,格式都不知道.....


其实不是项目要求的,就是自己发现了这个问题,比较有兴趣~~~~~~~~


帮忙顶


看看session机制就知道了,除非你能控制客户端。或者所有url(加标识)


mark


String url=request.getHeader("referer");
url取到的值是此次请求的前一次请求的url地址!但是此次请求必须通过超连接请求或是提交请求才能得到上一个请求的URL,直接在地址栏输入访问的取到的是null


大慨知道了,谢谢~~~~~~~
我自己下去再琢磨琢磨,15点散分,:)


帮顶一下~


不要机械的使用技术,试试这个方法:
1.每一页都记录当前页面的URL,写进session["abc"]
2.如果session["abc"]为空说明用户首次访问网页,回到第一步。
3.如果session["abc"]不为空则判断session["abc"]与当前URL是否相同,如果相同说明是通过后退访问的。


你过2天再回来,我不信session还存在???


兄弟啊,你的问题真是我要问的问题。最近真被这个问题愁呢。
谁先解决了上来给个说法啊


散分不重要,重要的是如果有解决方案的话拿出来分享一下,哈哈


不允许缓存页面, 就后退不会来了


同意写个过滤器,然后解析url,看看是不是已经访问过的url


↑返回目录
前一篇: 各位XDJM救命啊!!!
后一篇: 用java程序查询1百万的数据库,如何加快分页跳转的速度?