我想把操作员进入系统的时间和所做的操作以及退出系统的时间记录下来,改怎么做啊?
我开发环境是ssh2恳请大家帮帮忙,我刚开始学,一头雾水啊!指引个方向也行。
我开发环境是ssh2恳请大家帮帮忙,我刚开始学,一头雾水啊!指引个方向也行。
解决方案 »
- dao.getHibernateTemplate().find 查count(*)
- 我怎么对jsp表中的学生的成绩的排名啊
- hibernate-CRM系统跟据员工ID查管理权限HQL怎么写?
- java 上传附件时显示进度条的代码
- 【在https站点中,怎么访问一个动态生成url 的http 网站】
- 多jsp页面连接Sql server 2000数据库问题
- JSP出现的问题,各位大侠帮忙看下是什么原因,该如何解决!
- LocalStrings.properties有何作用?为什么没它我的servlet就不能运行?
- 在线结帐:jsp有没有判断数组中是否含有一个元素的函数?
- tomcat中的jsp 编译对javabean有特殊要求吗?
- 求论坛帖子数据库设计解析
- weblogic8.1.3.0发布war出错。比较急,希望各位大哥帮帮忙!谢谢!
过滤所有对Action的请求,在过滤器中取Session中的userid信息,加上请求的目标Action名称,和当前系统时间一起,记录在数据库中(或写日志文件)就行了。
/**
* 日志记录拦截器,用于记录用户每次操作的位置以及时间
*/
public class LogInfoInterceptor extends AbstractInterceptor
{
private static final long serialVersionUID = -5318834050025993327L;
private static final Log log = LogFactory.getLog(LogInfoInterceptor.class); /*
* (non-Javadoc)
* @see com.opensymphony.xwork2.interceptor.AbstractInterceptor#intercept(com.opensymphony.xwork2.ActionInvocation)
*/
@SuppressWarnings("unchecked")
@Override
public String intercept(ActionInvocation arg0) throws Exception
{
// log = LogFactory.getLog(arg0.getAction().getClass());
long beforeInvokeTime = System.currentTimeMillis();
String invokeResult = arg0.invoke();
long afterInvokeTime = System.currentTimeMillis();
if (ServletActionContext.getRequest() != null)
{
log.info(getLogInfo(arg0, beforeInvokeTime, afterInvokeTime));
}
return invokeResult;
} /**
* 拼装执行时的日志内容,格式:用户ID[xxx],用户姓名[xxx]执行 类:xxx 方法:xxx 耗时:[xxx]毫秒
* @param arg0
* @param beforeInvokeTime
* @param afterInvokeTime
* @return
*/
@SuppressWarnings("unchecked")
private String getLogInfo(ActionInvocation arg0, long beforeInvokeTime, long afterInvokeTime)
{
String tmpInfo = "";
if (ServletActionContext.getRequest().getAttribute("logInfo") != null)
{
tmpInfo = ServletActionContext.getRequest().getAttribute("logInfo").toString();
} StringBuffer invokeLogInfo = null;
Map<String, Object> sessionMap = arg0.getInvocationContext().getSession();
if (sessionMap != null && !sessionMap.isEmpty() && sessionMap.get(PortalConstants.SESSION_MEMBER_KEY) != null)
{
Member member = (Member) sessionMap.get(PortalConstants.SESSION_MEMBER_KEY);
invokeLogInfo = new StringBuffer("用户ID[");
invokeLogInfo.append(member.getMemberId());
invokeLogInfo.append("],用户姓名[");
invokeLogInfo.append(member.getName());
invokeLogInfo.append("]");
}
else
{
invokeLogInfo = new StringBuffer("游客");
} String invokeClassName = arg0.getAction().getClass().getName();
String executeMethodName = arg0.getProxy().getMethod();
long invokeTime = afterInvokeTime - beforeInvokeTime; return invokeLogInfo.append(",执行").append(tmpInfo).append("类[").append(invokeClassName).append("],方法[").append(
executeMethodName).append("],耗时[").append(invokeTime).append("]毫秒").toString();
}
}
@ResponseBody
@OperationDescription(type=OperationType.UPDATE, entityType="Config",
description="更新系统配置参数:${#config.configKey} = ${#config.configValue}")
public ResponseData updateConfig(Config config) {
configService.updateEntity(config);
return ResponseData.SUCCESS_NO_DATA;
}
这段代码
是什么意思呢?