简体   繁体   English

注销后我单击浏览器中的后退按钮仍然可以访问页面,同时刷新它工作正常

[英]After logout when I click back button in browser still the page accessible while refreshing it works fine

I am having a web page in jsp and servlet 我在jspservlet有一个网页

I am login the page and it is redirected into the homepage.jsp 我登录页面,它被重定向到homepage.jsp

In login I am setting session variables as follows in my servlet login.java as follows: 在登录时,我在我的servlet login.java设置会话变量,如下所示:

HttpSession ss = rq.getSession(true);
ss.setAttribute("uid", rstusrdetail.getInt(1));
ss.setAttribute("username", rstusrdetail.getString(2));

I have a logout button as well and my logout.java as follows: 我有一个注销按钮和我的logout.java如下:

try {
            HttpSession ss = rq.getSession(false);
            if (ss.getAttribute("uid") == null || ss.getAttribute("username") == null ) {
                rs.sendRedirect("/");
            }

            rs.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
            rs.addHeader("Cache-Control", "post-check=0, pre-check=0");
            rs.setHeader("Pragma", "no-cache");
            rs.setDateHeader("Expires", 0);
            HttpSession session = rq.getSession(false);
            session.setAttribute("uid", null);
            session.setAttribute("username", null);            
            session.invalidate();
            rs.sendRedirect("/");
        } catch (Exception exp) {
            RequestDispatcher dd = rq.getRequestDispatcher("/");
            dd.forward(rq, rs);
        }

After logout when I click the back button it is redirected to the homepage.jsp 注销后,当我单击后退按钮时,它会被重定向到homepage.jsp

If I refresh then I am getting session expire message . 如果我刷新然后我得到会话过期消息。 If I directly access the page also I am getting session expire message. 如果我直接访问该页面,我也会收到会话过期消息。

How can I get on clicking back button to get session expire with out refreshing or is there any ways to disable back button in browser? 如何点击后退按钮以使会话过期而不刷新,或者有没有办法在浏览器中禁用后退按钮?

Added the following code on top of each pages which needs login: 在需要登录的每个页面上添加以下代码:

HttpServletResponse httpResponse = (HttpServletResponse)response;

httpResponse.setHeader("Cache-Control","no-cache, no-store, must-revalidate"); 
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
httpResponse.setHeader("Pragma","no-cache"); 
httpResponse.setDateHeader ("Expires", 0); 
if (session.getAttribute("uid") == null || session.getAttribute("username") == null ) {                               
                 response.sendRedirect("/invalidSession.jsp");
                 return;
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 “后退”按钮的工作方式就像我即使注销也已登录 - Back button works as if I am signed in even after logout 注销后,当用户单击“后退”按钮时,停留在同一页面上 - After logout stay on same page when user clicks on back button 注销后单击后退按钮缓存问题 - after logout click on back button cache issue 浏览器注销后退按钮 - Browser logout on back button 当我单击注销链接一次时它不会返回但是当我单击注销链接两次时它返回或返回上一页 - when I click on logout link once then it doesn't go back but when I click on logout link twice then it goes back or previous page 当我单击链接时出现403禁止错误。直接在浏览器中输入网址后,效果很好 - 403 Forbidden Error when I click on the link.Works Fine when enter the url in browser directly 在应用程序上注销 Firebase 后,后退按钮将带回主页 - Back button will bring to home page after firebase logout on app 我有一个没有反应的按钮。 在我关闭屏幕并将其重新打开后,它会响应。 其他按钮工作正常 - I have a button that doesnt respond. After I turn off screen and turn it back on it responds. Other button works fine 单击浏览器的后退按钮注销后在登录页面上重定向 - Redirect on login page after log out on browser's back button on-click 第一次按下按钮时结果没有改变,但是之后效果很好? - result does not change when i press the button first time but after that it works fine?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM