`
rocye
  • 浏览: 118789 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于用spring AOP实现日志模块,拿session的问题?

阅读更多
接触spring AOP没多久,现在通过用aop实现日志模块时碰到一个问题,我是通过aop拦截器来拦截action调用的一个业务层方法,然后在这个拦截器中做日志处理,日志很明显需要三个方面的信息,当前用户信息(存在httpSession中),当前模块信息,操作结果,现在最大的问题是,第一个用户信息无法从session中拿到,因为spring aop是一个普通的方法与servletContext没有任何关系(据我所了解),在拦截器中,我想拿到当前的httpSession中的User对象,而不是通过传参的方式,应该怎么做?!!!!
分享到:
评论
9 楼 Else 2008-08-28  
这个贴也评为新手贴?真的是想不通
真想看看高手贴是什么样的
8 楼 imp9527 2008-03-29  
acegi 有个工具类···  可以在逻辑层取出你想要的所有东西···
  你可以去看下· 
                
7 楼 cammette 2008-02-26  
最好的办法还是使用threadlocal,简单实用。
6 楼 coreymylife 2008-02-24  
我想可以在拦截器中利用反射得到被调用业务方法的对象,然后想法取得session
5 楼 btprince 2008-02-18  
也许这个帖子对你有所帮助
http://www.iteye.com/topic/156378
4 楼 neptune 2008-02-18  
设置一个初始化的Servlet,如(InitializtionServlet),在init方法中servletContext变量,存到一个全局位置.

做一个接口ISessionHandler,其中有方法getAttribute(name),也就可以了.

User user = (User)session.getAttribute("user");

一切ok.
3 楼 雁行 2008-02-15  
用Filter具体怎么个实现方法啊?
存到ThreadLocal是值还是引用?
2 楼 downpour 2007-10-21  
用类似OpenSessionInView管理Hibernate Session的方式。定义一个Filter,将HttpSession中的内容存到ThreadLocal中,然后在其他层次中取。
1 楼 allenny 2007-10-21  
我也碰到类似的问题,如果我的Action实现SessionAware接口,则无法实现aop的方法拦截,报错找不到代理方法。但是如果不实现SessionAware接口,调用ActionContext.getContext().getSession()返回为null,不知道该怎么解决,真是头疼啊。

相关推荐

Global site tag (gtag.js) - Google Analytics