ServletRequest 中的会话变量

2022-09-03 12:27:46

我需要通过过滤器访问会话变量。我甚至不知道这是否可能。在实践中,问题在于实现中的方法类型是,而HttpServlet继承了类,doPost方法参数是HttpServletRequest。doFilterjavax.Servlet.FilterServletRequestrequest

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

谢谢!


答案 1

只需将获得的 ServletRequest 转换为 HttpServletRequest 即可

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

另请参阅:


答案 2

当然可以。 允许您访问包含属性的会话。您可以随时在过滤器,servlet,jsp,会话侦听器中查看,添加,删除和修改属性。此技术非常有用,特别是对于同一会话中不同组件之间的通信。ServletRequest


推荐