2016-08-02 1 views
-3

クッキーを2つ作成してレスポンスオブジェクトに追加するJSPページを作成しました。このページには、サーブレットオブジェクトを呼び出す送信ボタンがあります。このサーブレットは、以前のJSPページに保存されているCookieにアクセスしようとしますが、JSESSIONID Cookieにしかアクセスできません。これはどのようにして起こり、どのように解決できますか?JSPページで作成されたクッキーはサーブレットでは利用できませんが、JSESSIONIDクッキーのみが利用可能です

+0

コードを表示します。 –

答えて

1

これは、明示的にCookieパスを設定していない場合に発生します。次に、要求URI内の現在のフォルダにデフォルト設定されます。ブラウザは、Cookieのパスが現在のリクエストURIと一致する場合にのみ、Cookieを戻します。

したがって、JSPのURIが/pages/some.jspであるとすると、JSPで作成されたCookieのデフォルトパスは/pagesになります。つまり、ブラウザは/pages/*に一致するすべてのリクエストに対してクッキーを返信します。サーブレットのURIが/someServletの場合、サーブレットはクッキーを取得しません。それは、/someServletまたは/のパスを持つクッキーのみを検索します。

Cookieをアプリケーション全体に適用する場合は、パスを明示的に/に設定する必要があります。

Cookie cookie = new Cookie(name, value); 
cookie.setPath("/"); 
response.addCookie(cookie); 

これは、別の(サブ)フォルダで実行されているサーブレットまたはJSPでも利用できます。

関連する問題