对拦截器的小小理解

2023-10-27

对于初学架构的 [color=red]“小白”[/color]来讲,拦截器绝对是一把需要掌握的[color=red]“利器”[/color]。那么自己从以下几个方面,谈谈对拦截器的小小思考。
拦截器的方法在Action执行前或执行后自动执行,从而将通用的操作动态地插入到Action执行的前后,这样的目的是利于系统的耦合。
拦截器的[color=red][b]实现原理[/b][/color]和 [color=red]Servlet[/color] 过滤器的实现原理一样,以链式方式执行,对真正想要执行的方法(这里指action类的execute())进行拦截。 [color=red] 首先[/color]执行action配置的拦截器,[color=red]其次[/color],在action类中的execute()被执行后,拦截器再次被执行。
拦截器的工作方式如下图所示:
[img]http://dl2.iteye.com/upload/attachment/0109/9416/2ac7f18c-115e-3e9b-a7e0-b589acb3b81e.png[/img]
拦截器的使用步骤:
1.在Struts.xml配置文件定义一个拦截器,只需要使用<interceptor>元素指定拦截器类与拦截明。[color=red]语法格式为:[/color]
<interceptors>
<interceptor name="InterceptorName" class="InterceptorClass"/>
</interceptors>
2.使用拦截器,完成配置后,就可以用该拦截器拦截Action提交的申请了,拦截行为将会在执行Action中的execute()方法之前触发。在Action中使用触发器的配置语法是设置<interceptor-ref>[color=red]语法格式为:[/color]
<interceptor-ref name="InterceptorName"></interceptor-ref>
3.实现拦截器类,[color=red]语法格式为:[/color]
public class 拦截器名称 extends AbstractInterceptor{
//intercept该方法实现拦截的动作
//拦截器继承AbstractInterceptor类,来实现
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("拦截器开始运行....");
String resultString=arg0.invoke();
System.out.println("拦截器已经结束....");
return resultString;

}
}
对于拦截器“小白”的我,了解的很少,希望大家凑合看吧! :D :D ,同时,自己写博客的目的在于:在写作中升华理解,渐渐告别“小白”,嘿嘿!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对拦截器的小小理解 的相关文章

  • 三英战SQL:解析NoSQL的可靠性及扩展操作

    摘要 NoSQL的高性能 易扩展及可靠性一直深受数据工作者的喜爱 然而对比传统关系型数据库NoSQL的优势究竟又在何处 Esen Sagynov在DZone上发布了一篇文章 从运行方面分析Cassandra HBase以及MongoDB产品
  • 怎么在java中关闭一个thread

    怎么在java中关闭一个thread 我们经常需要在java中用到thread 我们知道thread有一个start 方法可以开启一个线程 那么怎么关闭这个线程呢 有人会说可以用Thread stop 方法 但是这个方法已经被废弃了 根据O
  • 关于struts漏洞

    文章出处 阿里云社区 漏洞扫描 gt 技术运维问题 gt 技术分享 gt Struts2代码执行漏洞 Apache Struts s2 005 远程代码执行漏洞 CVE 2010 1870 受影响版本 Struts 2 0 0 Struts
  • [转]Spring2+struts2+ibatis整合

    Spring2 struts2 ibatis整合 前几天因为需要 将spring2 struts2和ibatis进行了整合 整合过程涉及到很多技巧 因此作为日志保存在此 以便今后查询 各个框架在本项目内的作用 spring2 主要利用ioc
  • java常见错误以及可能原因集锦

    0 需要标识符 a 不在函数内 1 非法表达式开始 b 可能 丢失括号 2 no data found a 可能 setInt 1 100 中 没有100这个值 3 找不到符号 a 可能 没导入包 4 指定了无效URL a 可能 数据库名或
  • SSH框架搭建的全过程(eclipse)

    SSH框架是最常用的框架之一 在搭建SSH框架的时候总有人遇到这样 那样的问题 下面我介绍一下SSH框架搭建的全过程 第一步 准备工作 下载好eclipse Struts2 Spring Hibernate 1 eclipse eclips
  • Struts2正则表达式校验

    原文地址 http woxiangbo iteye com blog 463397 下default xml文件 然后在xwork源代码中 需单独下载 找到相应的处理类 param即该类的属性 intege 1 9 d 整数 intege1
  • struts2配置commons-fileupload的问题

    这个问题主要出现在上传文件时parseRequest 的值为空 原因是struts2的Filter拦截了 ServletFileUpload sfu new ServletFileUpload factory List fileList s
  • Struts 中的控制器

    MVC 中的控制器是什么 Is it struts xml or Servlet 动作类 我们可以有多个吗Controller在我们的应用程序中 拥有多个控制器是一种好的做法吗 在 Struts 中 应用程序控制器层代码 功能分为两部分 A
  • 如何禁用 Struts 标签的自动完成(HTML:text)

    对于普通的 HTML 输入标签 禁用自动完成很简单 如下所示
  • Struts逻辑:迭代输入字段

    我目前有以下代码 数据显示良好
  • 在 Struts 2 中动态生成名称和值属性

    我正在将代码从 Struts1 迁移到 Struts2 Struts1代码
  • Struts2 ActionContext 和 ValueStack?

    我的问题是 在Struts2中 是不是每个action对象都有自己对应的ActionContext和ValueStack呢 换句话说 对于每个新请求 都会创建一个新的操作对象 这是否意味着每次创建新的操作对象时 也会创建新的 ActionC
  • Struts 和 Spring 一起吗?

    我对 Struts 和 Spring 都很陌生 我需要知道如何访问 Struts ActionForm 中的 Spring 服务 即使是指向正确方向的指针也会受到赞赏 从 struts 1 ActionForm 类中 您将需要 WebApp
  • 如何让一个类使用 applicationContext beans?

    我正在开发我的第一个 java struts2 webapp 并且希望能够将 bean 参数注入到任何被调用的类中 但我发现我只能用 struts 动作类来做到这一点 假设我的 applicationContext xml 文件中有这个 b
  • 生成图像并将其与其他内容一起显示在 JSP 中

    我正在使用 JFreeChart 根据用户输入生成动态图表 我有一个带有一些文本框和组合框的 JSP 用户输入并提交它 操作处理它 生成图表图像 我需要在文本框 组合框下方的同一个 JSP 上显示此图像 如果我使用response setC
  • 我可以在 Struts 中提供 SEO 友好的 url 吗?

    我想在我的应用程序中拥有 SEO 友好的 url 它将使用 Struts 1 2 在 java j2ee 中构建 我有一些分类如下 county countryname county state statename county state
  • Spring Security 与 Struts 的集成

    我正在尝试在一个简单的应用程序中将 spring security 与 struts1 2 使用 LDAP 集成 我有 applicationContext security xml
  • javax.el.PropertyNotFoundException:在 java.lang.String 类型上找不到属性“tname”

    我之前使用的是 scriptlet 但现在我改用了 mvc 我无法检索 JSP 页面上的值并收到错误 javax el PropertyNotFoundException Property tname not found on type j
  • 已做出回应

    我有一个取消按钮 用于刷新值 现在我已将它们转换为刷新或重新加载页面并移至只读页面 因此更改了取消按钮来调用这样的函数 function chkArea var url

