如何在Tomcat中禁用ETag头文件

Tomcat似乎默认发送每个响应的ETag头。 我想停用这些在这里列出的原因。 我知道我可以在我的Apacheconfiguration中删除它们,但是有没有办法在Tomcat端禁用它们?

没有办法禁用开箱即用。 但ETags通过request.setHeader()由DefaultServlet设置。 因此,一个简单的解决方法来禁用它们是为DefaultServlet创build一个过滤标签。 例如:

 void doFilter(ServletRequest request,ServletRequest reponse){
   chain.doFilter(request,new HttpServletResponseWrapper(response){
       public void setHeader(String name,String value){
           if(!“etag”.equalsIgnoreCase(name)){
               super.setHeader(name,value);
           }
       }
   });
 }

在web.xml中:

   <滤波器>
     <滤波器名称> noetag </filter - 名称>
     <滤波器级> foo.NoEtagFilter </滤波器级>
   </filter>
   <滤波器映射>
     <滤波器名称> noetag </filter - 名称>
     <servlet的名称>默认</ servlet的名称>
     <调度> REQUEST </调度程序>
     <调度> FORWARD </调度程序>
   </filter映射>