在我的每个页面中都有一个注销选项。当用户单击此注销选项时,他们会退出session.invalidate();
。当我按下后退按钮时,即使会话无效,我也会获得包含输入标签中所有内容的上一页。如何解析这个问题。我试过了window.location.reload()
和许多其他选项,但它在这里没有用。
My website就是这个。和证书是。 test123@gmail.com
并传递Amal123
答案 0 :(得分:0)
在您希望仅在会话处于活动状态时打开的所有页面之前,您必须在页面打开之前设置一个检查会话的过滤器。
在loguot上你必须使当前会话无效。
然后你可以按回按钮但不能执行任何功能
答案 1 :(得分:0)
您可以使用会话属性...例如,当您登录时,将变量值设置为username,例如: HTML
<form name="login" action="/login.jsp" method="post" >
<input type="text" name="username" >
<input type="password" name="password" >
<input type="submit" >
JSP:
String userName=request.getParameter("username");
request.getSession().setAttribute("username",userName);
现在在每个页面上添加此代码
<% if(request.getSession().getAttribute("username")==null)
response.sendRedirect("index.jsp");%>
此外,在注销时不要忘记删除会话属性。
request.getSession().removeAttribute("username");
试试并告诉我。
答案 2 :(得分:0)
您可以在网站的每个页面中复制并粘贴此代码,以清除缓存的页面。
<%
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
if(session.getAttribute("some_token")==null)
response.sendRedirect("login/login.html");
%>
在注销时,您必须使会话无效,因此当您点击它时,它会检查some_token
中的session
属性值,如果没有,则会将您重定向到login
页面。但请记住,登录后您将在会话中设置some_token
属性。