这是没有道理的。忘记了
request.getSession(boolean)。只需进行会话
request.getSession(),再也不用担心无效性/有效性了。
如果要通过会话属性传递数据,则只需执行以下操作
test1:
request.getSession().setAttribute("test", "foo");和在
test2(这是在被请求的过程 相同 会话 之后
test1):
String test = (String) request.getSession().getAttribute("test"); // Returns "foo".编辑: 至于使用会话来检查已登录
User,只需在登录代码中做类似的事情:
User user = userDAO.find(username, password);if (user != null) { request.getSession().setAttribute("user", user);} else { // Show error?}然后在
Filter映射到
url-pattern代表限制区域的上的,只需检查是否
User存在:
if (((HttpServletRequest) request).getSession().getAttribute("user") != null) { chain.doFilter(request, response); // Just continue.} else { ((HttpServletResponse) response).sendRedirect("login"); // Not logged-in, redirect to login page.}当您注销时,只需
User从会话中删除:
request.getSession().removeAttribute("user");// Or, more drastically:request.getSession().invalidate();另外,您还可以看看的声明安全管理集装箱在一些简单的条目的帮助
web.xml和
server.xml。这样,您无需自己麻烦登录/过滤逻辑。



