最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVAEE Filter 過(guò)濾器設(shè)置是否緩存實(shí)例詳解

 更新時(shí)間:2016年05月19日 11:07:14   作者:YX_blog  
網(wǎng)頁(yè)中,每次的客戶端訪問(wèn)服務(wù)器,有部分不用重復(fù)請(qǐng)求的,這樣可以減輕服務(wù)器的工作量。那么如何設(shè)置客戶端是否都緩存呢?接下來(lái)通過(guò)本文給大家介紹JAVAEE Filter 過(guò)濾器設(shè)置是否緩存的實(shí)例,感興趣的朋友一起學(xué)習(xí)吧

在網(wǎng)頁(yè)中,每次的客戶端訪問(wèn)服務(wù)器,有部分不用重復(fù)請(qǐng)求,如有些圖片,視頻等就沒有必要每次都請(qǐng)求,這樣會(huì)讓服務(wù)器增大工作量。為了防止這樣,我們采用過(guò)濾器來(lái)設(shè)置客戶端是都緩存。

頁(yè)面的緩存與不緩存設(shè)置及html頁(yè)面中meta的作用

HTTP1.1中啟用Cache-Control 來(lái)控制頁(yè)面的緩存與否,這里介紹幾個(gè)常用的參數(shù):

no-cache,瀏覽器和緩存服務(wù)器都不應(yīng)該緩存頁(yè)面信息;

public,瀏覽器和緩存服務(wù)器都可以緩存頁(yè)面信息;

no-store,請(qǐng)求和響應(yīng)的信息都不應(yīng)該被存儲(chǔ)在對(duì)方的磁盤系統(tǒng)中;

must-revalidate,對(duì)于客戶機(jī)的每次請(qǐng)求,代理服務(wù)器必須想服務(wù)器驗(yàn)證緩存是否過(guò)時(shí);

Last-Modified只頁(yè)面的最后生成時(shí)間,GMT格式;

Expires過(guò)時(shí)期限值,GMT格式,指瀏覽器或緩存服務(wù)器在該時(shí)間點(diǎn)后必須從真正的服務(wù)器中獲取新的頁(yè)面信息;

上面兩個(gè)值在JSP中設(shè)置值為字符型的GMT格式,無(wú)法生效,設(shè)置long類型才生效;

下面是設(shè)置不緩存的filter代碼:

<span style="font-size:24px;">package cn.hncu.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; 
public class CacheFilter implements Filter { 
@Override 
public void destroy() { 
}</span> 
<span style="font-size:24px;"> 
@Override 
public void doFilter(ServletRequest request , ServletResponse response, 
FilterChain chain) throws IOException, ServletException { 
// 過(guò)濾器有很多作用,這個(gè)用來(lái)設(shè)置客戶端是否設(shè)置緩存的問(wèn)題,我們這里采用response通知客戶端設(shè)置不緩存 
chain.doFilter(request, response); 
HttpServletResponse res=(HttpServletResponse) response; 
res.setHeader("expries", "-1"); 
res.setHeader("pragma", "no-cache"); 
res.setHeader("cache-control", "no-cache"); 
/*上面的已經(jīng)可以設(shè)置不緩存,但是還可以設(shè)置全面一點(diǎn): 
//不允許瀏覽器端或緩存服務(wù)器緩存當(dāng)前頁(yè)面信息。 
/* response.setHeader( "Pragma", "no-cache" ); 
response.setDateHeader("Expires", "-1"); 
response.addHeader( "Cache-Control", "no-cache" );//瀏覽器和緩存服務(wù)器都不應(yīng)該緩存頁(yè)面信息 
response.addHeader( "Cache-Control", "no-store" );//請(qǐng)求和響應(yīng)的信息都不應(yīng)該被存儲(chǔ)在對(duì)方的磁盤 response.addHeader( "Cache-Control", "must-revalidate" );*///于客戶機(jī)的每次請(qǐng)求,代理服務(wù)器必須想服務(wù)器驗(yàn)證緩存是否過(guò)時(shí); 
} 
@Override 
public void init(FilterConfig arg0) throws ServletException { 
} 
}</span><span style="font-size:18px;"> 
</span> 

下面是設(shè)置緩存的過(guò)濾器文件

package cn.hncu.filter; 
import java.io.IOException; 
import java.util.Date; 
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.HttpServletResponse; 
public class CacheFilter2 implements Filter { 
@Override 
public void destroy() { 
} 
@Override 
public void doFilter(ServletRequest request , ServletResponse response, 
FilterChain chain) throws IOException, ServletException { 
// 過(guò)濾器有很多作用,這個(gè)用來(lái)設(shè)置客戶端是否設(shè)置緩存的問(wèn)題,我們這里采用response通知客戶端設(shè)置緩存 
//這里設(shè)置緩存1天,以實(shí)現(xiàn)讓圖片、視頻類的資源(在過(guò)濾器當(dāng)中配置相應(yīng)的攔截路徑)要求客戶瀏覽器緩存1天) 
//攔截路徑在web.xml中配置 
chain.doFilter(request, response);//先進(jìn)行請(qǐng)求,返回也會(huì)從過(guò)這里,返回進(jìn)行攔截 
HttpServletResponse res=(HttpServletResponse) response; 
Date d =new Date(); 
Long time=d.getTime()+60*60*24; 
// res.setHeader("expries", ""+time);//這樣就設(shè)置緩存一天 
res.setDateHeader("expries", time);//和上面一句一樣 
/* 
* Date date = new Date(); 
response.setDateHeader("Last-Modified",date.getTime()); //Last-Modified:頁(yè)面的最后生成時(shí)間 
response.setDateHeader("Expires",date.getTime()+60*60*24); //Expires:過(guò)時(shí)期限值 
response.setHeader("Cache-Control", "public"); //Cache-Control來(lái)控制頁(yè)面的緩存與否,public:瀏覽器和緩存服務(wù)器都可以緩存頁(yè)面信息; 
response.setHeader("Pragma", "Pragma"); //Pragma:設(shè)置頁(yè)面是否緩存,為Pragma則緩存,no-cache則不緩存 
*/ 
} 
@Override 
public void init(FilterConfig arg0) throws ServletException { 
}

需要注意:上面的filter文件生效需要在web.xml中配置,根據(jù)配置的路徑來(lái)進(jìn)行過(guò)濾。

以上所述是小編給大家介紹的JAVAEE Filter 過(guò)濾器設(shè)置是否緩存實(shí)例詳解的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java構(gòu)造器與傳值學(xué)習(xí)總結(jié)

