Webページでは、クライアントが毎回サーバーにアクセスするとき、それらの一部は繰り返し要求する必要はありません。たとえば、一部の写真、ビデオなど、毎回リクエストする必要はありません。これにより、サーバーのワークロードが増加します。これを防ぐために、フィルターを使用してクライアントをキャッシュするように設定します。
ページキャッシュと非キャッシュ設定、およびHTMLページにおけるメタの役割
HTTP 1.1では、ページのキャッシュを制御するためにキャッシュコントロールが有効になっています。一般的に使用されるいくつかのパラメーターは次のとおりです。
ノーキャッシュ、ブラウザ、キャッシュサーバーのいずれも、ページ情報をキャッシュする必要はありません。
パブリック、ブラウザとキャッシュサーバーの両方がページ情報をキャッシュできます。
店舗なし、リクエストおよび応答情報は、相手のディスクシステムに保存されるべきではありません。
必見の再評価では、クライアントからの要求ごとに、プロキシサーバーは、キャッシュが古くなっていることをサーバーに確認する必要があります。
ページの最後の世代のみ、GMT形式のみを永続化しました。
期限切れの制限値、GMT形式は、ブラウザまたはキャッシュサーバーがこの時点で実際のサーバーから新しいページ情報を取得する必要があることを意味します。
上記の2つの値は、JSPの文字型GMT形式に設定されており、有効になることができないため、長いタイプは有効になります。
これが、不要なフィルターコードです。
<span style = "font-size:24px;">パッケージcn.hncu.filter; java.io.ioexceptionをインポートします。 javax.servlet.filterをインポートします。 javax.servlet.filterchainをインポートします。 javax.servlet.filterconfigをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.servletrequestをインポートします。 javax.servlet.servletResponseをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。パブリッククラスのcachefilterはfilter {@override public void destroy(){} </span> <span style = "font-size:24px;"> @override public void dofilter(servletResponse Reponse、filtleChain Chain)をスローします。これは、クライアントがキャッシュを設定するかどうかを設定するために使用されます。ここで応答を使用して、クライアントにChain.dofilter(リクエスト、応答)をセットアップするように通知します。 httpservletResponse res =(httpservletResponse)応答; Res.Setheader( "Expries"、 "-1"); Res.Setheader( "Pragma"、 "No-Cache"); Res.Setheader( "Cache-Control"、 "No-Cache"); /*上記はキャッシュしないように設定できますが、より包括的に設定することもできます。 /* Response.setheader( "Pragma"、 "no-cache"); Response.SetDateHeader( "Expires"、 "-1"); Response.Addheader( "Cache-Control"、 "No-Cache"); //ブラウザもキャッシュサーバーもページ情報応答をキャッシュする必要はありません。Addheader( "Cache-Control"、 "No-Store");プロキシサーバーは、キャッシュが古くなっているかどうかをサーバーに確認する必要があります。 } @Override public void init(filterconfig arg0)Strows servletexception {}} </span> <span style = "font-size:18px;"> </span>以下は、キャッシュを設定するフィルターファイルです
パッケージcn.hncu.filter; java.io.ioexceptionをインポートします。 Import Java.util.date; javax.servlet.filterをインポートします。 javax.servlet.filterchainをインポートします。 javax.servlet.filterconfigをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.servletrequestをインポートします。 javax.servlet.servletResponseをインポートします。 javax.servlet.http.httpservletResponseをインポートします。パブリッククラスのcachefilter2実装filter {@override public void destroy(){} @override public void dofilter(servletrequest request、servletresponse response、filterchainチェーン)Ioexception、servletexception {//フィルターには多くの機能があります。これは、クライアントがキャッシュを設定するかどうかを設定するために使用されます。応答を使用してクライアントにキャッシュを設定します//ここで1日間キャッシュを設定して、画像とビデオクラスのリソース(フィルター内の対応するインターセプトパスを構成する)を有効にします。クライアントブラウザーは1日のキャッシュを要求します) res =(httpservletResponse)応答;日付d = new Date(); long time = d.gettime()+60*60*24; // res.setheader( "expries"、 ""+time); //この方法で、1日res.setdateheader( "expries"、time); //上記の文と同じ/ * new date = new date(); Response.setDateHeader( "last-modified"、date.getTime()); // last-modified:ページresponse.setdateheader( "expires"、date.gettime()+60*60*24)の最終世代の時刻。 //期限切れ:有効期限が制限されます。 // Cache-Controlは、ページがキャッシュされているかどうかを制御します。 Response.setheader( "Pragma"、 "Pragma"); //プラグマ:ページがキャッシュされているかどうか、それがプラグマの場合、それがキャッシュされ、ノーキャッシュがキャッシュされていないかどうかを設定*注:上記のフィルターファイルは、構成されたパスに従ってフィルターするようにWeb.xmlで構成する必要があります。
上記は、Javaeeフィルター設定がエディターによって導入されたキャッシュインスタンスであるかどうかの詳細な説明です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!