2011-01-13 8 views
4

は、私が試し無効になっているときのURLは、JSESSIONIDを追加していない:C:クッキーは

<c:url value="/web/pclub/userprofile" var="test"> 
    <c:param name="userid" value="${user.id}"/> 
</c:url> 
${test} 

をしかし、私は無効にクッキーを使用してページをチェックしたときに、その後、JSESSIONIDが追加されていません。 これはなぜ起こるか知っていますか?

+1

あなたはCookieが無効になっ*は*よろしいです?どうしたの? – skaffman

+0

firefoxのCookie除外リストにサイトを追加しました。そして、私のログイン時にJSessionIDが私のURLに追加されます(私のコントロールの外にある既定の生成されたリンク)。そして、私はgetRequestedSessionIdを使ってセッションIDを取得することができます – Jack

答えて

2

クッキーはセッションがサーバー側で作成されている(したがって、サーバ側は何とかこれについてクライアントに通知する必要が無効になっている時にクッキーがデフォルトであると思われるためjsessionidのみ、追加されますアプローチ)。セッションが作成されていない場合は、jsessionidを追加する必要はありません。

少なくとも、<c:url>行が呼び出される前に、JSPの上に次の行を追加してみてください。それはあなたのセッションIDを表示/デバッグするだけでなく、まだ完了していなければ暗黙的にセッションを作成します。

${pageContext.session.id} 

これはテスト目的でのみ行います。それがうまくいくならば、あなたの問題の原因はセッションの手段がないということです。ただそれをそのまま保つ。不必要にセッションを作成する必要はありません。ブラウザがクッキーをサポートしていない場合は、いつでも、c:urlはうまく動作します。ところで


、クッキーが実際に無効になっている場合Firebugでリクエストヘッダを追跡、検証します。サーバーがSet-Cookieヘッダーを応答に設定したにもかかわらず、要求にCookieヘッダーがない場合、クライアント側で実際にクッキーが無効になっていることを意味します。

0

しかし私は、サーバー上のセッションを作成する強制的に、あなたはこのように、あなたのJSPの上に指示ページを追加することができ、BalusCは正しいと思う:

<%@ page session="true" %>