Как отключить заголовки 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 диспетчер> <Диспетчер>ВПЕРЕД диспетчер> Фильтр-отображение>