• Struts拦截器(转)


    xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="hello" extends="struts-default">
        
            <!-- 【拦截器配置】 -->
            <interceptors>
            
                <!-- 配置用户自定义的拦截器 -->
                <interceptor name="helloInterceptor" class="cn.itcast.a_interceptor.HelloInterceptor"></interceptor>
                
                <!-- 自定义一个栈: 要引用默认栈、自定义的拦截器 -->
                <interceptor-stack name="helloStack">
                    <!-- 引用默认栈 (一定要放到第一行)-->
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                    <!-- 引用自定义拦截器 -->
                    <interceptor-ref name="helloInterceptor"></interceptor-ref>
                </interceptor-stack>
                
            </interceptors>
            
            <!-- 【执行拦截器】 -->
            <default-interceptor-ref name="helloStack"></default-interceptor-ref>
            
        
            <!-- Action配置 -->
            <action name="hello" class="cn.itcast.a_interceptor.HelloAction">
                <result name="success">/index.jsp</result>
            </action>
        
        
        </package>
    </struts>

    action

    package cn.itcast.a_interceptor;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * Action开发测试
     * @author Jie.Yuan
     *
     */
    public class HelloAction extends ActionSupport{
    
        public HelloAction() {
            System.out.println("1. Action实例创建了");
        }
        
        @Override
        public String execute() throws Exception {
            System.out.println("3. 执行了请求处理的方法: execute");
            return super.execute();
        }
    }

    Interceptor

    package cn.itcast.a_interceptor;
    
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.Interceptor;
    
    /**
     * 自定义拦截器
     * @author Jie.Yuan
     *
     */
    public class HelloInterceptor implements Interceptor{
        
        // 启动时候执行
        public HelloInterceptor(){
            System.out.println("创建了拦截器对象");
        }
    
        // 启动时候执行
        @Override
        public void init() {
            System.out.println("执行了拦截器的初始化方法");
        }
    
        // 拦截器业务处理方法 (在访问action时候执行? 在execute之前执行?)
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
            System.out.println("2. 执行Action之前");
            
            // 调用下一个拦截器或执行Action  (相当于chain.doFilter(..)
            // 获取的是: execute方法的返回值
            String resultFlag = invocation.invoke();
            
            System.out.println("4. 拦截器,业务处理-结束" + resultFlag);
            
            return resultFlag;
        }
        
    
        @Override
        public void destroy() {
            System.out.println("销毁....");
        }
    
    
    }
  • 相关阅读:
    18.06.30 POJ 2488:A Knight's Journey
    18.06.27 POJ 3414:Pots
    18.06.27 15年期末Stupid cat & Doge
    18.06.27 水题整理(3)--1st 上机
    18.6.27 水题整理(2)--2nd 上机
    18.6.27 一些没放上来的水题整理(1)--3rd 上机
    18.06.27 POJ NOI 7217猴子吃桃
    18.06.27 POJ NOI 4977怪盗基德的滑翔翼
    18.06.27 POJ百练 4124海贼王之伟大航路
    18.06.27 POJ1054 The Troublesome Frog
  • 原文地址:https://www.cnblogs.com/Damon-Luo/p/5657502.html
Copyright © 2020-2023  润新知