使用struts2创建登录和注销功能,当用户登录我将为他创建会话时,通过使用拦截器,我将过滤所有用户,如果他们在会话中,如果会话未创建我会将页面重定向到登录........我的问题是,一旦我完成注销,将重定向到登录页面,但当用户点击浏览器后退按钮页面将刷新,再次登录,,,,,,任何人都可以帮助我从这个问题出来
提前致谢
答案 0 :(得分:0)
当您单击浏览器上的“< - ”按钮时,浏览器会从其缓存中呈现该页面。所以服务器不知道你是否有点击后退按钮。在您的情况下当用户单击后退按钮时,页面将从缓存加载,但这并不意味着再次为该用户创建了会话,如中所记录。当用户点击该页面上的任何授权链接时,您的服务器端代码将检查该用户是否没有有效会话,并且将返回登录页面。
解决方案但是,如果您不希望用户获得缓存页面,那么您可以为站点中的每个页面加载一个脚本,例如checkLogin.js。应该在页面的加载事件上执行此脚本。当用户注销时,在cookie中设置一个变量,指示用户已注销。当用户单击后退按钮时,将执行该脚本。如果用户已注销,该脚本将使用提到的cookie变量进行检查。如果用户已注销,则使用javascript重定向到登录页面。
答案 1 :(得分:0)
为了避免刷新我在loginsuccess没有转发后将我的页面重定向到菜单我已经逃脱了那个鬼问题 在你的struts.xml
中使用这样的<result name= success" type="redirect">Menu.jsp</result>
感谢所有