一个客户的表单上字段超过五百,经浏览器的调试器发现主要问题是从服务器取数据花费了大量时间,下载内容大小约1.2M,下载时间在10s左右,导致样式加载完大约在17s左右(不清除浏览器缓存)。最终考虑利用gzip压缩来解决数据量大的问题。

web.xml配置过滤器:

 <filter>
<filter-name>Compress</filter-name>
<filter-class>weaver.filter.GZIPFilter</filter-class>
</filter> <filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

过滤器代码:

package weaver.filter;

import java.io.IOException;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class GZIPFilter
implements Filter
{
public void doFilter(ServletRequest paramServletRequest, ServletResponse paramServletResponse, FilterChain paramFilterChain)
throws IOException, ServletException
{
if ((paramServletRequest instanceof HttpServletRequest)) {
HttpServletRequest localHttpServletRequest = (HttpServletRequest)paramServletRequest;
HttpServletResponse localHttpServletResponse = (HttpServletResponse)paramServletResponse;
String str = localHttpServletRequest.getHeader("accept-encoding");
if ((str != null) && (str.indexOf("gzip") != -1))
{
GZIPResponseWrapper localGZIPResponseWrapper = new GZIPResponseWrapper(localHttpServletResponse); paramFilterChain.doFilter(paramServletRequest, localGZIPResponseWrapper);
localGZIPResponseWrapper.finishResponse();
return;
}
paramFilterChain.doFilter(paramServletRequest, paramServletResponse);
}
} public void init(FilterConfig paramFilterConfig)
{
} public void destroy()
{
}
}

经测试,表单速度加载提升一倍,客户表示认可。

最新文章

  1. 升级win8.1后mysql服务不能启动的问题
  2. 七、L2CAP
  3. HTML 学习笔记 CSS样式(链接)
  4. WPF 实现QQ抖动
  5. atoi、stoi、strtoi区别
  6. U盘启动盘安装Win7/9/10系统攻略
  7. 老李分享:《Linux Shell脚本攻略》 要点(二)
  8. 关于SpringMVC中text/plain的编码导致的乱码问题解决方法
  9. hdu 6045 Is Derek lying?(思维推导)
  10. vxWorks下dosFs文件系统的创建
  11. Swift基础之侧滑Cell显示操作按钮
  12. matlab 加根号
  13. 第60章 设备流交互服务 - Identity Server 4 中文文档(v1.0.0)
  14. DAPP 开发直通车-如何基于NEL 轻钱包来开发DAPP
  15. centos 7 常用工具篇
  16. VB 半透明窗体
  17. 关于Linux MongoDB的安装
  18. Mybatis关联查询之一对多和多对一XML配置详解
  19. const修饰指针时应注意的问题
  20. Python学习--14 序列化

热门文章

  1. Spring Boot入门——tomcat配置
  2. Android之动画1
  3. 关于js序列化时间的方法
  4. 使用Innobackupex快速搭建(修复)MySQL主从架构
  5. Java使用指南(1)—— Java下载和安装
  6. python3的map(),filter()和reduce()函数总结
  7. centos type.h 编译错误问题
  8. java-03方法课堂练习
  9. 微信小程序 写音乐播放器 slider组件 将value设置为0 真机测试滑块不能回到起点
  10. windbg调试实例(4)--句柄泄露