2

我是jsp的新手。我正在尝试在会话到期时重定向到登录页面。

我的代码:

String sessionUser = null;
sessionUser = session.getAttribute("UserName").toString();
if(sessionUser == "" || sessionUser == null)
{
    System.out.println("In login");
    response.sendRedirect("login.jsp");
}
else
{
    System.out.println("out login");
}

在上面的代码中,我得到了错误

sessionUser = session.getAttribute("UserName").toString();

错误

HTTP Status 500 - An exception occurred processing JSP page

我怎样才能做到这一点?

4

1 回答 1

2

从错误消息和您的描述来看,您似乎已经在 J​​SP 中编写了以下代码:

sessionUser = session.getAttribute("UserName").toString();

session如果有nullsession没有属性,上述行可能会引发错误UserName。在 JSP 中编写 scriptlet 是不好的做法。

您需要使用过滤器来做任何更接近您打算做的事情:

// Do not create session if it doesn't exist
HttpSession session = request.getSession(false);
// check if session is null
if(session != null) {
     chain.doFilter(request, response);
} else {
     // redirect to login page
     response.sendRedirect("/login.jsp");
}

您可以实现HttpSessionListener来监听会话失效事件。但是Listener在这里不是一个好的选择,因为它与请求无关。

于 2013-06-12T11:59:45.000 回答