W e S D
0 1

[JavaWeb基础] 011.Struts2 配置拦截器

   在网页开发中有一个很重要的东西就是拦截器,就是在请求接收到的时候先到拦截器进行一些逻辑处理,例如会话是否过期的验证等。在Struts2中我们可以编写一个拦截器的类,然后在struts.xml中简单配置,然后实现Action的拦截。下面我们来看看配置的具体内容。

  1.书写拦截器的类,要继承com.opensymphony.xwork2.interceptor.AbstractInterceptor

package com.babybus.sdteam.filter;

import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginIntercept extends AbstractInterceptor {

	/**
	 * 序列号
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
            // 获取上下文
	    ActionContext ctx = invocation.getInvocationContext();
	    // 获取request参数
	    Map<String, Object>  params = ctx.getParameters();
	    // 判断是否传递参数,可以写自己的逻辑
            if(params.size()<=0)
            {
        	    System.out.println("没有参数....");
        	    return Action.LOGIN;  
            }
        
            return invocation.invoke();  
	}
}

  2.struts.xml配置

<!-- 定义一个拦截器 -->  
<interceptors>  
    <interceptor name="authority"  class="com.babybus.sdteam.filter.LoginIntercept">  
    </interceptor>  
    <!-- 拦截器栈 -->  
    <interceptor-stack name="mydefault">  
        <interceptor-ref name="defaultStack" />  
        <interceptor-ref name="authority" />  
    </interceptor-stack>  
</interceptors>  

<!-- 定义全局Result -->  
<global-results>  
    <!-- 当返回login视图名时,转入/login.jsp页面 -->  
    <result name="login">/index.jsp</result>  
</global-results>  
	
	
<action name="logOn" class="com.babybus.sdteam.action.LoginAction">    
    <result name="loginSuccess">/UserList.jsp</result>  
    <interceptor-ref name="mydefault" />  
</action> 

 3.通过如上在action中配置定义的拦截器去对指定的Action添加拦截器

 

 

结语

  • 受益,掌握了Struts2 拦截器

 

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 

转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4737634.html

posted @ 2015-08-17 20:27  SD.Team  阅读(328)  评论(0编辑  收藏  举报