2011-01-13 8 views
4

Ich habe versucht:C: url nicht jsessionid anhängt, wenn Cookies deaktiviert

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

Aber wenn ich die Seite mit Cookies überprüfen deaktiviert dann die jsessionid nicht angehängt. Weiß jemand, warum das passiert?

+1

Sind Sie sicher, dass Cookies * sind * Behinderte ? Wie hast du das gemacht? – skaffman

+0

Die Seite wurde meiner Ausschlussliste für Cookies in Firefox hinzugefügt. Und die JSessionID wird bei der Anmeldung an meine URL angehängt. (Einige generierte Links außerhalb meiner Kontrolle). Und ich kann die Session-ID mit getRequestedSessionId abrufen – Jack

Antwort

2

Die jsessionid wird nur angehängt, wenn die Cookies deaktiviert sind und, wenn eine Sitzung wurde auf der Server-Seite erstellt (und damit die Server-Seite muss die Kunden über diese irgendwie informieren, für die ein Cookie würde ist die Standardeinstellung Ansatz). Wenn keine Sitzung erstellt wurde, ist es nicht sinnvoll, die jsessionid anzuhängen.

Versuchen Sie, die folgende Zeile an den Anfang Ihrer JSP hinzuzufügen, zumindest bevor die <c:url> Zeile aufgerufen wird. Es druckt/debuggt nicht nur die Sitzungs-ID für Sie, sondern erstellt auch implizit die Sitzung, falls noch nicht geschehen.

${pageContext.session.id} 

Dies nur zu Testzwecken tun. Wenn es funktioniert, dann liegt die Ursache für Ihr Problem darin, dass es einfach keine Mittel für eine Sitzung gab. Behalte es so wie es ist. Sie müssen die Sitzung nicht unnötig erstellen. Für den Fall, wenn es als Sitzung und der Browser keine Cookies unterstützt, funktioniert die c:url gut.


By the way, zu überprüfen, ob die Cookies tatsächlich deaktiviert werden, indem Firebug die Request-Header verfolgen. Wenn in der Anforderung kein Header Cookie vorhanden ist, obwohl der Server in der Antwort einen Header Set-Cookie festgelegt hat, bedeutet dies, dass die Cookies tatsächlich auf der Clientseite deaktiviert sind.

0

Ich denke BalusC richtig ist, aber zu zwingen, eine Sitzung auf dem Server erstellen, können Sie eine Richtlinie Seite auf der Oberseite Ihrer JSP, wie folgt hinzufügen:

<%@ page session="true" %> 
Verwandte Themen