当前位置: 代码迷 >> Java Web开发 >> 请问:关于浏览器的back有关问题
  详细解决方案

请问:关于浏览器的back有关问题

热度:918   发布时间:2016-04-16 22:24:51.0
请教:关于浏览器的back问题
刚学jsp没多久遇到一个问题想请教各位大神。

自己做了一个登陆页面login.jsp,提交到名为login的servlet数据库进行验证,正确后登陆到index.jsp。将user的bean保存在session中。
为了支持退出功能,在主页上设置了一个a标签,链接到一个名为logout的servlet,logout中通过session.removeAttribute()将user移除后,请求转发到login.jsp页面,

在logout中移除过后已经验证session中的user不存在,那么转发到login.jsp的request中session是不是也就没有了user?

此时,通过点击浏览器的back键,同样还是能够回到主页index.jsp。
因为在index.jsp中一开始就是验证session中是否有user的bean对象,没有的话会转发回去login.jsp。

既然能回到index.jsp,那么这个user的bean对象是不是浏览器保存下来登陆表单中的数据重新发送的呢?
有什么方法解决吗?谢谢!

------解决方案--------------------
引用:
在logout中移除过后已经验证session中的user不存在,那么转发到login.jsp的request中session是不是也就没有了user?

如果点击按钮或链接清除session回到登录页面的话,session里是没有user的,但是你要点浏览器的回退按钮的话,只是回到上一页面的状态,不会跳到login.jsp
------解决方案--------------------
你可以在index页面中把session中的值输出 然后你登录-退出-back-刷新看看session中的值有输出么   back回去的页面个人认为应该没有session的呀
记得貌似jsp可以写一个禁止浏览器缓存的东东嘿嘿  没做过这个实验  你可以找找看   这样当back回去的时候就应该是需要发起请求而不是直接访问浏览器缓存了吧 现在也在调试一个登录 注册的东东  chrome竟然可以回退十多个之前填写的表单  
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

在logout中移除过后已经验证session中的user不存在,那么转发到login.jsp的request中session是不是也就没有了user?

如果点击按钮或链接清除session回到登录页面的话,session里是没有user的,但是你要点浏览器的回退按钮的话,只是回到上一页面的状态,不会跳到login.jsp



那请问我怎样才能让点击back必须再登陆验证呢?
我试了一下扣扣空间,退出后回到登陆页面,也是能back回去,

我又试了淘宝,就back不回去,要继续验证用户名密码

点击回退按钮时,并不会去刷新页面,而是去读页面的缓存,想要重新刷新页面,你可以在jsp里设置
<%
    response.setHeader("Cache-Control","no-store");
    response.setDateHeader("Expires", 0);
    response.setHeader("Pragma","no-cache"); 
%>
重新读取session,要是session为空就跳转登录页面,楼主可以试一下
------解决方案--------------------
Token ,可以试试
  相关解决方案