Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Set header values for all responses

Hi,


I would like to set some header values for all responses.
I already have found how to do that for the ResourceHandler:

    ResourceHandler resource_handler = new ResourceHandler()
    {
      @Override
      public void handle( String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response ) throws
IOException, ServletException
      {
        response.setHeader( "Pragma", "no-cache" );
        super.handle( target, baseRequest, request, response );
      }
    };



But I use a ServletContextHandler also. While searching I found that I could
use a filter to set the header values like this:

    ServletContextHandler context = new
ServletContextHandler(ServletContextHandler.SESSIONS);
    server.setHandler(context);

    EnumSet<DispatcherType> dispatches =
EnumSet.allOf(DispatcherType.class);
    FilterHolder holder = new FilterHolder(DemoFilter.class);
    holder.setName("filter");
    context.addFilter(holder,"/*",dispatches);


    public static class DemoFilter implements Filter
    {
        @Override
        public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain) throws IOException, ServletException
        {
            if (response instanceof HttpServletResponse)
            {
                ((HttpServletResponse)response).addHeader("Pragma ","
no-cache ");
            }
            chain.doFilter(request,response);
        }
    }

I don't like to set the header values on different ways. Is there a common
way to set the header values for all the Handlers?

Thanks.

Olaf.




Back to the top