欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

1.  實例說明

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

2.  編寫Cache類

在Cache類中同時使用上述的三個響應(yīng)消息頭字段關(guān)閉了瀏覽器緩存,并向客戶端輸出一段HTML代碼,以測試關(guān)閉緩存和未關(guān)閉緩存的效果。Cache類的實現(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請求參數(shù)值為false時關(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.  測試未關(guān)閉瀏覽器緩存的情況

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

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

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

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

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

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

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

6.  程序總結(jié)

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

總結(jié)

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

相關(guān)文章

  • Java性能優(yōu)化之?dāng)?shù)據(jù)結(jié)構(gòu)實例代碼

    Java性能優(yōu)化之?dāng)?shù)據(jù)結(jié)構(gòu)實例代碼

    這篇文章主要介紹了Java性能優(yōu)化之?dāng)?shù)據(jù)結(jié)構(gòu)實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 全面分析Java方法的使用與遞歸

    全面分析Java方法的使用與遞歸

    在java中,方法就是用來完成解決某件事情或?qū)崿F(xiàn)某個功能的辦法;程序調(diào)用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設(shè)計語言中廣泛應(yīng)用。但是如果沒終止條件會造成死循環(huán),所以遞歸代碼里要有結(jié)束自調(diào)自的條件,本篇接下來講解一下方法與遞歸
    2022-04-04
  • java基于反射得到對象屬性值的方法

    java基于反射得到對象屬性值的方法

    這篇文章主要介紹了java基于反射得到對象屬性值的方法,結(jié)合實例形式分析了java基于反射獲取對象屬性值的相關(guān)實現(xiàn)方法與操作技巧,需要的朋友可以參考下
    2017-03-03
  • java默認(rèn)方法sqrt實例用法

    java默認(rèn)方法sqrt實例用法

    在本篇文章里小編給大家分享的是一篇關(guān)于java默認(rèn)方法sqrt實例用法,對此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-03-03
  • java使用ftp上傳文件示例分享

    java使用ftp上傳文件示例分享

    這篇文章主要介紹了java使用ftp上傳文件示例,需要的朋友可以參考下
    2014-02-02
  • Maven入門教程之如何在idea中配置Maven

    Maven入門教程之如何在idea中配置Maven

    Maven是非常出色的項目管理工具,我們可以用它管理本地項目,下面這篇文章主要給大家介紹了關(guān)于Maven入門教程之如何在idea中配置Maven的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    這篇文章主要介紹了Springboot如何基于assembly服務(wù)化實現(xiàn)打包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • TreeSet判斷重復(fù)元素解析及代碼示例

    TreeSet判斷重復(fù)元素解析及代碼示例

    這篇文章主要介紹了TreeSet判斷重復(fù)元素解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Java?Map.values()方法之如何獲取Map集合中的所有鍵值對象

    Java?Map.values()方法之如何獲取Map集合中的所有鍵值對象

    這篇文章主要介紹了Java?Map.values()方法之如何獲取Map集合中的所有鍵值對象問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 通過Java實現(xiàn)中文分詞與文本關(guān)鍵詞提取

    通過Java實現(xiàn)中文分詞與文本關(guān)鍵詞提取

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實現(xiàn)中文分詞以及文本關(guān)鍵詞提取功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2023-06-06

最新評論