# Session Tracking & Cookies



## roli23 (24. Jun 2007)

Etwas ist mir noch nicht gaz klar bei Servlets. Wenn ich Cookies im Browser eingeschaltet habe, funktioniert das _Session Tracking_ irgendwie "*automatisch*". Wenn ich aber Cookies abschalte, muss ich mit _URL Rewriting _arbeiten (im Servlet explizit die Methode _encodeURL_ benutzen), da ansonsten _Session Tracking _nicht mehr funktioniert und jedes Mal eine neue Sitzung erzeugt wird. Jetzt aber meine Frage: Gehe ich richtig in der Annahme, dass bei eingeschalteten Cookies der Server diese *automatisch *für das Session Tracking einsetzt, ohne das ich selbst in meinem Servlet Cookies hinzufügen muss? Oder, bin ich auf dem Holzweg und verstehe was ganz falsch. 

Danke.


----------



## Rydl (24. Jun 2007)

ja, das geschieht in der regel automatisch. man kann dem servlet container aber auch die anweisung geben, die sessionid nicht in einem cookie, sondern in einem hidden field zu verstecken. 
tomcat schreibt (jedenfalls bei mir) die sessionid sonst immer automatisch in die url zeile mit rein. 

...aber sorry, was verstehst du denn bitte unter url rewriting? das hat normalerweise eher etwas mit der maskierung der url zu tun, damit google die seiten besser indiziert (wie hier im forum) oder der user die technik hinter der seite nicht erkennen kann (alle seiten enden auf html, wird hier im board auch benutzt)...


----------



## roli23 (24. Jun 2007)

Rydl hat gesagt.:
			
		

> ...aber sorry, was verstehst du denn bitte unter url rewriting? das hat normalerweise eher etwas mit der maskierung der url zu tun, damit google die seiten besser indiziert (wie hier im forum) oder der user die technik hinter der seite nicht erkennen kann (alle seiten enden auf html, wird hier im board auch benutzt)...



Nun, unter _URL Rewriting_ verstehe ich das Anhängen der *Session ID* ans Ende eines URLs. Zum Beispiel:

http://localhost:8080/myapp/PrinterServlet;*jsessionid=2ADD70B875125BFF06EF9011A618FC70*

Laut Buch "core Servlets und JavaServer Pages" von M. Hall wird das so getauft. 

Du sagst, dass Tomcat bei dir immer die Session ID dem URL anhängt. Ich hätte gedacht, dass dies nur dann der Fall ist, wenn Cookies ausgeschaltet sind. Hast du Cookies in diesem Fall ausgeschaltet? Oder, sehe ich es falsch? 



> man kann dem servlet container aber auch die anweisung geben, die sessionid nicht in einem cookie, sondern in einem hidden field zu verstecken.


Wie macht man das? Kannst du es mir in ein paar Sätze erklären oder einen guten Link zu diesem Thema angeben?

Danke.


----------



## Rydl (25. Jun 2007)

roli23 hat gesagt.:
			
		

> Du sagst, dass Tomcat bei dir immer die Session ID dem URL anhängt. Ich hätte gedacht, dass dies nur dann der Fall ist, wenn Cookies ausgeschaltet sind. Hast du Cookies in diesem Fall ausgeschaltet? Oder, sehe ich es falsch?


natürlich nur bei ausgeschaltenen cookies, war undeutlich formuliert 

ja, bei der sache mit dem hidden field muss ich passen. wurde mir mal so erzählt, habs aber nie ausprobiert - über 95% der surfer im netz haben cookies aktiviert, also von daher...
jedenfalls scheint es so, als müsstest du die session per hand in ein hidden field schreiben.


----------

