使用Jboss6.1设置Http头

nid*_*hin 5 cache-control jboss6.x

有没有办法使用Jboss6.1的配置文件设置HttpHeader.这些配置适用于整个项目.

我想使用其配置文件在Jboss6.1服务器中设置波纹管属性.

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

我尝试使用domain.xml,但没有任何作用.

mal*_*una 7

不要让自己复杂化.如果您希望每个响应都有此标头配置,请创建自己的过滤器来执行此操作.这样你就不会加入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 {
          }
}
Run Code Online (Sandbox Code Playgroud)

那么你只需要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>
Run Code Online (Sandbox Code Playgroud)

此映射对所有请求都有效,但您可以对其进行调整.

希望能帮助到你!