Filter 禁止瀏覽器緩存動態資源,例如JSP資源 -學習筆記
阿新 • • 發佈:2018-04-19
Filter 禁止瀏覽器緩存動態資源例當訪問一個web資源時,沒有得到對應的結果,有可能是Filter沒有放行資源
靜態資源和動態資源進行不同的緩存處理,代碼如下:====NO2判段是否以jsp結尾 處
靜態資源和動態資源進行不同的緩存處理,代碼如下:====NO2判段是否以jsp結尾 處
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,形式/day04/login.jsp //http: String 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() { } }
Filter 禁止瀏覽器緩存動態資源,例如JSP資源 -學習筆記