網(wǎng)頁(yè)的緩存是由HTTP消息頭中的“Cache-control”來(lái)控制的,常見(jiàn)的取值有private、no-cache、max-age、must-revalidate等,默認(rèn)為private。其作用根據(jù)不同的重新瀏覽方式分為以下幾種情況:(1) 打開(kāi)新窗口如果指定cache-control的值為private、no-cache、must-revalidate,那么打開(kāi)新窗口訪問(wèn)時(shí)都會(huì)重新訪問(wèn)服務(wù)器。而如果指定了max-age值,那么在此值內(nèi)的時(shí)間里就不會(huì)重新訪問(wèn)服務(wù)器,例如:Cache-control: max-age=5表示當(dāng)訪問(wèn)此網(wǎng)頁(yè)后的5秒內(nèi)再次訪問(wèn)不會(huì)去服務(wù)器(2) 在地址欄回車如果值為private或must-revalidate(和網(wǎng)上說(shuō)的不一樣),則只有第一次訪問(wèn)時(shí)會(huì)訪問(wèn)服務(wù)器,以后就不再訪問(wèn)。如果值為no-cache,那么每次都會(huì)訪問(wèn)。如果值為max-age,則在過(guò)期之前不會(huì)重復(fù)訪問(wèn)。(3) 按后退按扭如果值為private、must-revalidate、max-age,則不會(huì)重訪問(wèn),而如果為no-cache,則每次都重復(fù)訪問(wèn)(4) 按刷新按扭無(wú)論為何值,都會(huì)重復(fù)訪問(wèn) 項(xiàng)目中使用過(guò)濾器來(lái)設(shè)置網(wǎng)頁(yè)的緩存
FilterConfig fc; public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; // set the provided HTTP response parameters for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) { String headerName = (String) e.nextElement(); response.addHeader(headerName, fc.getInitParameter(headerName)); } // pass the request/response on chain.doFilter(req, response); }
配置文件的配置:
<filter> <filter-name>NoCache</filter-name> <filter-class>filter.CacheFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>no-cache, must-revalidate</param-value> </init-param> </filter> <filter> <filter-name>CacheForWeek</filter-name> <filter-class>filter.CacheFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>max-age=604800</param-value> </init-param> </filter> <filter-mapping> <filter-name>CacheForWeek</filter-name> <url-pattern>*.js</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheForWeek</filter-name> <url-pattern>*.css</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheForWeek</filter-name> <url-pattern>*.gif</url-pattern> </filter-mapping>
上述設(shè)置保存了1周的緩存。
posted on 2009-09-10 11:48 肥仔 閱讀(1560) 評(píng)論(0) 編輯 收藏 引用 所屬分類: HTTP & URL
Powered by: C++博客 Copyright © 肥仔