禁止浏览器缓存动态资源,例如JSP资源

来源:互联网 发布:软件测评师培训 编辑:程序博客网 时间:2024/06/05 01:20

禁止浏览器缓存动态资源,例如JSP资源

package cn.itcast.web.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;//禁止浏览器缓存动态资源,例如JSP资源public class FilterDemo5 implements Filter {private FilterConfig filterConfig;public void init(FilterConfig filterConfig) throws ServletException {this.filterConfig = filterConfig;}public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {//NO将父子接口强转HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) res;//NO1取得客户端访问的资源的URI,形式/day19/login.jspString uri = request.getRequestURI();//NO2判段是否以jsp结尾,即动态资源if(uri!=null && uri.endsWith("jsp")){//NO3如果是动态资源,设置三个响应头通知浏览器不缓存response.setHeader("expires","-1");response.setHeader("cache-control","no-cache");response.setHeader("pragma","no-cache");}else if(uri!=null && uri.endsWith("html")){//NO4如果是静态资源,缓存一定的时间String strHtml = filterConfig.getInitParameter("html");long time = System.currentTimeMillis()+Integer.parseInt(strHtml)*1000;//time为毫秒值response.setDateHeader("expires",time);response.setHeader("cache-control",time/1000+"");response.setHeader("pragma",time/1000+"");}//NO5放行资源chain.doFilter(request,response);}public void destroy() {}}


0 0
原创粉丝点击