2011-09-08 20 views
19

Soy nuevo en Spring MVC y yo estoy tratando de conseguir la información de la sesión en mi clase controladorComo llegar información de la sesión en la primavera de MVC 3

En este momento estoy usando

HttpSession objHttpSession = solicitud .getSession (verdadero);

si quiero obtener el tiempo de creación de la sesión y el ID de sesión que estoy usando

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

Quiero saber si hay alguna forma específica de primavera MVC para obtener los detalles de la sesión?

Gracias de antemano

Respuesta

34

lo general declarar un parámetro de tipo HttpSession en mi método de controlador de Spring MVC cuando necesito para acceder a detalles de la sesión.

Por ejemplo:

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

Creo que es la forma más sencilla, pero no sé si se ajusta a sus necesidades.

15

Usted puede obtener la sesión en Spring MVC así:

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

El método currentRequestAttributes devolver el RequestAttributes actualmente unido al hilo en el que hay una petición actual y de que la solicitud se puede obtener de la sesión. Esto es útil cuando necesita obtener la sesión en la clase que no es de primavera. De lo contrario, sólo puede utilizar:

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

primavera inyectará HttpSession ejemplo, en el método de su controlador.

Cuestiones relacionadas