Servlet-Filter-Wrapper - Probleme beim Ändern des Inhaltstyps

Ich habe einen RESTful-Webdienst, der von Javascript verwendet wird. Dieser Dienst gibt den Inhaltstyp "application / json" zurück. Für IE muss der Inhaltstyp jedoch "text / html" sein. Also habe ich einen Filter und einen Wrapper geschrieben, um den Inhaltstyp zu ändern, wenn der IE als Client erkannt wird. Meine Logik scheint keine Auswirkungen auf den Inhaltstyp zu haben. Was mache ich falsch?

Der Filter:

public class IE8Filter implements Filter {

    private Logger logger = LoggerHelper.getLogger();

    @Override
    public void destroy() {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {

         HttpServletRequest request = (HttpServletRequest) req;
         HttpServletResponse response = (HttpServletResponse) res;

         String userAgent = request.getHeader("User-Agent");
         logger.debugf("User Agent  = '%s'", userAgent);

         IE8FilterResponseWrapper wrapper = new IE8FilterResponseWrapper(response);



         chain.doFilter(req, wrapper);


         if (userAgent.contains("MSIE 8") || userAgent.contains("MSIE 7")) {

             wrapper.setContentType("text/html");
             logger.debugf("Content Type  = '%s'", wrapper.getContentType());
         }


    }

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

}

Die Verpackung:

public class IE8FilterResponseWrapper extends HttpServletResponseWrapper {


    private String contentType;

    public IE8FilterResponseWrapper(HttpServletResponse response) {
        super(response);
    }

    public void setContentType(String type) { 
        this.contentType = type;
        super.setContentType(type); 
    } 

     public String getContentType() { 
         return contentType; 
     } 
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage