Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 终止会话并在单击注销按钮时重定向到登录页面_Java_Javascript_Jsp_Session - Fatal编程技术网

Java 终止会话并在单击注销按钮时重定向到登录页面

Java 终止会话并在单击注销按钮时重定向到登录页面,java,javascript,jsp,session,Java,Javascript,Jsp,Session,我在JSP中有以下代码: <% if(session.getAttribute("Username") == null || session.getAttribute("Username") == "_INVALID_") { response.sendRedirect("LoginPage.html"); } %> <form> <input type="button" value="Change Account

我在JSP中有以下代码:

<%
    if(session.getAttribute("Username") == null || session.getAttribute("Username") == "_INVALID_")
    {
        response.sendRedirect("LoginPage.html");
    }
%>

<form>
    <input type="button" value="Change Account Details" onClick="location.href='ChangeDetails.jsp'">
    <br></br>
    <input type="button" value="Add Customers" onClick="location.href='AddCustomers.jsp'">
    <br></br>
    <input type="button" value="Manage Flights" onClick="location.href='ManageFlights.jsp'">
    <br></br>
    <input type="button" value="Book Flights" onClick="location.href='BookFlights.jsp'">
    <br></br>
    <input type="button" value="Log Out" onClick="location.href='LoginPage.html'">
</form>










当用户单击注销按钮时,我想将其重定向到登录页面并终止当前会话。我成功地完成了重定向部分,但我不知道如何终止会话。如何才能做到这一点呢?

您应该看看HttpSession的方法。可以通过HttpServletRequest方法检索会话


您还应该查看Expires、Cache Control、Pragma http头,如:。

为了终止当前会话,您基本上需要调用并重定向到登录或主页。此代码应该放在的
doPost()
方法中,该方法由POST请求调用

例如



与具体问题无关,您的用户名检查代码不在正确的位置。您不应该在每个JSP页面上复制粘贴相同的代码。您应该在一个区域的单个位置执行此工作。JSP文件中的Java代码应该尽可能多

此外,当最终用户使用浏览器的“后退”按钮返回历史时,还有另一个潜在问题。默认情况下,浏览器将缓存所有响应,因此“后退”按钮可能会显示浏览器缓存中的页面,而不是直接从服务器请求全新的响应。要解决此问题,请参阅此相关问题


最后但并非最不重要的一点是,这里有一些非常奇怪的HTML。单击带有
onClick的按钮来导航?如何用户和SEO不友好。改用普通的
链接。对于按钮的外观,加入一些CSS。

试试这个来终止会话

HttpSession newsession = request.getSession(false);
    if (newsession != null) 
    {
         newsession.invalidate();

    }

   response.sendRedirect("../index.jsp");

是否尝试使用会话。无效()
?此外,在这个主题上使用谷歌搜索将为您提供许多关于这个问题的好解决方案。因为仅仅使会话无效是不够的。您还需要设置一些
缓存头
(我真的不记得确切是哪些),以避免用户在注销后使用“后退”按钮返回到最后一页。可能的重复
HttpSession newsession = request.getSession(false);
    if (newsession != null) 
    {
         newsession.invalidate();

    }

   response.sendRedirect("../index.jsp");