Как отключить заголовки ETag в Tomcat
По-видимому, Tomcat отправляет заголовок ETag с каждым ответом по умолчанию. Я хотел бы отключить их по причинам, изложенным здесь. Я знаю, что могу удалить их в своей конфигурации Apache, но есть ли способ отключить их на стороне Tomcat?
1 ответ
Решение
                        
                        Ни в коем случае не отключать из коробки. Но ETag устанавливаются DefaultServlet через request.setHeader(). Таким образом, простой способ их отключения - создать фильтр для DefaultServlet, который поглощает тег. Например:
void doFilter (запрос ServletRequest, ответ ServletRequest) {
  chain.doFilter(запрос, новый HttpServletResponseWrapper(ответ) {
      public void setHeader(имя строки, значение строки) {
          if (!"etag".equalsIgnoreCase(name)) {
              super.setHeader(имя, значение);
          }
      }
  });
}И в web.xml:
  <Фильтр>
    noetag<имя-фильтра /><имя-фильтра>
    <Фильтр-класс>foo.NoEtagFilter фильтр класса>
   Фильтр>
  <Фильтр-отображение>
    noetag<имя-фильтра /><имя-фильтра>
    <Имя сервлета /><сервлет-имя> по умолчанию<Диспетчер>REQUEST диспетчер>
    <Диспетчер>ВПЕРЕД диспетчер>
   Фильтр-отображение>