Java EE 標準に従って、Tomcat では、リクエストで既存のセッション ID を次の 2 つの方法で指定できます。1) Cookie を使用する方法。2) 「パス パラメーター」経由 (通常のパラメーターではありません。パス パラメーターには次の形式がありますhttp://host/path/file.ext;jsessionid=xxx?a=b&c=d...
。「;」と、クエリ文字列がパス パラメーターの後にのみ開始されることに注意してください)。私が望むのは、「?」の後のクエリ文字列で、リクエストのセッション ID を REGULAR パラメータとして渡すことですhttp://host/path/file.ext?jsessionid=xxx
。
リクエストがインターセプトできる場所に到達し、コンテナがセッション ID を決定する方法を (フィルターやサーブレットなどで) 変更できるようになるまでには、手遅れです。変更したい動作は、クライアントからの要求の初期処理にあります。私が避けたいのは、Coyote または Tomcat のコードを変更し、Tomcat を自分で再構築することです。これには明らかな理由があります。私がやりたいのは、適切なコードをオーバーライドし、そのコードを使用して要求されたセッション ID を判別するように Tomcat を構成することです。それは不可能に思えますが、私が間違っていることを願っています。
この方法でセッション ID を取得することは標準的ではありません。Cookie またはパス パラメータを使用することは、セッション状態を追跡するための優れた方法であることを知っています。セッション ID を実際のクエリ文字列に入れると、それ自体が潜在的な問題を引き起こすことはわかっています。とにかくやるしかない。
Tomcat 7を実行しています。