全站压缩

<Filter>全站GZIP压缩过滤的原理及其实现

☆樱花仙子☆ 提交于 2019-12-10 01:25:26
在客户端访问数据时候,为了尽可能高效率的传输,在传输的JSP网页的时候,可以采用GZIP压缩的方式,使得网页经过压缩后再去传输。在此,使用过滤器,对发送到的客户端的显示,都先进行一次压缩。然后再显示,具体流程可以参考下图: 也就是说,当每获得一次请求是的时候,通过对getOutputStream的重写,不让其输出到客户端,而是 将其写入到内存字节数组中去。 然后,当需要输出的时候, 也就是过滤器的第二次执行从chain.doFilter(request,response)开始 再次充内存中取出缓存的数据,进行压缩,并用response进行输出。 package cn.Filter; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.zip.GZIPOutputStream; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException;