0

最新のChromeブラウザを使用してCookieをオフにせずにアプリケーションにログインしているときに、GlassfishがURL書き換えに頼る理由は何ですか?設定するのを忘れたものはありますか?それはランダムに起こります。

4

1 に答える 1

3

JSESSIONIDは、ユーザーの現在のHTTPセッションを決定する値です。通常、リクエストをサーバー上の適切なセッションオブジェクトに接続するために、ブラウザのCookie(JSESSIONIDという名前)に保存されます。

JSESSIONIDが元のリクエストに存在しない理由は、サーバーがJSESSIONIDをブラウザに送り返す機会がなかったためと考えられます。現在のJSESSIONIDCookieのないページ上のリンク(たとえば、c:urlを使用)は、URL書き換えを使用して生成されます(URLにはjsessionidが含まれます)。subsequntリクエストでは、JSESSIONIDがブラウザのCookieとして保存された後、URLの書き換えは行われません。

ユーザーのブラウザがCookieをサポートしていない場合(またはCookieの使用がオフになっている場合)、URLの書き換えにより、ユーザーは各URLに追加されたjsessionidによって同じセッションに接続し続けることができます。

ただし、URL書き換えをオフにする場合は、glassfish-web.xmlファイルでenableURLRewritingプロパティをfalseに設定することでこれを行うことができます。

<property name="enableURLRewriting" value="false"/>

また、適切なCookieが存在することを確認し、より適切なURLにリダイレクトすることで、URLの書き換えを削除することもできます。

于 2012-04-19T17:52:00.757 に答える