0
すべてのHEADリクエストを捕捉し、ステータス200を返すフィルタを作成する必要があります。HEADリクエストでSpringがステータス200を返すようにする
私がやっているように、すべてのHEADリクエストを捕捉し、すべてのリクエストで200を返す何かをするフィルタを作成する必要があります。これは質問です。
私は、フィルタを要求して何かを行うことができますが、リクエストは必要ありませんが、レスポンスは200になることを意味します。他に何ができますか?
public class HttpHeadFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
if (isHttpHead(httpServletRequest)) {
chain.doFilter(new ForceHeadToOkStatusWrapper (httpServletRequest), response);
} else {
chain.doFilter(request, response);
}
}
public void destroy() {
}
private boolean isHttpHead(HttpServletRequest request) {
return "HEAD".equals(request.getMethod());
}
private class ForceHeadToOkStatusWrapper extends HttpServletRequestWrapper {
public ForceGetRequestWrapper(HttpServletRequest request) {
super(request);
}
//somethig here
}
}
なぜ複雑な?なぜあなたは 'doFilter'を呼び出す必要がありますか? do 'response.setStatus(200)'を使用し、 'doFilter'を呼び出さないでください。 –
ええ、それは探していたものです。リクエストを処理せずに応答を送信できます。 :) – ottercoder