拦截器:就是在訪问action之前。对其进行拦截!能够在拦截器中做一些逻辑的处理!

比方权限验证。没有权限就不给予訪问!

拦截器等效于servlet中的过滤器!

使用拦截器步骤:
1.定义自己的拦截器:
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
/**
 * 定义自己的拦截器,须要实现Intercept接口!
 *
 */
public class MyInterceptor implements Interceptor{
     public void destroy()
{
          
     }
     public void init()
{
          
     }
     /**
      * 重写intercept方法,在该方法中实现自己的拦截逻辑!
      * 调用invocation.invoke()方法放行action!
      */
     public String
intercept(ActionInvocation invocation) throws Exception
{
          System. out.println("图片上传" );
           return invocation.invoke();
//        return null;//不运行action
     }
}
2.在struts-interceptor.xml的配置文件里声明:
  须要在struts.xml中包括上述配置文件!

struts-interceptor.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" namespace="/" extends="struts-default" >
           <!-- 声明拦截器,拦截器声明应该位于action之前-->
           <interceptors>
               <!--声明自定义的拦截器
-->
               <interceptor name= "imageInterceptor"
                    class= "cn.itheima03.struts2.interceptor.MyInterceptor" ></interceptor>
               <!-- 声明拦截器栈
-->
               <interceptor-stack name= "myInterceptor">
                    <interceptor-ref name="imageInterceptor" ></interceptor-ref>
                    <interceptor-ref name="defaultStack" ></interceptor-ref>
               </interceptor-stack>
           </interceptors>
           <!-- 改动默认的拦截器栈
-->
           <default-interceptor-ref name="myInterceptor" ></default-interceptor-ref>
           <!--声明action,在运行action之前。会先运行拦截器中的方法 
-->
           <action name= "interceptorAction_*" method ="{1}"
                class= "cn.itheima03.struts2.interceptor.InterceptorTestAction" >
               <result>
                   index.jsp
               </result>
           </action>
     </package >
</struts>
3.定义action:
import com.opensymphony.xwork2.ActionSupport;
public class InterceptorTestAction extends ActionSupport{
     public String
interceptor(){
          System. out.println("interceptor" );
           return SUCCESS ;
     }
}

【Struts2三】拦截器的更多相关文章

  1. struts2(三)拦截器

    拦截器 需求 如果要访问某一个action类中的某一个方法的内容,如果是admin用户,则访问,如果不是admin用户,则不能访问. 实现 缺点  权限判断的代码和业务逻辑代码混合在一起了 利用拦截器 ...

  2. JavaWeb框架_Struts2_(三)---->Struts2的拦截器

    2. Struts2的拦截器(使用拦截器实现权限控制) 2.1 拦截器的概述 拦截器是Struts2的核心组成部分,它可以动态的拦截Action调用的对象,类似与Servlet中的过滤器.Struts ...

  3. struts2总结六: Struts2的拦截器

    一.Struts2的系统结构图

  4. Struts2使用拦截器完成权限控制示例

    http://aumy2008.iteye.com/blog/146952 Struts2使用拦截器完成权限控制示例 示例需求:    要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源:否 ...

  5. Struts2【拦截器】就是这么简单

    什么是拦截器 拦截器Interceptor.....拦截器是Struts的概念,它与过滤器是类似的...可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Str ...

  6. (转)Struts2的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/68648101 Struts2的拦截器 拦截器的概述 拦截器,在AOP(Aspect-Orien ...

  7. 【跟我一步一步学Struts2】——拦截器

    前言 前面提到过拦截器.而且说拦截器仅仅能拦截Action.这里拦截器的调用体现了责任链模式.为什么说体现了责任链模式呢? 以下的一段话说的非常明确: Struts2将整个运行划分成若干同样类型的元素 ...

  8. JavaWeb_(Struts2框架)拦截器interceptor

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  9. (六)Struts2的拦截器

    一.简介 拦截器体系是struts2重要的组成部分.正是大量的内建拦截器完成了该框架的大部分操作. 比如params拦截器将请求参数解析出来,设置Action的属性.servletConfig拦截器负 ...

  10. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

随机推荐

  1. VS添加程序集

    项目->添加->引用->程序集 可在项目的引用目录中,查看引用的程序集

  2. ArraySegment 的使用 【转载】

    本文转载自 http://www.cnblogs.com/overred/archive/2009/01/17/1359126.html ArraySegment顾名思义就是Array区块,数组的小抽 ...

  3. Enity Framework已经是.NET下最主要的ORM了

    Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华.切实地说,就是ORM让数 ...

  4. OpenCV —— 直方图与匹配

    直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin中.bin中的数值是从数据中计算出来的特征的统计量,这些数据可以是诸如梯度,方向,色彩或任何其他特征. 直方图获得是是数据分布的统计图 ...

  5. fetch 封装

    fetch.js var http = { get: function (url) { return new Promise((resolve, reject) => { fetch(url) ...

  6. [Redux-Observable && Unit testing] Testing the output of epics

    Epics can be unit-tested just like any other function in your application - they have a very specifi ...

  7. libssh2进行远程运行LINUX命令

    /** * CSSHClient.h * @file 说明信息.. * DATE February 13 2015 * * @author Ming_zhang */ #ifndef _CSSHCLI ...

  8. hdu5414(2015多校10)--CRB and String(字符串匹配)

    题目链接:pid=5414">点击打开链接 题目大意:有A.B两个字符串.如今有一种操作能够在A的随意一个字符x后面添加一个字符y(x.=y).问能不能将A变为B. 首先假设A能够变成 ...

  9. php数组插入数据

    php数组插入数据 一.总结 代码要多敲,看是看不会的 php代码直接在页面不好敲,可以去控制器里面敲 二.目标 在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式. 三.代码 (1).思 ...

  10. bind()和trigger()额外数据

    $(function(){ $('input').click(function(e,data1,data2,data3,data4){ alert(data1 + '|' + data2 + '|' ...