Tomcatは、デフォルトで各応答とともにETagヘッダーを送信するようです。概説した理由でこれらを無効にしたい ここ 。 Apache構成でそれらを取り除くことができることは知っていますが、Tomcat側でそれらを無効にする方法はありますか?
箱から出して無効にする方法はありません。ただし、ETagは、request.setHeader()を介してDefaultServletによって設定されます。したがって、それらを無効にする簡単な回避策は、タグを飲み込むDefaultServletのフィルターを作成することです。例えば:
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で:
<filter> <filter-name> noetag </ filter-name> <filter-class> foo.NoEtagFilter </ filter-class> </filter> <filter-mapping> <filter-name> noetag </ filter-name> <servlet-name> default </ servlet-name> <dispatcher> REQUEST </ dispatcher> <dispatcher> FORWARD </ dispatcher> </ filter-mapping>