在我的网络应用程序中,我需要检查会话是否已存在。
我想在我的servlet和jsp中检查这个。
有没有办法检查这个。
由于
答案 0 :(得分:13)
您可以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>
答案 1 :(得分:2)
一种方法是在jsp中设置会话ID,然后在另一个jsp或servlet中检查相同的会话ID,以检查它是否存活。
HttpSession session = req.getSession();
session.getId();