Sessions ohne Cookies ohne encodeURL?

Marine-of-Hell

Grünschnabel
Hallo liebe Leute!

Ich hoffe Ihr könnt mir helfen und zwar habe ich eine Tomcat Anwendung - besser ein Servlet - wo ich jetzt Cookies deaktivieren muss da einige Endgeräte keine Cookies akzeptieren.
Damit Tomcat seine Sessionverwaltung nicht mehr über Cookies macht, muss ich ja eine context.xml in dem META-INF Ordner ablegen und dort Cookies auf false setzen. Das ist soweit klar - jedoch habe ich jetzt das Problem das bei allen URLs der gewünschte Parameter ;jsession=<SESSIONID> nicht mit angehängt wird.
Wenn ich das jetzt richtig verstanden habe, liegt es primär daran weil die URLs nicht über die encodeURL Methode vom HttpServletResponse Objekt entsprechend encodiert wird. Also wenn ich das jetzt richtig sehe habe ich also aktuell zwei Möglichkeiten - entweder ich finde eine Einstellung oder Filter (UrlRewriteFilter habe ich schon erfolglos getestet) mit dem ich das für jede Url global einstellen kann - oder ich muss durch meinen kompletten Quellcode und jede Url um die Methode encodeURL erweitern.
Letzteres möchte ich natürlich vermeiden, da dies viel Aufwand bedeutet.

Deshalb auf diesem Wege die Frage, ob Ihr dafür vielleicht eine Einstellung oder einen Filter wisst damit ich das global für die Anwendung machen kann!?
Mein Dank ist euch gewiss! :)

Gruß,
Thomas
 
Zuletzt bearbeitet:
Hallo,

in tomcat Cookies auszuschalten aktiviert nicht automatisch das url-rewriting.
Man müsste also jede URL manuell encoden wie du schon befürchtet hast.
Code:
<%= response.encodeURL("<unencoded URL">) %>

Glücklicherweise gibt es schlaue tag-Bibliotheken, die dies automatisch tun. Die Benutzung von passenden Taglibs ist sehr empfehlenswert, wenn man mehr als ein HelloWorld Servlet hat und ein bischen im Thema ist.

Struts hat es in allen URL-produzierenden Tags drinn.
<c:url> gibt es in JSLT
JSF macht es auch automatisch
 
Zurück