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

JavaWeb禁止瀏覽器緩存當(dāng)前Web頁(yè)面的方法

 更新時(shí)間:2017年11月27日 10:26:50   投稿:mrr  
所謂瀏覽器緩存,是指當(dāng)?shù)谝淮卧L問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器會(huì)將這些網(wǎng)頁(yè)緩存到本地,當(dāng)下一次再訪問(wèn)這些被緩存的網(wǎng)頁(yè)時(shí),瀏覽器就會(huì)直接從本地讀取這些網(wǎng)頁(yè)的內(nèi)容,而無(wú)需再?gòu)木W(wǎng)絡(luò)上獲取

所謂瀏覽器緩存,是指當(dāng)?shù)谝淮卧L問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器會(huì)將這些網(wǎng)頁(yè)緩存到本地,當(dāng)下一次再訪問(wèn)這些被緩存的網(wǎng)頁(yè)時(shí),瀏覽器就會(huì)直接從本地讀取這些網(wǎng)頁(yè)的內(nèi)容,而無(wú)需再?gòu)木W(wǎng)絡(luò)上獲取。

        雖然瀏覽器提供的緩存功能可以有效地提高網(wǎng)頁(yè)的裝載速度,但對(duì)于某些需要實(shí)時(shí)更新的網(wǎng)頁(yè),這種緩存機(jī)制就會(huì)影響網(wǎng)頁(yè)的正常顯示。幸好在HTTP響應(yīng)消息頭中提供了三個(gè)字段可以關(guān)閉客戶端瀏覽器的緩存功能。下面三條語(yǔ)句分別使用這三個(gè)字段來(lái)關(guān)閉瀏覽器的緩存:

response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");

        雖然上面三個(gè)HTTP響應(yīng)消息頭字段都可以關(guān)閉瀏覽器緩存。但并不是所有的瀏覽器都支持這三個(gè)響應(yīng)消息頭字段,因此,最好同時(shí)使用上面這三個(gè)響應(yīng)消息頭字段來(lái)關(guān)閉瀏覽器的緩存。

例子 : 禁止瀏覽器緩存當(dāng)前Web頁(yè)面

1.  實(shí)例說(shuō)明

本程序演示了在未關(guān)閉瀏覽器緩存和關(guān)閉瀏覽器緩存兩種情況下,通過(guò)form提交請(qǐng)求消息時(shí)的表現(xiàn)。

2.  編寫Cache類

在Cache類中同時(shí)使用上述的三個(gè)響應(yīng)消息頭字段關(guān)閉了瀏覽器緩存,并向客戶端輸出一段HTML代碼,以測(cè)試關(guān)閉緩存和未關(guān)閉緩存的效果。Cache類的實(shí)現(xiàn)代碼如下:

public class Cache extends HttpServlet
{
  public void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
    response.setContentType("text/html;charset=UTF-8");
    String cache = request.getParameter("cache");
    if (cache != null)
    {
      if (cache.equals("false"))
      {
        // 關(guān)閉瀏覽器緩存
        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
      }
    }
    // 定義HTML代碼 
    String html = "<form id = 'form', action='test' method='post'>"
        + "姓名:<input type='text' name = 'name'/>"
        + "<input type='submit' value='提交' />" + "</form>";
    PrintWriter out = response.getWriter();
    out.println(html);     // 向客戶端輸出HTML代碼
  }
}

從上面的代碼可以看出,當(dāng)cache請(qǐng)求參數(shù)值為false時(shí)關(guān)閉瀏覽器的緩存。

3.  配置Cache類

Cache類的配置代碼如下:

<servlet>
  <servlet-name>Cache</servlet-name>
  <servlet-class>chapter5.Cache</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Cache</servlet-name>
  <url-pattern>/Cache</url-pattern>
</servlet-mapping>

4.  測(cè)試未關(guān)閉瀏覽器緩存的情況

在瀏覽器地址欄中輸入如下的URL:

http://localhost:8080/demo/Cache?cache=true

        在【姓名】文本框中輸入任意字符串,點(diǎn)擊【提交】按鈕,這時(shí)瀏覽器會(huì)顯示一個(gè)異常(這個(gè)異常是由于所提交的test不存在而產(chǎn)生的,我們不用去管它),然后點(diǎn)擊瀏覽器的返回按鈕回到剛才輸入數(shù)據(jù)的頁(yè)面。我們可以看到,剛才輸入的字符串仍然存在。這說(shuō)明在返回時(shí),瀏覽器并未從服務(wù)端重新獲得這個(gè)頁(yè)面,而是從本地的緩存里重新加載了當(dāng)前的頁(yè)面。    

5.  測(cè)試關(guān)閉瀏覽器緩存的情況

在瀏覽器地址欄中輸入如下的URL來(lái)關(guān)閉瀏覽器緩存:

