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

  • 是否可以在FilterRequest中的ServletRequest中访问 session ?
  • 我应该这样做吗?
  • 您能推荐我什么?

  • 谢谢!

    最佳答案

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

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

    也可以看看:
  • Our servlet-filters wiki page
  • 10-07 19:42
    查看更多