电子税务局优化之——静态资源客户端缓存

一、目的:

            提高系统的响应速度

二、原理:


            #减少纳税人端与电子税务局服务器的请求数量,请求大小(利用客户端缓存;合并JSCSS文件,较少页面对静态文件的请求数
            设计点:
                      1: 图片、 CSS html JS 等静态资源文件,设置客户端的缓存为 1 年,由 apache web 服务器或自行编程实现过滤器 CacheFilter
                      2: ant 脚本打包时,为静态文件添加版本号,用于通知浏览器及时更新变化为文件


三、实现步骤:


代码:

public class CacheFilter implements Filter  {
	 
	private FilterConfig filterConfig;


	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,
			ServletException {


		HttpServletRequest request = (HttpServletRequest) req;
		HttpServletResponse response = (HttpServletResponse) resp;
		
		// 1.获取用户想访问的资源
		String uri = request.getRequestURI();
		// 2.得到用户想访问的资源的后缀名
		String ext = uri.substring(uri.lastIndexOf(".") + 1);
		// 得到资源需要缓存的时间
		String time = filterConfig.getInitParameter(ext.toLowerCase());
		if (time != null) {
			long t = Long.parseLong(time) * 3600 * 1000;
			// 设置缓存(4小时)
			response.setDateHeader("expires", System.currentTimeMillis() + t);
		}


		chain.doFilter(request, response);


	}


	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}


	public void destroy() {


	}




}



   
      CacheFilter
      com.dcits.portal.system.filter.CacheFilter
       
      
          css
          4
      
      
          jpg
          1
      
      
          js
          4
      
      
          png
          4
      
      
          gif
          4
            
  
  
  
      CacheFilter
      *.jpg
  
  
  
      CacheFilter
      *.css
  
  
      CacheFilter
      *.js
  
   
      CacheFilter
      *.png
   
   
      CacheFilter
      *.gif
   

expires用法

http://www.chinaz.com/web/2015/0417/399716.shtml

你可能感兴趣的:(工作疑难问题)