Java EE过滤器无法获取cookie?

Zom*_*ies 8 java cookies servlets java-ee servlet-filters

为什么不能从servlet过滤器引用cookie?我认为Java EE不允许您清理cookie值:

public void doFilter(ServletRequest request, ServletResponse response, 
                             FilterChain chain) 
                             throws ServletException, IOException {
    request.
}
Run Code Online (Sandbox Code Playgroud)

ServletRequest不支持getCookies(与HttpServletRequest一样).

jjn*_*guy 20

为了获得cookie,你需要将它投射到HttpServletRequest.

HttpServletRequest httpReq = (HttpServletRequest) request;
Run Code Online (Sandbox Code Playgroud)

ServletResponse类不支持cookie 的原因是因为协议不是必需的http ServletRequest,你不能确定是否有Cookie.Cookies是一个Http的东西.


Met*_*002 5

不需要通过HTTP协议访问Servlet.因此,您的servlet不必是HttpServlet - 例如,它可能是通过FTP发送特定文档的servlet.因此,servlet的基本属性封装在ServletRequest和ServletResponse接口中,但是如果你知道你的servlet是一个HTTPServlet,你可以将它们分别转发到HttpServletRequest和HttpServletResponse,只要你的Servlet没有ClassCastException的可能性.是一个真正的HttpServlet.