Struts2中配置自定义拦截器

原创 2018年04月16日 20:20:19
创建自己的拦截器
第一种方式:
public class MyInterception1 implements Interceptor{
    // 生命周期方法
    // 拦截器的 销毁方法
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }
    // 拦截器的 初始化方法
    @Override
    public void init() {
        // TODO Auto-generated method stub

    }

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

}
第二种方式:
public class MyInterception2 extends AbstractInterceptor{

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

}
第三种方式(最常用的):
public class MyInterception3 extends MethodFilterInterceptor{

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

}
注意:拦截器只能拦截Action,不建议使用前两中方式创建拦截器,拦截器的生命周期(不可能是
每个访问都创建一遍拦截器),随着程序的开始而创建,随着程序的结束而销毁.
在struts.xml中配置自定义的拦截器
准备工作,创建一个测试用的Action和jsp文件.
Action:
public class Demo01Action 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";
    }
}
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 World!
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
struts.xml
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="interception" namespace="/" extends="struts-default">
        <!-- 注册拦截器 -->
        <interceptors>
            <!-- 注册你自己定义的拦截器 -->
            <interceptor name="MyInterception3" class="com.xsd.interception.MyInterception3"></interceptor>
            <!-- 注册拦截器栈 -->
            <interceptor-stack name="myStack">
                <!-- 引入拦截器 -->
                <interceptor-ref name="MyInterception3">
                    <!-- 设置不想拦截的方法 逗号隔开多个方法 -->
                    <param name="excludeMethods">add,update</param>
                </interceptor-ref>
                <!-- 除了引用自己的拦截器 还要使用系统的默认拦截器 -->
                <!-- 建议:先放自己的拦截器 再放系统的拦截器
                    因为自己写的拦截器 可能会用 系统的拦截器封装好的功能
                 -->
                 <!-- 引入系统默认的拦截器栈 -->
                 <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <!-- 3.设置默认走的 拦截器是哪个 -->
        <default-interceptor-ref name="myStack"></default-interceptor-ref>
        <action name="Demo01Action_*" class="com.xsd.interception.Demo01Action" method="{1}">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Koseun/article/details/79965818

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

Struts2中的拦截器是struts2的核心功能之一,不仅提供强大的默认拦截器,还提供了一套自定义拦截器的配置方法。 简单写一下如何自定义一个拦截器并使用: 1.首先要有一个你自己定义的拦截器,实现...
  • kewen303
  • kewen303
  • 2014-02-21 16:31:26
  • 1583

struts2自定义拦截器并配置拦截器使其生效

struts2自定义拦截器并配置拦截器使其生效
  • starjuly
  • starjuly
  • 2016-08-17 23:29:51
  • 3805

struts2中自定义拦截器详解

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

struts2多个自定义拦截器的栈

//struts.xml中: //加入自己的myStack栈,规定好拦截器顺序 //在最下方引用中,不再写拦截器引用,而是自定义拦截器栈的引用 ...
  • Amen_Wu
  • Amen_Wu
  • 2017-01-07 06:00:09
  • 703

struts如何自定义一个拦截器?

如何自定义一个拦截器?自定义一个拦截器需要三步:1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。2 在strutx.xml中注册上一步中定义的拦截...
  • sunyadongwanghbjm
  • sunyadongwanghbjm
  • 2007-10-23 17:55:00
  • 4596

struts2自定义拦截器注解配置方法

自定义拦截器:package com.penjing.interceptor;import javax.servlet.http.HttpServletRequest;import net.sf.js...
  • u014655269
  • u014655269
  • 2015-04-19 23:49:02
  • 1901

在struts2中配置自定义拦截器放行多个方法

在struts2中配置自定义拦截器放行多个方法 源码: 自定义的拦截器类: //自定义拦截器类:LoginInterceptor ; package com.java.action.intercep...
  • qq_23994787
  • qq_23994787
  • 2017-07-27 23:46:16
  • 560

关于Struts2配置多个拦截器

关于Struts2配置多个拦截器
  • cresswang
  • cresswang
  • 2010-10-08 20:59:00
  • 2856

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

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

struts2实现简单action时间拦截器

//jsp index.jsp
  • qq_17025903
  • qq_17025903
  • 2017-05-03 14:17:26
  • 262
收藏助手
不良信息举报
您举报文章:Struts2中配置自定义拦截器
举报原因:
原因补充:

(最多只允许输入30个字)