jsp中session 如何注销?

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:57:18
点击文字连接注销后,返回到首页
注销代码:session.removeAttribute("id_s");
out.println("<script>alert('您已成功注销登录!');this.location.href='login1.jsp';</script>");
可是这时在地址栏中输入其中的一个框架地址(输入整个网页地址无效),就可以打开相应的框架内容,这时能进行相应的功能操作。如果打开之后再刷新一下,就会失效。。。
我想问为什么注销后还能在地址栏中打开,打开之后刷新一下为什么就失效了??
难道还要写一个文件,用来在加载时刷新一下,然后包含到所有的页面中??

帮我解决下,100分。。。
我也用了session.invalidate();甚至用了session.setAttribute("id_s",null); 可是还会出现那种情况,
我用的是上下框架,注销后只能在地址栏中输入其中的框架地址而不是整个网页地址(输入整个无效) 就能打开,这很奇怪啊,难道session对于框架会不会有什么特别之处啊??
我是用tomcat做的本地网站,注销之后再登陆其它框架时,有点像是缓存作用,如果是缓存的话,可以在注销时自动清除缓存吗??或者另一种方法,就是在重新加载页面前强制刷新,这两种方法可以实现吗??如果可以话,给个大概思路。。。。

是因为浏览器缓存了,用户注销前得那个页面。当然,你刷新,浏览器会重新请求服务器,如果用户已经注销了,那么刚才那个session是无效的,所以用户就不能访问的。session.invalidate()和你用的方法是正确的,这个你不用怀疑。

个人认为,可以用个js在页面加载后进行刷新一次。或者用response.setHeader("","")这个方法,来设置页面过期和不准缓存等信息,原来想过,我没去实践过,你可以试试。

<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
把这几行加到你页面试试,清除缓存的。

就是缓存在搞鬼,打开的是本地的文件,刷新后才请求服务器。
你可以在请求后面带一个随机数,这样每次请求都不一样,就不会找缓存里的文件了
不明白的话找我

session.removeAttribute("username"); //注销session中的username对象
session.removeAttribute("id"); //注销session中的id对象
session.invalidate(); //关闭session

session.invalidate() 就是这个方法,绝对能注销,因为你用的是小型服务器是缓存的问题!