struts2拦截器管理日志

1:struts配置
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="prot" extends="json-default">
    <interceptors>
            <interceptor name="protInterceptor"
                class="com.home.cn.web.interceptor.ProtInterceptor">
            </interceptor>
        </interceptors>
<action name="protAction" class="com.asia.home.cn.web.prot.ProtAction">
<result name="list" type="redirect">/main/prot/list.jsp</result>
<result name="csList">/main/cs/list.jsp</result>
<result name="csEdit">/main/cs/edit.jsp</result>
<result name="csInfo">/main/cs/info.jsp</result>
<result name="adInfo">/main/ad/protinfo.jsp</result>
<result name="logout">/logout.html</result>
    <result type="json"/>
    <interceptor-ref name="protInterceptor">
   <param name="includeMethods">ad_edit,upStatus,editByStatus,change_att,delProt</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
</package>
</struts>



2:拦截器类
package com.home.cn.web.interceptor;

import java.util.Date;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.home.cn.contract.entity.SysLogInfo;
import com.home.cn.contract.entity.user.Exiuser;
import com.home.cn.services.log.ISysLogService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class ProtInterceptor extends MethodFilterInterceptor {
    SysLogInfo logInfo = SysLogInfo.getInstance();
    private ISysLogService logService;

    @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {
        String returnValue = invocation.invoke();
        // 取得请求相关的ActionContext实例
        ActionContext ctx = invocation.getInvocationContext();
        HttpServletRequest request = ServletActionContext.getRequest();
        Map session = ctx.getSession();
        String flowNo = (String)request.getAttribute("flowNO"); //流水号
        String operatorMessage = (String)request.getAttribute("operatorMessage"); //操作系统
        String vMessage = (String)request.getAttribute("vMessage"); //是否重复
        String operatorStatus = (String)request.getAttribute("operatorStatus"); //操作状态
        Exiuser user = (Exiuser) session.get("USER_INFO");
        logInfo.setFlowNo(flowNo);
        logInfo.setMessage(operatorMessage);
        logInfo.setStatus(operatorStatus);
        logInfo.setUserName(user.getFsName());
        logInfo.setCreateTime(new Date());
        if(!"请不要重复提交!".equals(vMessage)&&operatorStatus!=null){
            logService.save(logInfo);
        }
        return returnValue;
    }

    @Override
    public Set<String> getExcludeMethodsSet() {
        // TODO Auto-generated method stub
        return super.getExcludeMethodsSet();
    }

    @Override
    public Set<String> getIncludeMethodsSet() {
        // TODO Auto-generated method stub
        return super.getIncludeMethodsSet();
    }

    public void setLogService(ISysLogService logService) {
        this.logService = logService;
    }
    }

你可能感兴趣的:(struts2拦截器)