2012-12-20 9 views

Odpowiedz

14

HttpSession session = request.getSession(); Wewnątrz metody usługę proszę o sesji i wszystko, co ją automatycznie, podobnie jak utworzenie obiektu HttpSession. Nie ma potrzeby generowania unikalnego identyfikatora sesji. Nie ma potrzeby tworzenia nowego obiektu Cookie. Wszystko dzieje się automatycznie za kulisami.

Natychmiast po wywołaniu metody getSession() obiektu żądania nowy obiekt sesji zostaje utworzony przez kontener i generowany jest unikalny identyfikator sesji, aby utrzymać sesję. Ten identyfikator sesji jest przesyłany z powrotem do obiektu odpowiedzi, tak że zawsze, gdy klient wyśle ​​żądanie, powinien także dołączyć identyfikator sesji z obiektem requsest, aby kontener mógł zidentyfikować sesję.

request.getSession(false): Ta metoda sprawdzi, czy sesja już istniała dla żądania, czy nie. Jeśli istniał, to zwróci już istniejącą sesję. Jeśli sesja nie istnieje dla tego żądania, ta metoda zwróci wartość NULL, co oznacza, że ​​ta metoda mówi, że żądanie nie ma poprzedniej sesji.

+0

, ale dlaczego ich wartość zmienia się, jeśli używam znacznika zakotwiczenia, aby przekierować na inną stronę – lata

+0

, gdy przekierowujesz, a następnie straciłeś sesję, więc przy każdym skrypcie Musisz użyć session_start() na początku KAŻDEGO skryptu –

+0

tak nie jestem w stanie odzyskać wartości sesji, a powyższa zmiana wartości następuje po przekierowaniu na inną stronę – lata

14

W skrócie -

request.getSession().getId() - zwraca łańcuch zawierający unikalny identyfikator przypisany do tej sesji. Identyfikator jest przypisywany przez kontener serwletu i zależy od implementacji.

request.getSession(false) - obiekt sesji powrotu lub wartość pusta, jeśli nie ma bieżącej sesji.

5

Pierwszy wiersz zwróci "identyfikator sesji" na serwerze. Druga linia zwróci obiekt sesji. To, co zostanie wydrukowane na system.out będzie request.getSession(false).toString();

Domyślna implementacja toString zwraca "identyfikator obiektu". Object id pod względem sesji to nie to samo co session id. Sesja może być serializowana i replikowana w klastrze, więc w każdym węźle klastra w każdej wirtualnej maszynie wirtualnej może znajdować się jego własny identyfikator obiektu (ale powinien mieć ten sam identyfikator sesji).

Wywołanie get sesja z logiczną jest wyjaśnione tutaj: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean)

2
request.getSession().getId() 

Returs identyfikator sesji.

Request.getsession(false) zwraca już istniejący obiekt sesji. Nie zwróci niczego, tzn. Zwróci wartość null, jeśli sesja nie istnieje. Natomiast z true parametru będzie utworzyć nowy obiekt sesji i powrócić, jeśli sesja nie istnieje

1
request.getSession().getId(); 

Wrócimy unikalny ciąg znaków przypisany do identyfikatora już rozpoczął sesję. Generowanie identyfikatora jest specyficzne dla dostawcy, takie jak Apache, jboss itp.

request.getSession(false); 

To zwróci obiekt sesji powiązanych do konkretnego wniosku, jeżeli przedmiot jest związany sesja zostanie zwrócone lub zwróci null, jeśli jej nie jest uruchamiany przez serwer.

0
request.getSession().getId(); 

spowoduje to wyświetlenie identyfikatora istniejącej sesji.

Request.getsession(false) 

Zwróci sesję, jeśli istnieje, lub zwróci wartość null w przeciwnym wypadku.

i Request.getsession (false) oznacza: daj mi sesję, jeśli istnieje, w przeciwnym razie nie twórz nowej instancji (a tym samym zwróć wartość null).

3
request.getSession() 

Metoda ta sprawdza istniejącej sesji, jeśli istnieje jego powrót inaczej utworzyć nową sesję na życzenie.

request.getSession().getId(); 

Spowoduje to wyświetlenie unikalnego identyfikatora dla tej sesji.

request.getSession(false); 

Metoda ta przyjmuje wartość logiczną Sprawdzić metodę value.This czy istnieje istniejąca obecna sesja dla danego użytkownika (request), jeżeli istnieje to powrót tej sesji w przeciwnym razie zwróci null tj nie będzie tworzyć nową sesję.

Wystarczy, aby dodać więcej informacji do sesji.

request.getSession(true); 

Metoda ta sprawdza istniejącego bieżącej sesji dla tego użytkownika (żądanie) i jeśli sesja istnieje powróci tej sesji lub w inny sposób stworzyć nową sesję dla tego użytkownika.

request.getSession() works like request.getSession(true) 

referencyjny: http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServletRequest.html#getSession%28boolean%29

+0

co zostanie zwrócone, jeśli nie ma sesji i robimy to: 'request.getSession (true) .getId();' – Abhi

0
request.getSession().getId(); 

zwraca unikalny identyfikator przypisany do tej sesji. I ma typ zwracanego ciągu.

request.getSession(false) 

zwraca obiekt HttpSession, jeśli już istnieje, zwraca wartość null.

Powiązane problemy