fun

 

10分钟学懂Struts 2.0 拦截器

Struts 2.0拦截器

简介

 

Struts 2.0 中的拦截器,要实现com.opensymphony.xwork2.interceptor.Interceptor接口,在struts.xml中配置。可以用拦截器来完成调用Action业务逻辑之前的预处理或是之后的善后处理。还可以通过配置多个拦截器来满足action需求。

 

Interceptor stack是由多个拦截器组成的拦截器组,在拦截器组中可以对每一个拦截器映射。所有进行配置拦截器时,不必对每一个拦截器进行配置,而只需对interceptor stack进行配置即可。在struts 2中默认配置了一个全局interceptor stack,包括Exception InterceptorValidation Interceptor等。

 

实例

 

在这个实例当中,我将配置一个时间拦截器,用来统计每个action的请求时间。

package interceptor;      
     
import com.opensymphony.xwork2.ActionInvocation;      
import com.opensymphony.xwork2.interceptor.Interceptor;      
/**
*author by 
http://www.bt285.cn http://www.5a520.cn
*/
     
public class ActionTimer implements Interceptor{      
    
public String intercept(ActionInvocation next) throws Exception {      
        
long t1 = System.currentTimeMillis();      
        String s
= next.invoke();      
        
long t2 = System.currentTimeMillis();      
        System.out.println(
"Action "+next.getAction().getClass().getName()+" took "+(t2-t1)+" millisecs");      
        
return s;      
    }
      
          
    
public void init() {      
    }
      
    
public void destroy() {      
    }
      
}
  
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>     
<!DOCTYPE struts PUBLIC      
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"      
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>     
<struts>     
    
<package name="interceptor" extends="struts-default">     
        
<interceptors>     
            
<interceptor name="actiontimer"     
                class
="interceptor.ActionTimer" />     
     
            
<interceptor-stack name="demostack">     
                
<interceptor-ref name="defaultStack" />     
                
<interceptor-ref name="actiontimer" />     
            
</interceptor-stack>     
        
</interceptors>     
        
<default-interceptor-ref name="demostack" />     
        
<action name="InterceptorDemo"     
            class
="interceptor.action.InterceptorDemo">     
            
<result>http://www.bt285.cn /interceptor/interceptordemo.jsp</result>     
        
</action>     
    
</package>     
     
</struts>   

interceptordemo.jsp

<html>     
<head>     
     
</head>     
<body>     
</body>     
</html>   

 

 

posted on 2009-05-08 20:31 fun 阅读(1508) 评论(0)  编辑  收藏

导航

统计

常用链接

留言簿(11)

随笔档案

友情链接

搜索

最新评论

阅读排行榜

评论排行榜