struts框架--自定义拦截器

10人阅读 评论(0) 收藏 举报
分类:

一、创建方式一,实现Interceptor接口

package com.lanou3g.intercept;

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

/*
 * 方式一
 * 拦截器
 * 实现Interceptor接口
 */
public class MyIntercept1 implements Interceptor {
       //声明周期方法
    //拦截器声明周期(不能是每个访问都创建一遍拦截器)
    //随着程序大的开始而创建
    //随着程序的结束而销毁
 //初始化
    @Override
    public void init() {
        // TODO Auto-generated method stub

    }

//拦截方法
    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

    //销毁方法
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }
}

二、创建方式二,继承AbstractInterceptorL类

package com.lanou3g.intercept;

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

/*
 * 方式一
 * 拦截器
 * 实现Interceptor接口
 */
public class MyIntercept1 implements Interceptor {
       //声明周期方法
    //拦截器声明周期(不能是每个访问都创建一遍拦截器)
    //随着程序大的开始而创建
    //随着程序的结束而销毁
 //初始化
    @Override
    public void init() {
        // TODO Auto-generated method stub

    }

//拦截方法
    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

    //销毁方法
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }
}

三、自定义拦截器方式三–继承方法过滤拦截器MethodFilterInterceptor

//定义的拦截器package com.lanou3g.intercept;

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

public class MyIntercept3  extends MethodFilterInterceptor{

    @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {
        //前处理
      System.out.println("前处理");
        //放行方法
        //所有拦截器都执行完毕后,
        //会拿到一个字符串这个字符串就是Action类
        //执行完毕后,返回的字符串
    String result = invocation.invoke();
        //后处理

        sout("后处理");
    }
}
测试类
package com.lanou3g.intercept;

import com.opensymphony.xwork2.ActionSupport;
/*
 * 自定义拦截器
 * 可以指定拦截或不拦截那些方法
 * 
 */
public class Demo01 extends ActionSupport {

        public String add() {
            System.out.println("add");
            return  "success";
       }

        public String delete() {
            System.out.println("delete");
            return  "success";
       }

        public String update() {
            System.out.println("update");
            return  "success";
       }

        public String find() {
            System.out.println("find");
            return  "success";
       }

}

//配置strues中的拦截器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>
  <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    <package name="inter" namespace="/" extends="struts-default">
    <!-- 注册拦截器 -->
    <interceptors>
      <!--1.注册你自己定义的拦截器  -->
      <interceptor name="MyIntercept3" class="com.lanou3g.intercept.MyIntercept3">  </interceptor>
        <!--2.注册拦截器栈  -->
        <interceptor-stack name="myStack">
            <!--引入拦截器  -->
             <interceptor-ref name="MyIntercept3">

                <!--设置不想拦截的方法 逗号隔开多个不想拦截的方法 
                inexcludeMethods设置要拦截的方法
                excludeMethods设置不拦截的方法
                -->
                  <param name="excludeMethods">add,update</param>

             </interceptor-ref>

            <!--除了应用自己的拦截器,还要使用系统的默认拦截器  -->
               <!--建议:先放自己的拦截器,再放系统的拦截器 
                  自己写的拦截器,可能会用到系统的拦截器封装好的功能
                -->
            <!--引入系统,默认的拦截器栈  -->   
               <interceptor-ref name="defaultStack"></interceptor-ref>
        </interceptor-stack>

    </interceptors>
    <!--设置默认走的拦截器栈是哪个  -->
    <default-interceptor-ref name="myStack"></default-interceptor-ref>

    <!--配置登录Action  -->
        <action name="Demo01_*" class="com.lanou3g.intercept.Demo01" method="{1}">
           <result name="success" >/hello.jsp</result>
      </action>

    </package>
  </struts>

jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello word!!
</body>
</html>
查看评论

ueditor实例

  • 2015年08月13日 09:32
  • 8.33MB
  • 下载

Spring MVC--13.自定义拦截器

  • 2017年09月05日 20:24
  • 12.46MB
  • 下载

struts自定义拦截器的三种方式

struts自定义拦截器 有三种方式: 方式一、实现Interceptor 接口 public interface Interceptor extends Serializable{ ...
  • a1659177869
  • a1659177869
  • 2015-07-02 23:15:30
  • 1087

自定义拦截器的实现以及拦截器的详细配置

  • 2013年04月07日 21:50
  • 5.12MB
  • 下载

struts2中自定义拦截器详解

1:register.jsp String path = request.getContextPath(); String basePath = request.getScheme()...
  • pangqiandou
  • pangqiandou
  • 2016-12-03 23:10:26
  • 908

SpringMVC自定义拦截器(资源和权限管理)

1.DispatcherServlet     SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。     Dispatche...
  • zmx729618
  • zmx729618
  • 2017-11-08 14:28:31
  • 277

springmvc自定义拦截器

Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口。 直接看下例子: package com....
  • zwz568017880
  • zwz568017880
  • 2015-07-15 09:14:36
  • 2099

javaweb之struts2学习四---自定义拦截器

1.struts2的拦截器有三种       默认拦截器,模型驱动拦截器,自定义拦截器 2.自定义拦截器的步骤    2.1 先建立一个普通类,继承于AbstractIntercept,实现in...
  • zyp1987106
  • zyp1987106
  • 2017-11-07 00:24:21
  • 97

自定义拦截器的两种写法

public class LoggingInterceptor implements Interceptor { //两个拦截器取其一即可,另一个直接删除 //POST自定义拦截器 ...
  • qq_38127722
  • qq_38127722
  • 2017-12-15 12:15:07
  • 183

Struts2 自定义拦截器配置和使用

Struts2中的拦截器是struts2的核心功能之一,不仅提供强大的默认拦截器,还提供了一套自定义拦截器的配置方法。 简单写一下如何自定义一个拦截器并使用: 1.首先要有一个你自己定义的拦截器,实现...
  • kewen303
  • kewen303
  • 2014-02-21 16:31:26
  • 1584
    个人资料
    持之以恒
    等级:
    访问量: 3064
    积分: 738
    排名: 7万+
    文章存档