ServletRequest中的会话变量

时间:2013-02-21 18:35:19

标签: java servlets servlet-filters

我需要通过过滤器访问会话变量。我甚至不知道是否有可能。实际上,问题是来自doFilter实现的javax.Servlet.Filter方法类型是ServletRequest,而HttpServlet继承了类,doPost方法参数request是HttpServletRequest。

  1. 我可以在过滤器中访问ServletRequest中的会话吗?
  2. 我应该这样做吗?
  3. 你能推荐我什么?
  4. 谢谢!

2 个答案:

答案 0 :(得分:24)

只需将获得的ServletRequest投射到HttpServletRequest

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpSession session = request.getSession(false);
    // ...
}

另见:

答案 1 :(得分:0)

当然可以。 ServletRequest允许您访问包含属性的会话。您可以在filter,servlet,jsp,session listener中随时查看,添加,删除和修改属性。这种技术非常有用,尤其适用于同一会话中不同组件之间的通信。