2011-09-08 7 views
19

Je suis nouveau au printemps MVC et je suis en train d'obtenir les informations de session dans ma classe contrôleurComment obtenir des informations de session dans Spring MVC 3

Je suis en ce moment en utilisant

HttpSession objHttpSession = demande .getSession (true);

si je veux avoir le temps de création de la session et la session Id J'utilise

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

Je veux savoir s'il existe une méthode spécifique au Spring MVC pour obtenir les détails de la session?

Merci à l'avance

Répondre

34

Je déclare généralement un paramètre de type HttpSession dans ma méthode de contrôleur Spring MVC quand j'ai besoin d'accéder aux détails de la session.

Par exemple:

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

Je pense que c'est la façon la plus simple, mais je ne sais pas si elle répond à vos besoins.

15

Vous pouvez obtenir la session au printemps MVC comme ceci:

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

La méthode currentRequestAttributes retourner le RequestAttributes actuellement lié au thread dans lequel il y a une demande en cours et de cette demande, vous pouvez obtenir la session. Ceci est utile lorsque vous devez vous procurer la session dans une classe autre que le printemps. Sinon, vous pouvez simplement utiliser:

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

printemps injecterez HttpSession exemple dans la méthode de votre contrôleur.