Я пытаюсь реализовать фильтр сервлетов Java, который изменяет ответы html.
doFilter
метод моего класса фильтра выглядит так:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (filterConfig == null) {
return;
}
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String contentType = res.getContentType();
if (contentType != null && contentType.contains("text/html")) {
chain.doFilter(req, res);
// do some modification
}
}
Для каждого ответа I 'Я пытаюсь понять, если это HTML. Если это так, я делаю некоторые изменения, но у меня возникает следующая проблема: При запросе файла jsf res.getContentType()
возвращает null
(res.getHeader("Content-Type")
также возвращает null
). В инструментах разработчика моего браузера я вижу, что заголовок 'Content-Type' имеет значение 'text / html;charset = UTF-8 ', но почему res.getContentType()
возвращает null
в этом случае?
Есть ли другой способ обнаружить ответ HTML в фильтре?
РЕДАКТИРОВАТЬ Я добавилchain.doFilter(req, res)
вызов в условии if.