JavaWebブラウザが現在のWebページをキャッシュすることを禁止する方法
2852 ワード
ブラウザキャッシュとは、最初にWebページにアクセスすると、ブラウザがこれらのWebページをローカルにキャッシュし、次にキャッシュされたWebページにアクセスすると、ブラウザはネットワークから取得することなく、ローカルからこれらのWebページの内容を直接読み取ります.
ブラウザが提供するキャッシュ機能は、Webページのマウント速度を効果的に向上させることができますが、リアルタイムで更新する必要があるWebページによっては、このキャッシュメカニズムがWebページの正常な表示に影響します.幸い、HTTP応答メッセージヘッダには、クライアントブラウザのキャッシュ機能をオフにする3つのフィールドが用意されています.次の3つの文は、ブラウザのキャッシュを閉じるためにこの3つのフィールドを使用します.
上記の3つのHTTPレスポンスメッセージヘッダフィールドは、ブラウザキャッシュを閉じることができます.ただし、すべてのブラウザがこの3つのレスポンスメッセージヘッダフィールドをサポートしているわけではありません.そのため、上記の3つのレスポンスメッセージヘッダフィールドを同時に使用してブラウザのキャッシュを閉じることが望ましいです.例:ブラウザが現在のWebページ1をキャッシュすることを禁止する. 例では、ブラウザキャッシュを閉じない場合と閉じた場合の両方において、formによるリクエストメッセージの送信時のパフォーマンスを示します.2. Cacheクラスの作成Cacheクラスでは、上記の3つのレスポンスメッセージヘッダフィールドを使用してブラウザキャッシュを閉じ、クライアントにHTMLコードを出力して、キャッシュを閉じる効果とキャッシュを閉じない効果をテストします.Cacheクラスの実装コードは次のとおりです.
上記のコードから、cacheリクエストパラメータ値がfalseの場合、ブラウザのキャッシュが閉じられることがわかります.3. CacheクラスCacheクラスを構成する構成コードは簡単です.以下のようになります.
4. ブラウザキャッシュがオフになっていないことをテストするには、ブラウザアドレスバーに次のURLを入力します.http://localhost:8080/demo/Cache?cache=true [名前]テキストボックスに任意の文字列を入力し、[コミット]ボタンをクリックすると、ブラウザに異常が表示されます(この異常はコミットしたtestが存在しないため発生し、私たちはそれを管理する必要はありません)、ブラウザの戻りボタンをクリックしてさっき入力したデータのページに戻ります.先ほど入力した文字列がまだ存在することがわかります.これは、ブラウザがサービス側からこのページを再取得するのではなく、ローカルのキャッシュから現在のページを再ロードしたことを示します. 5. ブラウザキャッシュをオフにするテストは、ブラウザアドレスバーに次のURLを入力してブラウザキャッシュをオフにします.http://localhost:8080/demo/Cache?cache=false 前の手順で提出して戻りますが、先ほど入力したデータがありません.これは、ブラウザキャッシュを閉じると、戻るたびにブラウザがサービス側から現在のページを再取得することを示します.したがって、現在のページは常に初期値を保持します.
ブラウザが提供するキャッシュ機能は、Webページのマウント速度を効果的に向上させることができますが、リアルタイムで更新する必要があるWebページによっては、このキャッシュメカニズムがWebページの正常な表示に影響します.幸い、HTTP応答メッセージヘッダには、クライアントブラウザのキャッシュ機能をオフにする3つのフィールドが用意されています.次の3つの文は、ブラウザのキャッシュを閉じるためにこの3つのフィールドを使用します.
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
上記の3つのHTTPレスポンスメッセージヘッダフィールドは、ブラウザキャッシュを閉じることができます.ただし、すべてのブラウザがこの3つのレスポンスメッセージヘッダフィールドをサポートしているわけではありません.そのため、上記の3つのレスポンスメッセージヘッダフィールドを同時に使用してブラウザのキャッシュを閉じることが望ましいです.例:ブラウザが現在のWebページ1をキャッシュすることを禁止する. 例では、ブラウザキャッシュを閉じない場合と閉じた場合の両方において、formによるリクエストメッセージの送信時のパフォーマンスを示します.2. Cacheクラスの作成Cacheクラスでは、上記の3つのレスポンスメッセージヘッダフィールドを使用してブラウザキャッシュを閉じ、クライアントにHTMLコードを出力して、キャッシュを閉じる効果とキャッシュを閉じない効果をテストします.Cacheクラスの実装コードは次のとおりです.
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"))
{
//
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
}
}
// HTML
String html = "";
PrintWriter out = response.getWriter();
out.println(html); // HTML
}
}
上記のコードから、cacheリクエストパラメータ値がfalseの場合、ブラウザのキャッシュが閉じられることがわかります.3. CacheクラスCacheクラスを構成する構成コードは簡単です.以下のようになります.
Cache
chapter5.Cache
Cache
/Cache
4. ブラウザキャッシュがオフになっていないことをテストするには、ブラウザアドレスバーに次のURLを入力します.http://localhost:8080/demo/Cache?cache=true [名前]テキストボックスに任意の文字列を入力し、[コミット]ボタンをクリックすると、ブラウザに異常が表示されます(この異常はコミットしたtestが存在しないため発生し、私たちはそれを管理する必要はありません)、ブラウザの戻りボタンをクリックしてさっき入力したデータのページに戻ります.先ほど入力した文字列がまだ存在することがわかります.これは、ブラウザがサービス側からこのページを再取得するのではなく、ローカルのキャッシュから現在のページを再ロードしたことを示します. 5. ブラウザキャッシュをオフにするテストは、ブラウザアドレスバーに次のURLを入力してブラウザキャッシュをオフにします.http://localhost:8080/demo/Cache?cache=false 前の手順で提出して戻りますが、先ほど入力したデータがありません.これは、ブラウザキャッシュを閉じると、戻るたびにブラウザがサービス側から現在のページを再取得することを示します.したがって、現在のページは常に初期値を保持します.