tutorial que mvc formulario example español ejemplo spring-mvc httprequest httpsession request-mapping

spring-mvc - que - spring mvc tutorial español pdf



Spring 3 MVC accede a HttpRequest desde el controlador (2)

Sé que es una vieja pregunta, pero ...

También puedes usar esto en tu clase:

@Autowired private HttpServletRequest context;

Y esto proporcionará la instancia actual de HttpServletRequest para su uso en su método.

Me gustaría manejar los atributos de solicitud y sesión yo mismo en lugar de dejarlo en primavera @SessionAttributes , para el inicio de sesión de manejo de cookies, por ejemplo.

Simplemente no puedo entender cómo podría acceder a la HttpRequest desde un controlador, necesito una forma de ir a una capa por encima de @RequestAttribute y acceder a la propia HttpRequest . Con Stripes in se utiliza para esto al implementar ApplicationContext y llamar a getAttribute() .

Además, pasar HttpServletRequest como parámetro parece no funcionar:

@RequestMapping(value="/") public String home(HttpServletRequest request){ System.out.println(""+request.getSession().getCreationTime()); return "home"; }

El método anterior no imprime nada.

¿Tienes algún consejo sobre esto?


Spring MVC le proporcionará HttpRequest si lo agrega a la firma de su método de control:

Por ejemplo:

/** * Generate a PDF report... */ @RequestMapping(value = "/report/{objectId}", method = RequestMethod.GET) public @ResponseBody void generateReport( @PathVariable("objectId") Long objectId, HttpServletRequest request, HttpServletResponse response) { // ... // Here you can use the request and response objects like: // response.setContentType("application/pdf"); // response.getOutputStream().write(...); }

Como puede ver, simplemente agregar los objetos HttpServletRequest y HttpServletResponse a la firma hace que Spring MVC pase esos objetos a su método de controlador. También querrás el objeto HttpSession .

EDITAR: Parece que HttpServletRequest / Response no funciona para algunas personas en Spring 3. Intente utilizar los objetos Spring WebRequest / WebResponse como señaló Eduardo Zola.

Recomiendo encarecidamente que eche un vistazo a la lista de argumentos admitidos que Spring MVC puede inyectar de manera automática en sus métodos de manejo.