请问httpservletresponsewrapper有什么用
我在下面的一段程序中看到的:
public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain )
throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
if (compressionThreshold == 0) {
chain.doFilter(request, response);
return;
}
boolean supportCompression = false;
if (request instanceof HttpServletRequest) {
// Are we allowed to compress ?
String s = request.getParameter("gzip");
if ("false".equals(s)) {
chain.doFilter(request, response);
return;
}
Enumeration e =
((HttpServletRequest)request).getHeaders("Accept-Encoding");
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
if (name.indexOf("gzip") != -1) {
//log.trace("supports compression");
supportCompression = true;
} else {
//log.trace("no support for compresion");
}
}
}
if (!supportCompression) {
//log.trace("doFilter gets called wo compression");
chain.doFilter(request, response);
return;
} else {
if (response instanceof HttpServletResponse) {
CompressionServletResponseWrapper wrappedResponse =
new CompressionServletResponseWrapper((HttpServletResponse)response);
//minhnn
//wrappedResponse.setDebugLevel(debug);
wrappedResponse.setCompressionThreshold(compressionThreshold);
//log.trace("doFilter gets called with compression");
try {
chain.doFilter(request, wrappedResponse);
} finally {
wrappedResponse.finishResponse();
}
return;
}
}
}
其中CompressionServletResponseWrapper 继承了httpservletresponsewrapper,这么做有什么意义呢?