Filter-过虑器应用之2-设置页面缓存
2014-01-11 10:10
190 查看
设置某些页面缓存或是不缓存
要想让所有浏览器不缓存页面:
<% response.setHeader("expires","-1"); response.setHeader("pragma","no-cache"); response.setHeader("cache-control","no-cache"); %>
分析:通过一个过虑器,对所有*.jsp过虑,设置三个头,全部不缓存。
第一步:实现过虑器接口
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //转换 HttpServletResponse resp = (HttpServletResponse) response; resp.setHeader("expires","-1"); resp.setHeader("pragma","no-cache"); resp.setHeader("cache-control","no-cache"); //都放行 chain.doFilter(request, response); }
第二步:配置过虑器,url-pattern=*.jsp
<!-- 配置控制缓存的filter --> <filter> <filter-name>cache</filter-name> <filter-class>cn.itcast.filter.CacheFilter</filter-class> </filter> <filter-mapping> <filter-name>cache</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
第三步:设置对某些页面缓存N天
HttpServletResponse resp = (HttpServletResponse) response; //计算2天以后的毫秒值 //日历 Calendar cl = Calendar.getInstance(); //日历上加2天 cl.add(Calendar.DATE, 2); long time = cl.getTimeInMillis(); resp.setDateHeader("expires", time); //resp.setHeader("expires",""+time); // resp.setHeader("pragma","no-cache"); // resp.setHeader("cache-control","no-cache"); //都放行 chain.doFilter(request,resp);
生成验证码的:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置响应类型 resp.setContentType("image/jpeg"); int width=60; int height=30; BufferedImage img = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); g.setColor(Color.WHITE); g.fillRect(0,0, width, height); g.setFont(new Font("宋体", Font.BOLD,18)); Random r = new Random(); for(int i=0;i<4;i++){ Color c = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)); int code = r.nextInt(10); g.setColor(c); g.drawString(""+code,i*15,10+r.nextInt(20)); } for(int i=0;i<10;i++){ Color c = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)); g.setColor(c); g.drawLine(r.nextInt(60),r.nextInt(30),r.nextInt(60),r.nextInt(30)); } //图片生效 g.dispose(); //写到 ImageIO.write(img, "JPEG",resp.getOutputStream()); }
相关文章推荐
- 过滤器(Filter)应用之------设置页面缓存、用户的自动登录和敏感词过滤
- 3Filter应用2禁止浏览器缓存所有动态页面的过滤器
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- Filter-过虑器应用之1-设置request编码
- NET环境下有关打印页面设置、打印机设置、打印预览对话框的应用(二)
- Apache中关于页面缓存的设置
- Servlet学习-页面设置不缓存
- Expires 属性可设置在页面缓存失效前页面被缓存的时间(分钟)。Response.Expires=-1 指示
- Vue笔记3 vue-cli单页面应用与路由设置
- 设置jsp页面不缓存
- 页面的缓存与不缓存设置
- 设置JSP页面无缓存
- 使用Donut Caching和Donut Hole Caching在ASP.NET MVC应用中缓存页面
- php处理静态页面:页面设置缓存时间实例
- 关于api接口以及页面数据通信域名,缓存cdn设置优化
- .NET进期综合---缓存/关于跨页面值传递/页面设置CSS
- jenkins页面不刷新,设置tomcat缓存
- Spring mvc 页面缓存设置
- 过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
- 页面的缓存与不缓存设置