第一步:
<
interceptors>
<interceptor name="auditInterceptor" class="com.pulse.ipmanager.interceptor.AuditInterceptor"></interceptor>
<interceptor-stack name="auditInterceptorStack">
<interceptor-ref name="auditInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
。。。。。
<action name="loginAction"
class="com.pulse.ipmanager.action.UserLoginAction" method="loginUser" >
<result name="success" type="redirectAction">
<param name="actionName">listWebUsersAction</param>
<param name="namespace">/</param>
</result>
<result name="input">pages/SignOn.jsp</result>
<result name="error">pages/signOnError.jsp</result>
<interceptor-ref name="auditInterceptorStack">
<param name="includeMethods">loginUser</param>
</interceptor-ref>
</action>
第二步:
public
class AuditInterceptor extends AbstractInterceptor{
private Date dateTime;
private String modifiedby;
private String action;
private String field;
private String input;
protected Logger log = Logger.getLogger(getClass());
public void init() {
}
@Override
public String intercept(ActionInvocation ai) throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
Map session = ai.getInvocationContext().getSession();
Object action = ai.getAction();
String method = ai.getProxy().getMethod();
ai.invoke();
if (action instanceof UserLoginAction){
if(method.equals("loginUser")){
field = "Login";
this.action = "Login";
WebUsers webuser= (WebUsers)request.getSession().getAttribute(
"webUser");
input = "User:" + webuser.getUserName();
modifiedby= webuser.getUserName();
dateTime=new Date();
addSysLog();
}
}
return Action.SUCCESS;
}
private void addSysLog(){
WebAuditLogHome auditLogHome=
new WebAuditLogHome();
WebAuditLog auditlog=
new WebAuditLog(dateTime, modifiedby, this.action, field, input);
auditLogHome.attachDirty(auditlog);
}
}
分享到:
相关推荐
struts2 spring ibatis整合,以及用户登陆时的拦截器操作,并记录日志的操作
用sevrlet模拟Struts2的简单功能。从拦截请求、解析自定义xml数据文件以及动态生成action的代理去执行目标方法,并实现了简单的日志拦截【interceptor】
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
6.采用二进制运算实现权限控制,利用interceptor实现粗粒度控制以及重写struts2 标签实现细粒度权限控制.采用二位运算能够使得权限运算更加快捷,而且极大 降低 session存储量,有效利用服务器资源. .系统中通过 cxf ...
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...
action:存放struts2控制类的包 dao:数据库访问封装 enm:系统中使用到的常量包,这里不是用的常量,用的是枚举替代常量 entity:hibernate对应的orm与数据库表一一对应的实体类 filter:Log4jFormatFilter(格式化...
9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过StatelessSession来进行批量操作 9.4.3 通过HQL来进行批量操作 ...
9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过StatelessSession来进行批量操作 9.4.3 通过HQL来进行批量操作 ...
9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过StatelessSession来进行批量操作 9.4.3 通过HQL来进行批量操作 ...
9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过StatelessSession来进行批量操作 9.4.3 通过HQL来进行批量操作 ...
• Struts • Webwork • Tapestry • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在...