控制html、css、js等静态资源的缓存时间的过滤器

原创 2015年07月07日 23:30:08


2014年9月8日 16:13:13


静态资源(Html、Css、Js等资源):静态资源的缓存可以减轻服务器的负担,浏览器一般会默认缓存,为防止用户禁用缓存,在程序代码中进行对静态资源缓存的控制(包括缓存时间的空控制)。



//控制html、css、js等静态资源的缓存时间的过滤器   

package cn.itcast.filter.example;
 
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;
 
//控制html、css、js等静态资源的缓存时间的过滤器
 
/*
过滤器相关配置:
 
<filter>
<filter-name>NeedCacheFilter</filter-name>
<filter-class>cn.itcast.filter.example.NeedCacheFilter</filter-class>
<init-param>
<param-name>html</param-name>
<param-value>1</param-value><!-- 单位是小时 -->
</init-param>
<init-param>
<param-name>css</param-name>
<param-value>2</param-value><!-- 单位是小时 -->
</init-param>
<init-param>
<param-name>js</param-name>
<param-value>3</param-value><!-- 单位是小时 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
*/
public class NeedCacheFilter implements Filter {
private FilterConfig filterConfig;
public void destroy() {
 
}
 
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("控制缓存时间的过滤器过滤了");
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)resp;
//获取html、css、js各自的缓存时间,如果没有,给个默认值是1小时
int time = 1;
String uri = request.getRequestURI();// /day19/1.html
String extendName = uri.substring(uri.lastIndexOf(".")+1);
if("html".equals(extendName)){
//访问的html资源
String value = filterConfig.getInitParameter("html");
if(value!=null){
time = Integer.parseInt(value);
}
}
if("css".equals(extendName)){
//访问的css资源
String value = filterConfig.getInitParameter("css");
if(value!=null){
time = Integer.parseInt(value);
}
}
if("js".equals(extendName)){
//访问的js资源
String value = filterConfig.getInitParameter("js");
if(value!=null){
time = Integer.parseInt(value);
}
}
response.setDateHeader("Expires", System.currentTimeMillis()+time*60*60*1000);
chain.doFilter(request, response);
}
 
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
 
}
2014年9月8日 16:13:13


静态资源(Html、Css、Js等资源):静态资源的缓存可以减轻服务器的负担,浏览器一般会默认缓存,为防止用户禁用缓存,在程序代码中进行对静态资源缓存的控制(包括缓存时间的空控制)。



//控制html、css、js等静态资源的缓存时间的过滤器   

package cn.itcast.filter.example;
 
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;
 
//控制html、css、js等静态资源的缓存时间的过滤器
 
/*
过滤器相关配置:
 
<filter>
<filter-name>NeedCacheFilter</filter-name>
<filter-class>cn.itcast.filter.example.NeedCacheFilter</filter-class>
<init-param>
<param-name>html</param-name>
<param-value>1</param-value><!-- 单位是小时 -->
</init-param>
<init-param>
<param-name>css</param-name>
<param-value>2</param-value><!-- 单位是小时 -->
</init-param>
<init-param>
<param-name>js</param-name>
<param-value>3</param-value><!-- 单位是小时 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NeedCacheFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
*/
public class NeedCacheFilter implements Filter {
private FilterConfig filterConfig;
public void destroy() {
 
}
 
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("控制缓存时间的过滤器过滤了");
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)resp;
//获取html、css、js各自的缓存时间,如果没有,给个默认值是1小时
int time = 1;
String uri = request.getRequestURI();// /day19/1.html
String extendName = uri.substring(uri.lastIndexOf(".")+1);
if("html".equals(extendName)){
//访问的html资源
String value = filterConfig.getInitParameter("html");
if(value!=null){
time = Integer.parseInt(value);
}
}
if("css".equals(extendName)){
//访问的css资源
String value = filterConfig.getInitParameter("css");
if(value!=null){
time = Integer.parseInt(value);
}
}
if("js".equals(extendName)){
//访问的js资源
String value = filterConfig.getInitParameter("js");
if(value!=null){
time = Integer.parseInt(value);
}
}
response.setDateHeader("Expires", System.currentTimeMillis()+time*60*60*1000);
chain.doFilter(request, response);
}
 
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
 
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

通过过滤器控制静态资源的缓存时间

1。StaticResourcesNeedCacheFilter.java文件:package com.itheima.example;import java.io.IOException;impor...

4Filter应用3控制浏览器缓存页面中的静态资源的过滤器

应用场景: 有些动态页面中引用了一些图片或css文件以修饰页面效果,这些图片和css文件经常是不变化的,所以为减轻服务器的压力,可以使用filter控制浏览器缓存这些文件,以提升服务器的性能。  ...

给webapp路径里的静态资源加时间戳[JS和CSS],Java自定义标签和Servlet的配置

前几日做了一个很小的功能,一般工程启动后,为了能防止浏览器不缓存那些静态资源,比如js和css文件,一般的思路是在引用那些文件的路径后面增加一个时间戳,例如: 本来是下面这样的, 但,这样的话如...

Spring MVC中访问静态资源(如html, js, css等)

最近在学习Spring MVC时遇到一个问题,访问jsp页面正常,访问html页面就会报错。折腾了很久终于搞明白了。先看看Spring MVC处理HTTP请求的流程: Spring MVC的Di...

HTML5页面静态资源缓存利器Application Cache

今天写了一个微信推广页,中间为了优化页面加载效果,一堆优化方法中其中之一就用到了Application Cache来对页面部分资源进行静态资源缓存。懒癌复发,今天就不介绍什么是Application ...

domino平台缓存静态html资源

又有好久没来更新了,距离上次更新一个多月了,主要是这段时间没做什么有意义的事情(有意义的事情就是好好活着!?),赶在国庆前发布一个domino缓存静态资源的帖子:       现在web app应...

控制动态资源(Servlet JSP)不要缓存的过滤器

2014年9月8日 16:03:33 动态资源(Jsp、Servlet等资源):为保证动态信息的时效性,动态资源不应该进行缓存,而应该时刻进行更新! ...

通过过滤器实现控制动态资源不要缓存

1。NoCacheFilter.java文件:package com.itheima.example;import java.io.IOException;import javax.servlet.F...

springmvc出现页面引用的js,css等静态资源访问出现404问题

现象:springmvc框架搭建完,jsp页面引用的js,css等浏览器抛出404错误。 可能原因:在springmvc前端控制器(web.xml文件)里配置了DispatcherServlet拦截所...

解决使用SpringMVC时,css、js、image等静态资源无法加载的问题

问题:在使用SpringMVC框架时,配置web.xml文件时,springDispatcherServlet的配置如下 springDispatcherServlet ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)