1

HTTPSession と Spring Bean に関して、よくわからない問題があります。web.xml で、セッション タイムアウトを 1 分に設定しました。

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

Ajax リクエストごとに、セッションが有効かどうかを確認します。

if(request.getSession(false) == null)
            System.out.println("Session Invalid");

しかし、1 分が経過した後も有効であるように見えます (null ではありません)。

その後、私を混乱させる何かが起こります。この注釈が付いたいくつかの Bean があります。

@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)

最初の 1 分間は問題なく動作し、Bean の同じインスタンスが常に注入され、情報を保存して後で復元できますが、1 分待ってから別のリクエストを送信すると、Bean の別のインスタンスが注入されます。そして、私が持っていた情報は失われます。

セッションの有効期限が切れているはずなので、注入された Bean が異なるのですが、なぜrequest.getSession(false)が null ではなく、request.getSession(false).isValid()true なのですか?

4

0 に答える 0