2015-10-16 9 views
4

Есть ли способ установить HttpHeader с помощью конфигурационного файла Jboss6.1. Эта конфигурация применима ко всему проекту.Установить заголовок Http с помощью Jboss6.1

Я хочу установить следующие свойства в сервере Jboss6.1, используя его конфигурационный файл.

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 
response.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
response.setDateHeader("Expires", 0); 

Я пробовал работать с domain.xml, но ничего не работает.

ответ

6

Не усложняйте себя. Если вы хотите, чтобы каждый ответ имел эту конфигурацию заголовка, создайте свой собственный фильтр, чтобы сделать это. Таким образом, вы не будете связаны с JBoss и получите то, что хотите.

Здесь у вас есть образец фильтра:

package your.package; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServletResponse; 

public class NoCacheFilter implements Filter { 

      @Override 
      public void destroy() { 
      } 

      @Override 
      public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { 
        HttpServletResponse hsr = (HttpServletResponse) res; 
        hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 
        hsr.setHeader("Pragma", "no-cache"); 
        hsr.setDateHeader("Expires", 0); 
        chain.doFilter(req, res); 
      } 

      @Override 
      public void init(FilterConfig arg0) throws ServletException { 
      } 
} 

, то вам нужно только настроить его в дополнительной web.xml или менее таким образом:

<filter> 
    <filter-name>noCacheFilter</filter-name> 
    <filter-class>your.package.NoCacheFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>noCacheFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Это отображение является действительным для всех запроса, но вы можете приспособить его.

Надеюсь, это поможет!

+0

В проекте нет java-кода. Это в angularjs, а jboss используется как Webserver – nidhin

+0

Ну, вы отметили этот вопрос как Java ... Но в любом случае я не вижу проблемы. Если вы используете контейнер J2EE, вы можете добавить фильтр, и он решает вашу проблему. И что я думаю, что это более важно, таким образом, вы не связываетесь с JBoss, это совместимое решение с любым контейнером J2EE и/или Servlet. – malaguna

+0

@ Нидхин, вы попробовали мой ответ? Он действителен для вашей проблемы, и он будет отвечать вашим потребностям, хотя у вас нет Java-кода. – malaguna