有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ServletRequest中的java会话变量

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

  1. 我可以在筛选器中访问ServletRequest中的会话吗
  2. 我应该那样做吗
  3. 你能给我推荐什么吗

谢谢


共 (2) 个答案

  1. # 1 楼答案

    只需将获得的^{}强制转换为^{}

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

    另请参见:

  2. # 2 楼答案

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