ssh中添加拦截器

struts.xml:

  

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<!-- 配置拦截器 -->
<interceptors>
<interceptor name="my" class="cn.sooy.interceptor.SooyInterceptor"></interceptor>
<!--拦截器栈 -->
<interceptor-stack name="stack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="my"></interceptor-ref>
</interceptor-stack>
</interceptors>
<action name="sugController_*" class="sugController" method="{1}">
<result name="show">/WEB-INF/show/show.jsp</result>
<result name="toShow" type="redirect">sugController_show</result>
<result name="toAddSug">/WEB-INF/add/toAddSug.jsp</result>
<result name="index">/index.jsp</result>
<interceptor-ref name="stack"></interceptor-ref>
</action>
</package>
</struts>

类中:

package cn.sooy.interceptor;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.interceptor.Interceptor;

public class SooyInterceptor implements Interceptor {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
public void destroy() {
// TODO Auto-generated method stub

}

@Override
public void init() {
// TODO Auto-generated method stub

}

@Override
public String intercept(ActionInvocation invocation) throws Exception {
//controller的代理类
ActionProxy proxy = invocation.getProxy();
//获取代理类中的方法
String methodName = proxy.getMethod();
if("show".equals(methodName)){
System.out.println("判断名称是否是show");
return invocation.invoke();//放行
}else {
Map<String, Object> session = ActionContext.getContext().getSession();
if("hasLogin".equals(session.get("login"))){
System.out.println("session中已有值");
return invocation.invoke();
}
System.out.println("看来session里既没值也不是去的show方法");
return "toShow";
}
}

}

我会因为您的一个点赞而沾沾自喜,但我更会因为您的一次批评而急不可耐,希望你我共同进步
原文地址:https://www.cnblogs.com/lyaml/p/7654963.html