【问题标题】:Ending session when Logging out in JSP在 JSP 中注销时结束会话
【发布时间】:2015-08-31 03:35:40
【问题描述】:

以下是我的导航栏,用于包含页面的注销按钮。

我想在用户单击注销按钮时结束会话。

我通过谷歌搜索找到了示例代码并添加了我的代码,但以下代码显示错误。(检查屏幕截图中的错误)

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

  <ul class="nav navbar-nav navbar-right">
      <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hi, <%=session.getValue("Username") %><b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li align="center" class="well">

            <a href="index.jsp" class="btn btn-sm btn-default"><span class="glyphicon glyphicon-log-out"></span> Logout</a>
            <%
            session.invalidate();
            response.sendRedirect("index.jsp");
            %>
        </li>
       </ul>
    </li>
  </ul>
</div><!-- /.navbar-collapse -->

帮我更正这段代码..

【问题讨论】:

    标签: jsp session


    【解决方案1】:

    默认情况下,如果会话不可用,容器会为您创建会话。用于 JSP 以避免创建新会话:

    <%@ page session="false" %>
    

    在访问session 变量之前,请检查session(如果不可用)。如果没有会话,如果我们调用 session object 方法,它将引发 IlleagalStateExcetion

       <% if (session!=null) {%>
         <%=session.getValue("Username") %><b class="caret"></b></a>
       <% } %>
    

    每次页面加载时会话都会失效,因为没有点击Logout。因此,通过单击Logout 将单独的页面添加到invalidate the session

    这里我将它用作logout.jsp,它包含会话失效代码:

     <!-- For not creating new session -->
     <%@ page session="false" %>
    
     <body>
         <%
         // for checking the session is available or not, if not available it will throw exception, "Session already invalidated."
          if (sesssion!=null) {
            session.invalidate();
            response.sendRedirect("index.jsp");
          }
         %>
     </body>
    

    最后更改Logout 链接,如下所示:

    <a href="logout.jsp" class="btn btn-sm btn-default"><span class="glyphicon glyphicon-log-out"></span> Logout</a>
    

    试一试:)

    【讨论】:

      【解决方案2】:

      问题是您的会话在您单击注销链接之前已经被终止。同样在 jsp 页面中,会话是自动创建的。从session 访问任何属性时,您需要注意这一点。请按照Srinu 建议的步骤操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-10
        • 2018-08-17
        • 2015-03-30
        • 2017-11-15
        • 2018-06-12
        • 2020-11-20
        • 2011-05-23
        • 2014-11-12
        相关资源
        最近更新 更多