Заголовок специфического ответа для веб-приложения JSF на Glassfish - PullRequest
0 голосов
/ 27 апреля 2011

У нас есть веб-приложение 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, чтобы сделать это?

1 Ответ

0 голосов
/ 27 апреля 2011

Вы можете указать его в шаблоне по умолчанию с помощью атрибута contentType <f:view>.

<f:view contentType="text/html">
...