0

初めてブラウザから URL を入力すると、サーブレット フィルタがヒットします。たとえばappPages/Nav.xhtml?id=1、ブラウザに初めて貼り付けると、ページが更新されます。ここで、クエリ文字列を変更するとappPages/Nav.xhtml?id=2、ページも更新されます。

しかし、3 回目に入るappPages/Nav.xhtml?id=1と、まだ古いステージが記憶されており、フィルターが呼び出されることはありません。私のweb.xmlで、フィルターを次のように構成しました

<filter>
    <display-name>SearchParamsFilter</display-name>
    <filter-name>SearchParams</filter-name>
    <filter-class>com.acme.filter.SearchParams</filter-class>
</filter>
<filter-mapping>
     <filter-name>SearchParams</filter-name>
     <url-pattern>/appPages/Nav.xhtml</url-pattern>
 </filter-mapping>

古い状態を覚えているのはなぜですか?これは、同じタブの同じウィンドウに再度 URL を入力した場合にのみ発生します。しかし、リロードは正常に機能します。

更新: Chrome では正常に動作しますが、IE では動作しません!

4

1 に答える 1

0

クライアント側のキャッシュが原因である可能性があります。サーブレットやフィルターに適切な応答ヘッダーを設定して、キャッシュを無効にしてください。詳細な手順については、次の回答を参照してください。

サーブレットの結果がキャッシュされないようにするにはどうすればよいですか?

Javaサーブレットページのキャッシュを無効にする方法

于 2013-04-02T20:19:18.397 に答える