问题描述
请问在java web项目中如何做到保留用户操作痕迹的功能? 我想要实现的效果是: 当XX用户登录到系统后,记住XX的每一个操作。记录结果如,XX于XX时间进入XX页面做了XX(增删改)操作...于XX时间退出系统(不论用户是关闭浏览器,点击系统提供的退出按钮还是直接关闭电脑). 大概的想法就如上所述,如果有什么没有说清楚的地方,请给我留言,谢谢^_^
解决方案
SSH框架使用中,每一个框架都提供给用户记录日志的相关接口,你可以使用Struts中的Log4j将日志以不同方式记录,如存储到数据库中,也可以使用Hibernate提供给你的一个接口并实现该接口实现,甚至可以使用web.xml文件:<context-param><param-name>webAppRootKey</param-name><param-value>swing.root</param-value></context-param><!--=================由Sprng载入的Log4j配置文件位置======================--><context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/classes/log4j.properties</param-value></context-param><!--==========Spring默认刷新Log4j配置文件的间隔,单位为millisecond=============--><context-param><param-name>log4jRefreshInterval</param-name><param-value>60000</param-value></context-param><!--==========配置Spring log4j Config loader==========--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>log4j.properties文件:#LOGGERS#TRACE DEBUG INFO WARN ERROR FATALlog4j.rootLogger=ERROR,console,file#APPENDERS#ConsoleAppender输出到控制台log4j.appender.console=org.apache.log4j.ConsoleAppender#DailyRollingFileAppender每天产生一个日志文件#RollingFileAppender文件大小到达指定尺寸的时候产生一个新的文件#FileAppender 文件log4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File=${swing.root}/WEB-INF/logs/swing.log#LAYOUTS#SimpleLayout包括日志消息的级别和信息字符串#PatternLayout可以灵活的指定布局模式#HTMLayout以HTML表格形式布局#TTCCLayout包括日志产生的时间,线程和类别等信息log4j.appender.console.layout=org.apache.log4j.SimpleLayoutlog4j.appender.file.layout=org.apache.log4j.PatternLayout# %d自程序开始后消耗的秒数 %t表示日志记录请求生成的线程 %p表示日志语句的优先级别# %r与日志请求相关的类别名称 %c日志消息所在的类名 %m%n表示日志消息的内容log4j.appender.file.layout.ConversionPattern=%t %p %c-- %m%n--%d{yyyy-mm-dd hh:mm:ss}
解决方案二:
异常退出怎么捕获呢?比如IE死了
解决方案三:
这种“操作日志记录”是很多项目中都采用的“用户行为痕迹记录”方式,特别是敏感和重要的数据操作。实现的方法有很多种,像拦截器、切面AOP、日志Log。主要的原理就是用户在进行操作的时间点触发“操作痕迹记录”事件来记录用户操作信息。用户操作痕迹信息可以按用户行为、功能点、系统模块、操作群体、敏感等级...来分类记录;记录的操作信息保存在数据库DB、文本Txt、日志文件;有点像流水号~~用户登录到系统后,通过SessionCookie获取到用户信息,记录用户操作痕迹记录。用户退出系统、关闭窗口、关闭电脑、的时候可以通过:1.用户退出系统时,注销Session或Cookie时触发事件,记录用户退出系统操作。2.关闭窗口时,会触发一个页面窗口的unLoad()事件,记录用户退出系统操作。
解决方案四:
想简单一点的话,就使用log4j,想复杂的话,使用AOP最好.
解决方案五:
具体实现,我建议AOP。
解决方案六:
相当与用户行为日志吧。可以在每个用户事件发生的时候,把这部分操作记录下来。可以存放到数据库,或者日志文件。你需要做的是:1.定义用户行为2.设计存储方式,结构3.找到行为发生的代码行,插入记录行为的代码。