У нас есть веб-приложение Java EE 6 с JSF 2.0, работающее на Glassfish 3.1.
Там мы столкнулись со странной ошибкой: тип Mime заголовка ответа, отправляемого Glassfish клиенту, зависит от порядка разрешенных типов Mime в заголовке запроса, отправляемом браузером. Таким образом, в некоторых случаях (в зависимости от браузера) Mime-тип ответа является неправильным, что приводит к повреждению HTML-страницы.
Но это займет довольно много времени, чтобы объяснить это. Итак, чтобы обойти эту проблему, мы теперь хотим сделать только одну вещь:
Установить тип заголовка ответа для всего веб-приложения как "text / html".
В настоящее время мы делаем это с помощью фильтра сервлетов, настроенного в файле Web.xml:
@WebFilter("/BaseFilter")
public class BaseFilter implements Filter {
public BaseFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
response.setContentType("text/html;charset=UTF-8");
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
конфигурация в web.xml:
<filter>
<filter-name>BaseFilter</filter-name>
<filter-class>com.company.web.filter.BaseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>BaseFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- these patterns should match cached resources -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
Так что мой вопрос в том, есть ли лучший способ применить конкретный заголовок ответа, особенно путем его настройки вместо реализации ServletFilter?
Есть ли вариант Glassfish, чтобы сделать это?