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

一、目的:

            提高系统的响应速度

二、原理:


            #减少纳税人端与电子税务局服务器的请求数量,请求大小(利用客户端缓存;合并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() {


	}




}


<!-- 配置缓存过滤器 -->
   <filter>
      <filter-name>CacheFilter</filter-name>
      <filter-class>com.dcits.portal.system.filter.CacheFilter</filter-class>
       <!-- 配置要缓存的web资源以及缓存时间,以小时为单位 -->
      <init-param>
          <param-name>css</param-name>
          <param-value>4</param-value>
      </init-param>
      <init-param>
          <param-name>jpg</param-name>
          <param-value>1</param-value>
      </init-param>
      <init-param>
          <param-name>js</param-name>
          <param-value>4</param-value>
      </init-param>
      <init-param>
          <param-name>png</param-name>
          <param-value>4</param-value>
      </init-param>
      <init-param>
          <param-name>gif</param-name>
          <param-value>4</param-value>
      </init-param>      
  </filter>
  <!-- 配置要缓存的web资源的后缀-->
  <filter-mapping>
      <filter-name>CacheFilter</filter-name>
      <url-pattern>*.jpg</url-pattern>
  </filter-mapping>
  
  <filter-mapping>
      <filter-name>CacheFilter</filter-name>
      <url-pattern>*.css</url-pattern>
  </filter-mapping>
  <filter-mapping>
      <filter-name>CacheFilter</filter-name>
      <url-pattern>*.js</url-pattern>
  </filter-mapping>
   <filter-mapping>
      <filter-name>CacheFilter</filter-name>
      <url-pattern>*.png</url-pattern>
  </filter-mapping> 
   <filter-mapping>
      <filter-name>CacheFilter</filter-name>
      <url-pattern>*.gif</url-pattern>
  </filter-mapping> 

expires用法

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值