設置某些頁面緩存或是不緩存
要想讓所有瀏覽器不緩存頁面:
<%
response.setHeader("expires","-1");
response.setHeader(" 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);[W2] //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()); }
新聞熱點
疑難解答