http://localhost:8080/demo/Cache?cache=false

        按著上一步的方式提交并返回,發(fā)現(xiàn)剛才輸入的數(shù)據(jù)沒(méi)有了。這說(shuō)明在關(guān)閉瀏覽器緩存后,每次返回時(shí),瀏覽器總會(huì)從服務(wù)端重新獲得當(dāng)前頁(yè)面。因此,當(dāng)前頁(yè)面總是保持著初始值。

6.  程序總結(jié)

        在關(guān)閉瀏覽器緩存時(shí),為了盡可能保證在大多數(shù)瀏覽器中都有效,我建議同時(shí)使用上述三個(gè)HTTP響應(yīng)消息頭字段來(lái)關(guān)閉瀏覽器緩存。

總結(jié)

以上所述是小編給大家介紹的JavaWeb禁止瀏覽器緩存當(dāng)前Web頁(yè)面的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 一文詳解如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試

    一文詳解如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試

    這篇文章主要介紹了如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試的相關(guān)資料,JUnit5是一個(gè)流行的Java測(cè)試框架,它涵蓋了JUnit5的概述、環(huán)境配置、編寫測(cè)試用例、運(yùn)行測(cè)試、高級(jí)特性和最佳實(shí)踐,需要的朋友可以參考下
    2025-04-04
  • SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架,討論兩種搭建方式:基于frameset和基于easyUI,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    動(dòng)態(tài)上傳jar包熱部署的實(shí)戰(zhàn)詳解

    開(kāi)發(fā)系統(tǒng)過(guò)程中遇到的一個(gè)需求,系統(tǒng)給定一個(gè)接口,用戶可以自定義開(kāi)發(fā)該接口的實(shí)現(xiàn),并將實(shí)現(xiàn)打成jar包,上傳到系統(tǒng)中。系統(tǒng)完成熱部署,并切換該接口的實(shí)現(xiàn)。本文詳細(xì)介紹了實(shí)現(xiàn)方法,需要的可以參考一下
    2022-10-10
  • Springmvc模式上傳和下載與enctype對(duì)比

    Springmvc模式上傳和下載與enctype對(duì)比

    這篇文章主要介紹了Springmvc模式上傳和下載與enctype對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解

    如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Spring  ApplicationContextAware 接口的作用及使用方式

    Spring  ApplicationContextAware 接口的作用及使用方式

    Spring提供了許多回調(diào)接口,用于Bean生命周期中執(zhí)行特定的操作,通過(guò)實(shí)現(xiàn)ApplicationContextAware接口,Spring提供了一種便捷的方式讓 Bean獲取對(duì)Spring容器的引用,本文介紹ApplicationContextAware接口的作用、使用方式,以及在實(shí)際應(yīng)用中的常見(jiàn)場(chǎng)景,感興趣的朋友一起看看吧
    2024-01-01
  • Springboot程序在使用Maven下載依賴時(shí)失效的解決方法

    Springboot程序在使用Maven下載依賴時(shí)失效的解決方法

    以前能成功創(chuàng)建SpringBoot項(xiàng)目并運(yùn)行,但是現(xiàn)在再創(chuàng)建新項(xiàng)目時(shí)Maven下載依賴失敗,且maven依賴刷新按鍵一直沒(méi)反應(yīng),所以本文給大家介紹了Springboot程序在使用Maven下載依賴時(shí)失效的解決方法,需要的朋友可以參考下
    2024-05-05
  • 深入淺析springboot中static和templates區(qū)別

    深入淺析springboot中static和templates區(qū)別

    這篇文章主要介紹了springboot中static和templates區(qū)別,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn)

    springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn)

    Druid是阿里開(kāi)發(fā)的數(shù)據(jù)庫(kù)連接池,本文主要介紹了springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • SpringBoot Actuator埋點(diǎn)和監(jiān)控及簡(jiǎn)單使用

    SpringBoot Actuator埋點(diǎn)和監(jiān)控及簡(jiǎn)單使用

    最近做的項(xiàng)目涉及到埋點(diǎn)監(jiān)控、報(bào)表、日志分析的相關(guān)知識(shí),于是搗鼓的一番,下面把涉及的知識(shí)點(diǎn)及SpringBoot Actuator埋點(diǎn)和監(jiān)控的簡(jiǎn)單用法,給大家分享下,感興趣的朋友一起看看吧
    2021-11-11

最新評(píng)論

西和县| 历史| 徐闻县| 许昌市| 宁晋县| 玉环县| 大田县| 都安| 玛沁县| 蒲城县| 泰顺县| 华容县| 海盐县| 岳普湖县| 南漳县| 扶风县| 光山县| 济源市| 河津市| 磐安县| 遵义县| 林口县| 莱芜市| 塘沽区| 通辽市| 河西区| 秭归县| 璧山县| 普陀区| 景宁| 凤城市| 永靖县| 晋州市| 阳山县| 涡阳县| 黄大仙区| 东山县| 阳谷县| 昌邑市| 永德县| 隆安县|