首页 > 代码库 > struts之拦截器

struts之拦截器

拦截器是为了让一些自己不希望发生的事情进行预防,下面我说一下struts自定义拦截器。

下面我贴下struts.xml里的自己定义的拦截器:

<package name="my" extends="struts-default">
             <interceptors>
                <interceptor name="myInterceptor" class="util.MyInterceptor" />
                
                 <interceptor-stack name="mydefault">
                      <interceptor-ref name="defaultStack" />
                      <interceptor-ref name="myInterceptor" />
                 </interceptor-stack>
             </interceptors>
             <!-- 把自己的拦截器设置成默认的拦截器 -->
             <default-interceptor-ref name="mydefault" />
             
             <!-- 对于反复利用的网页,我们不在action里定义,而定义在全局结果集中,在所有的action里都可以应用 -->
             <global-results>
                 <result name="login">/login.jsp</result>
                 <result name="error">/error.jsp</result>
             </global-results>
             
         </package>

有了拦截器,当然要拦截action,下面我贴下如何拦截action

 <!-- 继承自拦截器类my,每次访问此路径,进行拦截 -->       
        <package name="struts2" namespace="/tutorial" extends="my">
            <action name="HelloWorld" class="tutorial.HelloWorld">
                <result name="hellow">/HelloWorld.jsp</result>
            </action>
        </package>

说明白一点,只要继承了my,就能进行拦截,最后当然是拦截器类。
public class MyInterceptor extends AbstractInterceptor{

	public void init(){

	}

	public void destroy(){

	}

	//对访问的路径进行拦截,执行下面的方法
	public String intercept(ActionInvocation invocation) throws Exception {
       
		System.out.println("asddffawasfee");
		
		return invocation.invoke();
		
	}

}  

struts之拦截器