日期:2014-05-19  浏览次数:20632 次

如何记录用户的操作
一个用户登录,退出,对系统中的某个模块进行增删改操作,都要记录到数据库的某张表中,记录:某个用户在某个时候,对某个模块进行了什么样的操作,
 思路1.在每次请求到一个ACTION时,都额外的往数据库中插入一条数据,记录一下某个用户什么时候做了什么操作(但是现在系统一期开发已完成,再一个一个的去找action,再往其中加入一条记录,太麻烦,且有违设计模式思想)
 思路2.以前用spring的时候貌似有过拦截器之类的东东,可以考虑一下,但是现在的系统用的就struts1+hibernate实现,真还不知道如何去处理,请高人指教一二,不胜感激!

------解决方案--------------------
自己写个代理模式,然后拦截!看看代理模式!
------解决方案--------------------
java技术交流群100756746,希望大家加入,我们共同讨论,共同进步!
------解决方案--------------------
看看 springAOP 切面编程
------解决方案--------------------
在web.xml配置一个监听器 监听路径为/*不就行了吗?
------解决方案--------------------
struts1的所有Action继承自己定义的一个BaseAction,这个BaseAction才是继承struts里面的那个,在BaseAction中记日志。
------解决方案--------------------
可以使用spring的aop也完成 挺方便的 可插拔的
------解决方案--------------------
写一个filter,implements Filter interface
在web.xml配置一下
<filter-mapping>
<filter-name>coding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>coding</filter-name>
<filter-class>com.util.Encoding</filter-class>
</filter>
------解决方案--------------------
楼主 登录,退出问题(sessionListenner)解决啊
 login创建一个log,如果关闭浏览器或者超时也写入log 

系统中的某个模块进行增删改操作
 这个写一个用Sping做一个AOP


结合起来肯定可以实现楼主要的功能

------解决方案--------------------
如果楼主如果没有用Spring
 又想做第二个效果(记录系统中的某个模块进行增删改操作)
struts中的RequestProcessor可以帮你实现
 当时有一个弱点,只能记录 某用户何时进行了何种操作,但是无法得知操作中的具体细节和操作结果
仅仅知道操作过而已

谁有好办法,出出招!