Tengo un bean de primavera singleton que se invoca en respuesta a alguna acción del lado del cliente. Deseo capturar cierta información sobre el cliente (específicamente la dirección IP). Supongo que la mejor fuente de esta información es el objeto de solicitud. ¿Cómo obtengo acceso al objeto de solicitud desde dentro de mi bean?¿Cómo acceder a ServletRequest desde dentro de un bean de primavera singleton?
Perdóname si esta es una pregunta obvia, soy muy nuevo en Spring.
He intentado sin éxito una cosa .:
((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes())
.getRequest().getRemoteAddr();
Pero eso falló con un IllegalStateException de currentRequestAttributes
. El texto de la excepción sugiere utilizar un RequestContextListener
o RequestContextFilter
He encontrado un reference a cómo configurar el RequestContextListener
, pero todavía no sé a cambiar mi frijol para que pueda acceder a la información de la solicitud.
¡Perfecto, esto funcionó! Acabo de tener el nombre de RequestContextListener en el web.xml. ¿Qué hace el requestDestroyed (ServletRequestEvent) .attributes hacer? – wolfcastle
Correcto, esta no es una aplicación Spring MVC. Lo siento, no lo vi la primera vez que leí tu respuesta. – wolfcastle