1. ホーム

[解決済み】どのような条件でJSESSIONIDが作成されるのですか?

2022-03-29 01:03:34

質問

が表示されるのはいつですか/どのような条件ですか? JSESSIONID は作成されますか?

ドメインごとでしょうか?例えば、Tomcatのアプリサーバーがあり、複数のWebアプリケーションをデプロイする場合、ドメインごとに異なる JSESSIONID はコンテキスト(ウェブアプリケーション)ごとに作成されるのでしょうか、それとも同じドメインである限りウェブアプリケーション間で共有されるのでしょうか?

解決方法は?

JSESSIONIDクッキーは、セッションが作成されるときに作成/送信されます。セッションの作成は、あなたのコードが request.getSession() または request.getSession(true) を初めて使用します。セッションを取得するだけで、それが存在しない場合は作成しない場合は request.getSession(false) -- これはセッションを返すか null . この場合、新しいセッションは作成されず、JSESSIONIDクッキーも送信されません。(これはまた 最初のリクエストでセッションが作成されるとは限りません ... あなたとあなたのコードは、コントロールされています。 いつ セッションが作成される)

セッションはコンテキスト単位です。

<ブロッククオート

SRV.7.3 セッションスコープ

HttpSessionオブジェクトは、次のようにスコープされなければなりません。 アプリケーション(またはサーブレットコンテキスト) レベルである。基礎となるメカニズム、例えば を確立するために使用されるクッキーのような セッションは、異なる のコンテキストで、参照されるオブジェクトは異なります。 その中の属性を含む オブジェクトの間で決して共有されてはならない。 コンテナによるコンテキスト

( サーブレット2.4仕様 )

更新:JSPページを呼び出すたびに、まだセッションがない場合は暗黙のうちに新しいセッションが作成されます。この機能を無効にするには session='false' この場合、セッション変数は JSP ページ上で全く利用できません。