1

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

这就是我想在不使用 script-let 的情况下在 jsp 中实现的

<% HttpSession hs=request.getSession(false);
if(hs.isNew())
{

}
%>

这是检查会话的正确方法还是我应该在单独的操作类中做同样的事情,然后将成功映射到 jsp!??

4

3 回答 3

5

pageContext您可以在 EL中获取和检查使用

<c:if test="${pageContext.session['new']}">Session is new</c:if>
于 2013-01-28T06:47:20.517 回答
0

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

public boolean isNewSession() {
    HttpSession hs=request.getSession(false);
    return hs.isNew();
}
于 2013-01-28T06:45:53.750 回答
0

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

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

  2. 在 struts.xml 文件中使用此 inceptor 创建您自己的包

你完成了。

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

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

于 2013-01-30T12:41:20.743 回答