Struts2知识点四:拦截器Interceptor

前言

拦截器是struts2中最重要的机制,动态的拦截action调用的对象昂,提供一种机制,可以使开发者定义action执行前后执行的代码。

拦截器的配置

定义TheIntercepter类,继承AbstractInterceptor抽象类,实现拦截方法,intercept, 可以执行一定的代码,在 invocation.invoke(); 前后,这个是action激活方法前后执行的代码。最后return result; 回到action中。

代码展示

1拦截器类定义代码:
package com.shengsiyuan.inerceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class TheInterceptor2 extends AbstractInterceptor {

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		
		System.out.println("interceptor2 before...");
		

		
		
		String result = invocation.invoke();
		
		System.out.println("interceptor2 after...");
		
		return result;
	}

}

2struts2 拦截器注册代码

    	
    		
    			shengsiyuan
    		
    		
    		
    		
    		
    			
    		
    		
    		
    	
    	

3拦截器在action中应用代码

       
        
        	/tokenSuccess.jsp
        	/tokenFial.jsp
        	
        	
        	
        

struts2的机制中,就是依靠拦截器实现这些功能的,内置的拦截器构成了
拦截器栈也就是 defaultStack; 因此我们需要手动引入默认的拦截器栈。

拦截方法

除了对action进行拦截之外,我们还可以对方法进行拦截。

拦截器的定义,配置没有太多的不同,在action中定义拦截器时,有所区别
代码如下:

        
        	
        		${usernameAndPassword}
			
			
				execute,myExecute
				
			
			
        

针对interceptor3我们设定其中的includeMethods 参数,里面放置了拦截的方法。

你可能感兴趣的:(框架,struts2)