【问题标题】:checking session in servlet and jsp在 servlet 和 jsp 中检查会话
【发布时间】:2011-02-27 19:00:05
【问题描述】:

在我的网络应用程序中,我需要检查会话是否已经存在。

我想在我的 servlet 和 jsp 中检查这个。

有什么方法可以检查。

谢谢

【问题讨论】:

    标签: java jsp session servlets


    【解决方案1】:

    您可以使用HttpServletRequest#getSession(boolean create)create=false 对其进行测试。如果尚未创建,它将返回 null。

    HttpSession session = request.getSession(false);
    if (session == null) {
        // Session is not created.
    } else {
        // Session is already created.
    }
    

    如果你真的想创建会话,如果它不存在,那么只需抓住它并使用HttpSession#isNew() 测试新鲜度:

    HttpSession session = request.getSession();
    if (session.isNew()) {
        // Session is freshly created during this request.
    } else {
        // Session was already created during a previous request.
    }
    

    这就是您在 Servlet 中的做法。在 JSP 中,您只能在 JSTL 和 EL 的帮助下测试新鲜度。您可以通过PageContext#getSession() 获取会话,然后调用isNew() 就可以了。

    <c:if test="${pageContext.session.new}">
        <p>Session is freshly created during this request.</p>
    </c:if>
    

    <p>Session is ${pageContext.session.new ? 'freshly' : 'already'} created.</p>
    

    【讨论】:

      【解决方案2】:

      一种方法是在 jsp 中设置一个 session id,然后在另一个 jsp 或 servlet 中检查相同的 session id 以检查它是否处于活动状态。

      HttpSession session = req.getSession();
              session.getId();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-18
        • 2013-04-12
        • 2012-02-26
        • 2013-03-27
        • 2013-07-16
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多