# Session neu!?



## Generic1 (4. Okt 2010)

Hallo,

ich hätte eine Frage zu session da ich schon lange nicht mehr mit Sessions gearbeitet hab.
Und zwar hab ich folgende Methode unten, welche von doGet oder doPost aufgerufen wird: 


```
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            final HttpSession session = request.getSession(false);
            final boolean sessionNew = session.isNew();
            System.out.println("In der Methode processRequest, Das ist die Session: " + session + ", " + sessionNew);
            out.println("Die Session ist neu: " + sessionNew);
            }
        finally {
            out.close();
            }
        }
```

die Methode request.isNew gibt immer "false" zurück, obwohl diese ja "true" zurückgeben müsste, wenn ich die Methode das erste mal aufrufe?
Weiß jemand warum das so ist?
lg


----------



## FArt (4. Okt 2010)

Generic1 hat gesagt.:


> die Methode request.isNew gibt immer "false" zurück, obwohl diese ja "true" zurückgeben müsste, wenn ich die Methode das erste mal aufrufe?
> lg



Nicht unbedingt.
Das sagt die JavaDoc:


> public boolean isNew()
> 
> Returns true if the client does not yet know about the session or if the client chooses not to join the session. For example, if the server used only cookie-based sessions, and the client had disabled the use of cookies, then a session would be new on each request.
> 
> ...



Ich denke mal passendes Logging und Debugging dürfte dir sagen was vor sich geht.


----------



## SlaterB (4. Okt 2010)

verwende beim Logging auch einen
Java 2 Platform EE v1.3: Interface HttpSessionListener
wenn du da sessionCreated mit Uhrzeit notierst und außerdem weiß wann welcher Request war, dann könnte sich langsam ein Bild ergeben


----------



## Generic1 (4. Okt 2010)

Wie kann ich dann am besten überprüfen, ob ein Client (Browser)- Request neu beim Server angekommen ist oder nicht?
Bzw. was ich überprüfen möchte ist, wieviel Clients zu einem bestimmten Zeitpunkt mit dem Server verbunden sind.
lg


----------



## SlaterB (4. Okt 2010)

session.isNew(); ist anscheinend eine gute Möglichkeit, hast du nur vielleicht nicht in allen Request drin, 
HttpSessionListener ist dazu vielleicht sauberer,
nochmal ein Hinweis auf mein vorheriges Posting, falls übersehen,

und warum ich überhaupt schreibe: ist Thema erledigt (ohne Hinweis) oder Markierung falsch gesetzt?


----------



## Generic1 (4. Okt 2010)

Thema ist erledigt.
lg


----------



## FArt (4. Okt 2010)

Generic1 hat gesagt.:


> Thema ist erledigt.
> lg



Und, was war das Problem und wie hast du es jetzt gefunden? Ist in so einem Forum immer eine interessante Information...


----------



## Generic1 (4. Okt 2010)

Also, ich habe in meinem Web- Projekt eine JSP (als Welcome- Seite) und dann noch ein Servlet.


```
session.isNew()
```
 hab ich im Servlet stehen gehabt, das Problem war jetzt, wenn die JSP schon aufgerufen wurde, dann wird da anscheinend eine Session erzeugt und wenn ich im Servlet dann abfrage ob die Session neu ist, bekomme ich dann false zurück, da die Session nur in der JSP, nicht aber im Servlet neu ist.


----------

