いつ/どのような条件でJSESSIONIDが作成されますか?
ドメインごとですか?たとえば、Tomcat アプリケーション サーバーがあり、複数の Web アプリケーションをデプロイする場合、JSESSIONIDコンテキスト (Web アプリケーション) ごとに異なるアプリケーションが作成されますか、それとも同じドメインである限り Web アプリケーション間で共有されますか?
いつ/どのような条件でJSESSIONIDが作成されますか?
ドメインごとですか?たとえば、Tomcat アプリケーション サーバーがあり、複数の Web アプリケーションをデプロイする場合、JSESSIONIDコンテキスト (Web アプリケーション) ごとに異なるアプリケーションが作成されますか、それとも同じドメインである限り Web アプリケーション間で共有されますか?
JSESSIONIDCookie のもう1 つのソースに関する情報を次に示します。
Tomcat サーバーで実行される Java コードをデバッグしていました。コードのどこでも明示的に呼び出していませんでしたが、 Cookie がまだ設定されているrequest.getSession()ことに気付きました。JSESSIONID
最後に、Tomcat の下の作業ディレクトリにある JSP に対応する、生成された Java コードを調べました。
好むと好まざるとにかかわらず、サーブレットから JSP を呼び出すJSESSIONIDと、作成されるようです。
追加: 次の JSP ディレクティブを追加することで、次のことがわかりました。
<%@ page session="false" %>
JSESSIONIDの設定をJSPで無効にすることができます。
ページに他の .jsp または .jspf (フラグメント) が含まれている場合は注意してください。設定しない場合
<%@ page session="false" %>
同様に、親ページは新しいセッションを開始し、JSESSIONID Cookie を設定します。
特に .jspf ページの場合、次のようなスニペットを使用して web.xml を構成すると、これが発生します。
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
</jsp-property-group>
</jsp-config>
それらの中でスクリプトレットを有効にするため。
カスタムタグを使用してJSPで生成されたリンクの場合、使用する必要がありました
<%@ page session="false" %>
JSPで
と
request.getSession().invalidate();
Struts アクションで