2011-09-08 26 views
19

Jestem nowym do wiosny MVC i próbuję uzyskać informacje o sesji w mojej klasie kontroleraJak uzyskać informacje o sesji w Spring MVC 3

w tej chwili używam

HttpSession objHttpSession = żądanie .getSession (true);

jeśli chcę uzyskać czas tworzenia sesji i identyfikator sesji Używam

objHttpSession.getCreationTime(); objHttpSession.getId();

Chciałbym wiedzieć, czy istnieje jakiś specjalny sposób, aby uzyskać szczegóły sesji MVC?

Dzięki z góry

Odpowiedz

34

I zazwyczaj zadeklarować parametr typu HttpSession w mojej metody kontrolera Wiosna MVC kiedy potrzebują dostępu szczegółów sesji.

Na przykład:

@RequestMapping("/myrequest") 
public void handleMyRequest(HttpSession session, ...) { 
    ... 
} 

Myślę, że to najprostszy sposób, ale nie wiem, czy to pasuje do Twoich potrzeb.

15

można uzyskać sesji w Spring MVC tak:

ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); 
HttpSession session = attr.getRequest().getSession(); 

Sposób currentRequestAttributes zwrócić RequestAttributes obecnie związany z wątku w którym znajduje się aktualny wniosek i od tego wniosku można uzyskać sesji. Jest to przydatne, gdy musisz zdobyć sesję w klasie nie-wiosennej. W przeciwnym razie można po prostu użyć:

@RequestMapping(...) 
public void myMethod(HttpSession session) { 
} 

Wiosna wstrzyknie HttpSession wystąpienie w sposobie swojego kontrolera.

Powiązane problemy