如何检查jsp页面中是否存在会话

时间:2013-01-28 06:43:00

标签: java jsp struts

我正在构建一个Web应用程序,我需要检查会话是否存在。我想在jsp页面中检查一下。我在一个动作类(Struts 2框架)中创建了我的会话。我不想使用script-lets。有没有办法用EL或其他任何方法做到这一点?

这是我想在不使用script-let

的情况下在jsp中实现的
<% HttpSession hs=request.getSession(false);
if(hs.isNew())
{

}
%>

这是检查会话的正确方法,还是应该在单独的动作类中执行相同操作,然后将成功映射到jsp!

3 个答案:

答案 0 :(得分:4)

您可以使用EL

中的pageContext获取并查看
<c:if test="${pageContext.session['new']}">Session is new</c:if>

答案 1 :(得分:0)

这样做应该很容易。您所要做的就是将此代码放在servlet中,但可以通过getter方法访问它。然后你可以通过EL访问它。

public boolean isNewSession() {
    HttpSession hs=request.getSession(false);
    return hs.isNew();
}

答案 2 :(得分:0)

如果您使用的是Struts 2,最好通过Interceptor管理会话。您需要在Java代码中处理此会话的更快或更快。所以,

  1. 创建一个拦截器,您可以在其中检查是否创建了会话(您可以忽略主页)。

  2. 在struts.xml文件

  3. 中使用此inceptor创建自己的包

    你已经完成了。

    无论创建了多少个jsp,*。java页面,这个拦截器也会处理新页面上的会话。

    您可以看到http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor了解如何使用自定义拦截器