2

と を使用struts.serve.static=truestruts.serve.static.browserCache=falseていますが、ログアウトしても戻るボタンが機能しています。戻るボタンをクリックすると、前の画面に移動します。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

上記の定数は、静的コンテンツをキャッシュする必要があるかどうかをブラウザに通知するためにS2によって使用されます。

struts.serve.static=true

上記のプロパティはによって使用されますFilterDispatcher

  • trueの場合、Strutsはjar内から静的コンテンツを提供します。
  • falseの場合、静的コンテンツは/strutsで利用可能である必要があります

またstruts.serve.static.browserCache=true、によって使用され、。FilterDispatcherの場合にのみ機能しますstruts.serve.static=true

  • trueの場合->Strutsは、静的コンテンツのヘッダーを書き出して、Webブラウザーによってキャッシュされるようにします(Date、Cache-Content、Pragma、Expiresを使用)ヘッダー。
  • falseの場合->Strutsは、静的コンテンツのヘッダーを書き出して、Webブラウザーによってキャッシュされないようにします(Cache-Content、Pragma、Expiresヘッダーを使用)。要するに、これらの定数は両方とも、ブラウザーにキャッシュする必要があるかどうかを通知する方法です。 S2によって提供されているかどうかにかかわらず静的コンテンツ。

ブラウザの戻るボタンに関しては、ブラウザAPIの一部としてブラウザの戻るボタンを無効にすることはできません。戻るボタンを押すと、ブラウザはサーバーにアクセスせずにキャッシュからコンテンツを提供します。

キャッシュ制御ヘッダーを使用してコンテンツをキャッシュしないようにブラウザに要求できますが、コンテンツを尊重するかどうかはブラウザに要求できます。JSPで次のコードを使用します

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

または、インターセプターを作成し、ヘッダーを設定できるように、目的のアクションでインターセプターを構成することもできます。S2でキャッシュを制御する方法の詳細については、次のスレッドを参照してください。

于 2012-05-08T11:45:35.203 に答える
1

カスタム インターセプタを作成して、すべての jsp にresponse追加するよりもヘッダーを追加する方が簡単ですresponse.setHeader(Struts2 を使用している場合)。正常に動作する美しい例については、このリンク

を 確認してください。

于 2012-08-10T19:52:07.183 に答える