在我的Web应用程序中,我无需检查会话是否已经存在。
我想在我的servlet和jsp中也进行检查。
有没有办法检查这一点。
谢谢
你可以用测试HttpServletRequest#getSession(boolean create)用create=false。如果尚未创建,它将返回null。
HttpServletRequest#getSession(boolean create)
create=false
HttpSession session = request.getSession(false); if (session == null) { // Session is not created. } else { // Session is already created. }
如果您实际上确实想创建会话(如果它不存在),那么只需抓住它并使用HttpSession#isNew()以下命令测试新鲜度:
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()它。
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>