Struts2使用MethodFilterInterceptor来实现方法拦截器

如果要对action类的指定方法进行拦截,拦截器的类需要继承MethodFilterInterceptor


1.继承MethodFilterInterceptor方法重写doInterceptor方法
//实现doIntercept//这样子还是不能去拦截指定方法
public class Myintercetor extends MethodFilterInterceptor  {

public String doIntercept(ActionInvocation invocation) throws Exception {

UserInfo info=(UserInfo) ServletActionContext.getRequest().getSession().getAttribute("user");
if(info!=null&&!info.getName().equals("")&&!info.getPwd().equals(""))
{
return invocation.invoke();

}

 return "login";
}
}
2. 在struts.xml action中配置要拦截的方法和不需要拦截的方法
      <action name="dom_*" class="com.sun.action.DomeAction" method="{1}">
<result name="no">/home.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="dem">
<param name="excludeMethods">add</param><!--指定不需要拦截的方法-->
<param name="excludeMethods">up</param>
<param name="includeMethods">del</param><!--指定需要拦截的方法-->
</interceptor-ref>
</action>

你可能感兴趣的:(Struts2使用MethodFilterInterceptor来实现方法拦截器)