拦截器:就是在訪问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. tcp_tw_recycle检查tcp_timestamps的内核代码

    注意:本文档中的内核代码的版本号:linux-4.0.5 /************************************************* * Author : Samson * ...

  2. hdu1856 More is better (并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  3. 矩阵乘法2(codevs3147)

    题目描写叙述 Description 给出两个n*n的矩阵.m次询问它们的积中给定子矩阵的数值和. 输入描写叙述 Input Description 第一行两个正整数n,m. 接下来n行,每行n个非负 ...

  4. 【HDU 4763】Theme Section(KMP)

    这题数据水的一B.直接暴力都能够过. 比赛的时候暴力过的.回头依照正法做了一发. 匹配的时候 失配函数 事实上就是前缀 后缀的匹配长度,之后就是乱搞了. KMP的题可能不会非常直接的出,可是KMP的思 ...

  5. Spring MVC原理及实例基础扫盲篇

    近期 项目中刚接触了SpringMVC,就把这几天看的跟实践的东西写出来吧. 一.首先,先来了解一下SpringMVC究竟是个什么样的框架? Spring Web MVC是一种基于Java的实现了We ...

  6. 三个角度解构云计算,商业驱动or技术驱动?

    从云计算的使用者到云服务的输出者,大多互联网公司在过去一年完成了角色的转换,也让云计算的未来更加扑朔迷离.不过,抛却进入时间这个评判因素,单从技术和商业化的角度来解构云计算的话,对于云计算的格局以及未 ...

  7. Ajax缓存原理

    一.什么是Ajax缓存原理? Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和 ...

  8. java使double保留两位小数的多方法

    java使double保留两位小数的多方法 java保留两位小数 mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat ...

  9. Kinect 开发 —— 显示骨骼用户插件

    public partial class SkeletonViewer : UserControl { private readonly Brush[] _SkeletonBrushes = new ...

  10. [BZOJ4555 TJOI2016 HEOI2016 求和]

    ​ 第一篇博客,请大家多多关照.(鞠躬 BZOJ4555 TJOI2016 HEOI2016 求和 题意: ​ 给定一个正整数\(n\)(\(1\leqq n \leqq100000\)),求: \[ ...