    Java構(gòu)造器與傳值學(xué)習(xí)總結(jié)

    這篇文章主要為大家詳細(xì)介紹了Java構(gòu)造器與傳值學(xué)習(xí)總結(jié),文中示例介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java使用正則表達(dá)式去除小數(shù)點(diǎn)后面多余的0功能示例

    Java使用正則表達(dá)式去除小數(shù)點(diǎn)后面多余的0功能示例

    這篇文章主要介紹了Java使用正則表達(dá)式去除小數(shù)點(diǎn)后面多余的0功能,結(jié)合具體實(shí)例形式分析了java字符串正則替換相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Springboot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)代碼實(shí)例

    Springboot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)代碼實(shí)例

    這篇文章主要介紹了Springboot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)代碼實(shí)例,任務(wù)是有可能并發(fā)執(zhí)行的,若Scheduler直接使用Job,就會(huì)存在對(duì)同一個(gè)Job實(shí)例并發(fā)訪問(wèn)的問(wèn)題,而JobDetail?&?Job方式,Scheduler都會(huì)根據(jù)JobDetail創(chuàng)建一個(gè)新的Job實(shí)例,這樣就可以規(guī)避并發(fā)訪問(wèn)問(wèn)題
    2023-09-09
  • 關(guān)于IO密集型服務(wù)提升性能的三種方式

    關(guān)于IO密集型服務(wù)提升性能的三種方式

    這篇文章主要介紹了關(guān)于IO密集型服務(wù)提升性能的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot如何啟動(dòng)自動(dòng)加載自定義模塊yml文件(PropertySourceFactory)

    SpringBoot如何啟動(dòng)自動(dòng)加載自定義模塊yml文件(PropertySourceFactory)

    這篇文章主要介紹了SpringBoot如何啟動(dòng)自動(dòng)加載自定義模塊yml文件(PropertySourceFactory),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 吊打Java面試官!整理了一周的Spring面試大全(附答案)

    吊打Java面試官!整理了一周的Spring面試大全(附答案)

    這篇文章主要介紹了Spring面試資料(附答案)建議收藏留存,學(xué)Java的小伙伴都知道Spring是面試的必問(wèn)環(huán)節(jié),看完了一天就可掌握數(shù)據(jù)結(jié)構(gòu)和算法的面試題,快來(lái)看看吧
    2021-08-08
  • 超細(xì)致講解Spring框架 JdbcTemplate的使用

    超細(xì)致講解Spring框架 JdbcTemplate的使用

    在之前的Javaweb學(xué)習(xí)中,學(xué)習(xí)了手動(dòng)封裝JdbcTemplate,其好處是通過(guò)(sql語(yǔ)句+參數(shù))模板化了編程。而真正的JdbcTemplate類,是Spring框架為我們寫好的。它是 Spring 框架中提供的一個(gè)對(duì)象,是對(duì)原始 Jdbc API 對(duì)象的簡(jiǎn)單封裝。
    2021-09-09
  • IDEA設(shè)置允許一個(gè)類并行的方法

    IDEA設(shè)置允許一個(gè)類并行的方法

    這篇文章主要介紹了IDEA設(shè)置允許一個(gè)類并行的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Spring?Boot項(xiàng)目部署命令java?-jar的各種參數(shù)及作用詳解

    Spring?Boot項(xiàng)目部署命令java?-jar的各種參數(shù)及作用詳解

    這篇文章主要介紹了Spring?Boot項(xiàng)目部署命令java?-jar的各種參數(shù)及作用的相關(guān)資料,包括設(shè)置內(nèi)存大小、垃圾回收器、線程棧大小、系統(tǒng)屬性等,還介紹了SpringBoot專用參數(shù),如修改端口、指定配置文件等,需要的朋友可以參考下
    2025-04-04
  • java8 stream多字段排序的實(shí)現(xiàn)

    java8 stream多字段排序的實(shí)現(xiàn)

    這篇文章主要介紹了java8 stream多字段排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

昌吉市| 陈巴尔虎旗| 高州市| 云南省| 三明市| 江西省| 诸城市| 高要市| 太仆寺旗| 兴义市| 枝江市| 文成县| 泰州市| 手游| 清镇市| 宜川县| 阆中市| 休宁县| 阿克| 宜章县| 肇源县| 巴青县| 正蓝旗| 紫金县| 夏河县| 林西县| 奉新县| 嵩明县| 吴旗县| 枝江市| 东平县| 嘉黎县| 锡林郭勒盟| 罗甸县| 墨脱县| 兴海县| 探索| 江华| 屯留县| 敖汉旗| 万州区|