关于系统退出之后,浏览器刷新,系统又重新登录的问题

时间:2022-08-31 11:42:26
最近做了一个项目,点击left.jsp上的“退出登录”后,系统把session,cache都清空了,然后返回到index.jsp,即登录页面,然后点浏览器上的“后退”按钮,提示“网页已过期”,但是再点浏览器上的“刷新”时,系统提示“重试”,“确定”之后,系统就以刚才登陆的身份又重新进入系统,我用的是IE6.0,
请问,这个是我在系统处理时没有处理好,还是是浏览器的问题?

20 个解决方案

#1


把登陆页面做成弹出窗口 这样就没有后退按钮了

#2


这样是可以,但那不是“治标不治本”嘛----有没有其他的什么方法可以解决这个问题?

#3


顶!

#4


关注!

#5


session.validate

#6


session.validate

#7


通过过滤器来解决

#8


--------------------
session.validate
--------------------
通过过滤器来解决
--------------------

都用过了,问题照旧..

#9


是不是IE缓存问题
用Httpwatch 看看 第二次 刷新 提交了什么

#10


session.removeAttribute("");先删除了,你用的是tomcat,可能是tomcat的原因。

#11


我认为是IE缓存的问题,不会是tomcat的问题
刷新后提交的userID & password 还是 最初登录时的那个,

大家遇到过这样的问题没,该怎样解决呢~~

#12


做个过滤器显示页面时先看session中用户是否存在,不存在就跳转到登录页面
你的用户信息确定是存到session中?
我感觉应该是session没清空吧  仔细检查一遍

#13


mark!

#14


session都清空了,怎么会再成为登录状态呢
登上来的时候楼主在服务器上看看是否真的是登录状态

#15


我也遇到同样的问题,最后没有办法只好将后退按钮给禁掉啦,期待其他好的解决办法,学习~~~

#16


做个过滤器显示页面时先看session中用户是否存在,不存在就跳转到登录页面
------------------------------------
有这样的过滤器,功能也即如此


你的用户信息确定是存到session中?
--------------------------------------
是的,确定存在session中,因为在点"退出系统"的时候,我还专门从session中把登录名取了出来


我感觉应该是session没清空吧
---------------------------------
在"退出系统"的处理那,我用的是session.validate(),而且退出之后,再点"后退"已经提示"网页过期",只是再点"刷新"的时候,又以原来的登录名进到系统了

#17


还是检查下你的过滤器吧

#18


登录过后,重新定向到.jsp,而不是让浏览器的URL保持在某个Serlvet或者.do这样的路径.
<%
    if (用户已经登录) {
%>
<script>
location.href = "default.jsp";
</script>
<%
    }
%>

#19


按楼上这位大哥所说的,终于解决了哈~~
---------------------------------------------
原理:
    再多定义一个空的login.jsp,登录成功之后,直接跳转到此页面,
而把原来登录成功的路径在这个login.jsp中用
<script>
      location.href = "default.jsp";
</script>
跳过去,这样,退出之后再点"后退"/"刷新",提交就会定向到此login.jsp,
而这个jsp是需要经过过滤器的,因为session已经被清空,所以就过滤掉了!!

即登录时多经过了一个起中间桥梁的jsp页面,
其实我在做"退出系统"的时候,也是经过了一个中间页面,
----------------------------------------------
好了,结贴,给分!!!!

#20


什么情况

#1


把登陆页面做成弹出窗口 这样就没有后退按钮了

#2


这样是可以,但那不是“治标不治本”嘛----有没有其他的什么方法可以解决这个问题?

#3


顶!

#4


关注!

#5


session.validate

#6


session.validate

#7


通过过滤器来解决

#8


--------------------
session.validate
--------------------
通过过滤器来解决
--------------------

都用过了,问题照旧..

#9


是不是IE缓存问题
用Httpwatch 看看 第二次 刷新 提交了什么

#10


session.removeAttribute("");先删除了,你用的是tomcat,可能是tomcat的原因。

#11


我认为是IE缓存的问题,不会是tomcat的问题
刷新后提交的userID & password 还是 最初登录时的那个,

大家遇到过这样的问题没,该怎样解决呢~~

#12


做个过滤器显示页面时先看session中用户是否存在,不存在就跳转到登录页面
你的用户信息确定是存到session中?
我感觉应该是session没清空吧  仔细检查一遍

#13


mark!

#14


session都清空了,怎么会再成为登录状态呢
登上来的时候楼主在服务器上看看是否真的是登录状态

#15


我也遇到同样的问题,最后没有办法只好将后退按钮给禁掉啦,期待其他好的解决办法,学习~~~

#16


做个过滤器显示页面时先看session中用户是否存在,不存在就跳转到登录页面
------------------------------------
有这样的过滤器,功能也即如此


你的用户信息确定是存到session中?
--------------------------------------
是的,确定存在session中,因为在点"退出系统"的时候,我还专门从session中把登录名取了出来


我感觉应该是session没清空吧
---------------------------------
在"退出系统"的处理那,我用的是session.validate(),而且退出之后,再点"后退"已经提示"网页过期",只是再点"刷新"的时候,又以原来的登录名进到系统了

#17


还是检查下你的过滤器吧

#18


登录过后,重新定向到.jsp,而不是让浏览器的URL保持在某个Serlvet或者.do这样的路径.
<%
    if (用户已经登录) {
%>
<script>
location.href = "default.jsp";
</script>
<%
    }
%>

#19


按楼上这位大哥所说的,终于解决了哈~~
---------------------------------------------
原理:
    再多定义一个空的login.jsp,登录成功之后,直接跳转到此页面,
而把原来登录成功的路径在这个login.jsp中用
<script>
      location.href = "default.jsp";
</script>
跳过去,这样,退出之后再点"后退"/"刷新",提交就会定向到此login.jsp,
而这个jsp是需要经过过滤器的,因为session已经被清空,所以就过滤掉了!!

即登录时多经过了一个起中间桥梁的jsp页面,
其实我在做"退出系统"的时候,也是经过了一个中间页面,
----------------------------------------------
好了,结贴,给分!!!!

#20


什么情况

#21