Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EE筛选器无法获取Cookie?_Java_Servlets_Cookies_Jakarta Ee_Servlet Filters - Fatal编程技术网

Java EE筛选器无法获取Cookie?

Java EE筛选器无法获取Cookie?,java,servlets,cookies,jakarta-ee,servlet-filters,Java,Servlets,Cookies,Jakarta Ee,Servlet Filters,为什么不能从servlet过滤器引用cookie?我似乎无法理解Java EE不允许您清理cookie值: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { req

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

public void doFilter(ServletRequest request, ServletResponse response, 
                             FilterChain chain) 
                             throws ServletException, IOException {
    request.
}

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

您确实知道可以将其强制转换为HttpServletRequest,对吗?:-)

为了获得cookies,您需要将其强制转换为
HttpServletRequest

HttpServletRequest httpReq = (HttpServletRequest) request;

ServletResponse
类不支持cookies的原因是,在
ServletRequest
中,协议不一定是http,您无法确定是否存在cookies。Cookie是Http的东西。

不需要通过Http协议访问servlet。因此,您的servlet不必是HttpServlet——例如,它可以是通过FTP发送特定文档的servlet。因此,servlet的基本属性封装在ServletRequest和ServletResponse接口中,但是如果您知道您的servlet是一个HTTPServlet,那么您可以将它们分别向下转换为HttpServletRequest和HttpServletResponse,只要您的servlet是一个真正的HTTPServlet,就不可能发生ClassCastException