2

jboss 5.1 サーバーと struts フレームワークを使用しています。以下はユースケースです

ユースケース 1

1)ブラウザのキャッシュをクリアし、ブラウザにアプリケーションのURLをロードしました
(/ loadLogin.doなど)

2)httpSession = request.getSession(false);httpSessionをチェックすると、nullではなく、jessionidが123と表示されます

3)今、私はセッションを無効にしますhttpSession.invalidate();

4) もう一度、新しいセッションを作成しhttpSession = request.getSession()ます。今度は新しい jessionid が作成され、たとえば 456

5) 最後に、Cookie を確認すると、2 つの jessionid が表示されます

Set-Cookie: JSESSIONID=123.node1; Path=/loadLogin  
Set-Cookie: JSESSIONID=456.node1; Path=/loadLogin

ユースケース 2

1) キャッシュをクリアしない

2) ブラウザーが既に URL を持っているとします (つまり、アプリにログインしてからログアウトし、再度ログインを試みます。今回は、ブラウザーのドロップダウンに URL が表示されます)。

3) 今回、Cookie を確認すると、jessionid が 1 つしか存在しません。

サーバーがどのように動作するか、またはセッションがアプリケーションで処理されている方法と関係があるかどうか、誰か教えてください。

4

1 に答える 1

0

私も半年前にこの問題に対処しました。それは非常にイライラする問題でした。しかし、私はそれを解決しました。最初に新しく作成したセッションをキャンセルしてから、新しいセッションを作成します。

if (getHttpRequest().getSession(false).isNew() == false) {
  getHttpRequest().getSession(false).invalidate();
  getHttpRequest().getSession(true);
}
于 2012-08-01T20:17:48.833 に答える