0

HttpServletResponse#encodeRedirectURLは、リダイレクト リクエストのJSESSIONID(url 書き換え) を追加します。
これは、Web アプリケーション内の別のサーブレットにリダイレクトする場合にのみ意味があります。
それ以外の場合、別のサーバーにリダイレクトする場合、JSESSIONIDサーバーで作成した は、他のサーバーにとってどのように(意味的に)使用できるのでしょうか?

4

3 に答える 3

2

あなたが正しい。セッション ID は、特定の Web アプリケーションに対してのみ意味があります。そのため、javadoc には次のように記載されています。

sendRedirect メソッドで使用するために指定された URL をエンコードします。エンコードが必要ない場合は、URL を変更せずに返します。このメソッドの実装には、セッション ID を URL にエンコードする必要があるかどうかを判断するロジックが含まれています

(私のものを強調)

于 2013-02-16T12:39:59.960 に答える
1

クラスターがあるとします。同じアプリケーションのセットが一貫してデプロイされた複数のサーバー (単一のアプリケーションであっても)。

セッション クラスタリングが有効になっている場合、あるサーバーによって設定された JSESSIONID (Cookie 内または URL 内でエンコードされたもの) は、そのクラスター内の別のサーバーにとって役立つ可能性があるため、別のサーバー上の同じアプリケーションは、セッション データを使用してユーザーの要求に応答できます。最初に最初のサーバーに保存されるか、同じセッション データを補完することさえあります。

通常は、データの局所性のために、クラスター内の雑談を制限するために、稼働している限り同じサーバーにリダイレクトすることをお勧めします。

見る

于 2013-02-16T12:49:20.883 に答える
0

Java EE では、アプリケーション コンテナがセッション管理を担当し、デフォルトで Cookie を使用します。

このリンクJSESSIONID はどのような条件で作成されますか? JSESSIONIDとその作成方法について詳しく説明しています。

この投稿も参照してくださいhttp://javarevisited.blogspot.in/2012/08/what-is-jsessionid-in-j2ee-web.html

于 2013-02-16T12:35:14.323 に答える