Récupérer la session depuis (presque) n'importe où
Bonjour,
j'ai une petite question sur la récupération de la session dans ma webapp (Spring 3.0.6.RELEASE).
Pour récupérer la session dans certaines couches de l'application, j'utilise ce bout de code :
Code:
1 2 3 4 5 6 7
|
RequestAttributes ra = RequestContextHolder.currentRequestAttributes();
HttpServletRequest curRequest =
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
HttpSession session = curRequest.getSession(); |
J'ai modifié mon web.xml pour lui ajouter le listener RequestContextListener, en plus du ContextLoaderListener qui était déjà présent :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<!-- Spring start context Listener -->
<listener>
<display-name>spring context loader</display-name>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener> |
La question que je me pose c'est si propre de faire comme ça ?
Sachant que c'est une application qui est basée sur GWT. Dans la couche GWT, on hérite de com.google.gwt.user.server.rpc.RemoteServiceServlet, ce qui nous permet aussi d'utiliser :
Code:
1 2 3
|
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(config
.getServletContext()); |
pour récupérer la session.