随机推荐

  • java判断文件类型

    页面代码
  • Python爬虫如何快速入门学习?

    Python爬虫是一种用于自动化网页数据抓取的技术 它能够帮助我们快速 高效地获取互联网上的数据 对于那些想要快速入门学习Python爬虫的人来说 可能会有一些困惑 如何才能快速掌握Python爬虫的基本原理和技巧 在本文中 我们将分享一些
  • Java线程同步-栅栏(CyclicBarrier)

    Java线程同步 栅栏 CyclicBarrier 栅栏是一种同步工具 用于等待一组线程达到某个共同点后再同时继续执行 它的内部维护一个计数器和一个屏障点 当线程到达屏障点时 会阻塞等待其他线程到达 每一个线程到达屏障点后 计算器就减1 当
  • 我在windows10下,使用msys64 mingw64终端

    系列文章目录 文章目录 系列文章目录 前言 一 MSYS2是什么 前言 msys2官网 MSYS2 Minimal SYStem 2 是一个MSYS的独立改写版本 主要用于 shell 命令行开发环境 同时它也是一个在Cygwin POSI
  • JavaDay06

    用户登录 提示用户输入用户名和密码 如果用户名和密码不是 admin 和 123 的话 就提示用户继续输入 最多输入五次 用户登录 提示用户输入用户名和密码 如果用户名和密码不是 admin 和 123 的话 就提示用户继续输入 最多输入五
  • 数据结构4-单链表的删除修改和查找

    1 单链表按照顺序插入节点 package com yin m3LinkedList public class SingleLinkedListDemo public static void main String args TODO Au
  • C语言(关于浮点数比较的学习)

    由于浮点数十进制转化成二进制的机制 会造成精度损失 因此在浮点数的比较中 无法直接令两个浮点数是否相等来判断两个浮点数 如 include
  • 上传报org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceed

    错误如下 springBoot项目自带的tomcat对上传的文件大小有默认的限制 SpringBoot官方文档中展示 每个文件的配置最大为1Mb 单次请求的文件的总数不能大于10Mb 解决方法 Spring Boot 2 5 6 版本 在
  • 紫禁繁花服务器维护,各种坑的坑。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最开始玩的小主 建议开菜坑 会拉开一部分势力 前期略微有明显 比如你冲宫斗去 冲榜去来它是首选 特别是国力的234榜 攻略摘要 势力增加快 复仇积分多 宫斗提升 雨露增加快 办差收货多 势力提升
  • C++使用dll的一些探索

    一 动态链接库的加载方式 隐式加载又称载入时加载 指在主程序载入内存时搜索DLL 并将DLL载入内存 使用隐式加载时 使用者需要DLL链接库的 h文件 lib文件和 dll文件 lib文件包含DLL导出的函数声明和变量的符号名 dll 文件
  • 旧电脑改造nas黑群晖_黑群晖教程:旧电脑不吃灰,手把手教你变成千元顶级NAS...

    前言 如果有玩PCDIY 玩摄影 玩PT 那么一定有听说过NAS NAS中群晖的NAS又是使用体验最佳的 群晖NAS系统在功能上十分齐全 人机界面做的也较为出众 但可惜的是 机器本体价格相对来说高昂 很多人在看到售价后只能摇摇头作罢 黑群晖
  • altium designer执行DRC检查+消除绿色错误

    由原理图生成PCB以后 各种显示绿色 也即PCB报错 如下图 绿色的原因是DRC Design Rule Check 检查未通过 解决方法是正确设置规则 但是在此之前 为了观感 我们先掩耳盗铃一下 临时清除绿色 步骤是 菜单栏 gt 工具
  • 线性代数-向量,矩阵,线性变换

    一 向量 向量要求具有两个条件 长度 大小 方向 二维 三维 计算机中 向量可看做列表 图中第一个列表有两行 我们说它是二维向量 第二个列表有四行 我们说他是四维向量 向量的运算 向量加法 向量加法 将对应的行相加 将向量w的起点平移到向量
  • Java基础(2)面向对象的理解

    面向对象学习 面向对象与面向过程的区别 面向过程思想适合简单 不需要协作的任务 面向对象需要很多协作才能完成 面向对象就应运而生了 object 对象 instance 实例 都是解决问题的思维模式 都是代码组织的方式 解决简单问题可以使用
  • 通过文件夹文件获取文件夹大小

    思路就是便利文件夹下的每个文件 碰到子文件夹递归进去继续找文件 所有的文件大小累加起来 int GetFolderSize LPCTSTR szPath TCHAR szFileFilter 512 TCHAR szFilePath 512
  • mysql的sql语句没错但是报错,sql语句可以正常执行,但是报错:【merge sql error, dbType mysql, sql :】...

    错误信息如下 2017 09 06 19 03 41 186 ERROR method com alibaba druid filter stat StatFilter mergeSql StatFilter java 147 merge
  • 基于有道API的命令行词典(golang版)

    Godict 本项目地址 近期一直再使用golang语言开发一些工具 相关的后端技术链 golang orm postgresql gin jwt logrus 和对应前端的技术链 vue iview axios vue router 基本
  • matlab逆变器原理,MATLAB中的单相全桥逆变器电路建模与仿真

    电子技术设计和应用电子设计和应用电子技术O 3969 j issn 1000 0755 201 5 03 020 MATLAB中的单相全桥逆变器电路建模与仿真杨露容军刘凯周雷李仁贵 湖南工学院信息与通信工程学院 湖南岳阳 描述了全桥逆变器电
  • 什么是MapReduce,MapReduce的工作流程和原理是什么

    一 MapReduce的概念 MapReduce是一种编程模型 用于大规模数据集 大于1TB 的并行运算 概念 Map 映射 和 Reduce 归约 和它们的主要思想 都是从函数式编程语言里借来的 还有从矢量编程语言里借来的特性 它极大地方
  • 对拦截器的小小理解

    对于初学架构的 color red 小白 color 来讲 拦截器绝对是一把需要掌握的 color red 利器 color 那么自己从以下几个方面 谈谈对拦截器的小小思考 拦截器的方法在Action执行前或执行后自动执行 从而将通用的操作