struts2拦截器详解_拦截和修改tcp数据

struts2拦截器详解_拦截和修改tcp数据Struts2中的拦截器和servelt中的过滤器是非常的相似的。如果学过过滤器的话,肯定能够感觉的到,尽管有些微的不同。可是struts2的拦截器到底如何使用呢,为什么会有这些配置呢?接下来一一来看。 过滤器和拦截器是非常相似的,过滤器publicinterfaceFilter接口里面有三个方法: init(FilterConfigfilterConfig),des

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Struts2 中的拦截器和 servelt 中的过滤器是非常的相似的。如果学过过滤器的话,肯定能够感觉的到,尽管有些微的不同。可是struts2的拦截器到底如何使用呢,为什么会有这些配置呢? 接下来一一来看。 

过滤器和拦截器是非常相似的,过滤器 public interface Filter 接口里面有三个方法: 

  • init(FilterConfig filterConfig),
  • destroy(),
  • doFilter(ServletRequest request, ServletResponse response, FilterChain chain),

 

这里面的 doFilter() 方法是最重要的,在 struts2 中  String intercept(ActionInvocation invocation)就相当于此方法。 

如何完成一个拦截器呢?在 struts2 中要实现一个接口 这个接口是什么呢?在哪呢?,是否在哪听说过?是 webwork 是我们以前听的最多的关于拦截器的框架, struts2 用了其中一个核心的东西,这个东西在是什么呢?是 xwork 。恩,有了它才可以拦截,好了我们在哪找呢?在 com.opensymphony.xwork2.interceptor 中找,里面有个 Interceptor 这是个接口,里面也有三个方法,有 init, destroy 和 intercept 三个方法,而在 struts2 里面的所有的拦截器都继承这个接口! 

 

struts2接受客户端请求时,在执行action之前已经执行了自身默认的拦截器,这些拦截器完成struts2的大部分初始化的功能,比如设置属性值等。

 

执行完这些拦截器后,再执行action,返回客户端时,还得经过拦截器的拦截,最终返回客户端。下面我们开始模拟拦截器的实现过程:

 

1、新建自己的拦截器:

 

 

 

2、拦截器的具体实现

 

 

 

 

 

3、需要执行的action

 

 

 

4、控制器,该控制器调配执行拦截器和action

 

 

 

5、main方法执行,在struts2框架中,前台的一个请求被过滤器拦截后就执行拦截,然后再执行action

 

 

 

 

模拟结果:

 

第一个拦截器开始。。。。

第二个拦截器开始…..

执行execute方法

第二个拦截器结束……

第一个拦截器结束…….

 

 

从模拟结果分析,拦截器相当于包裹在action外面的屏障,要达到执行action的目的,需要穿过屏障——–>执行action——–>穿出屏障

 

拦截器的实现其实是aop编程思想,在实现相应逻辑的前后,加上其他逻辑的实现,而且没有任何依赖关系。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188340.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JavaWeb项目(登录注册页面)全过程详细总结

    JavaWeb项目(登录注册页面)全过程详细总结JavaWeb项目(登录注册页面)全过程总结文章目录JavaWeb项目(登录注册页面)全过程总结一、环境准备与开发工具二、创建JavaWeb项目2.1新建DynamicWebProject项目2.2创建前端页面2.2.1登录页面1.login.jsp2.login.js3.time.js4.focus.js+animate.js2.2.2注册页面(register.jsp)2.2.3修改密码的页面(change_pwd.jsp)2.2.4登录成功的页面(success.jsp

  • zookeeper实现分布式锁的两种方式

    zookeeper实现分布式锁的两种方式

  • 图像半自动标注「建议收藏」

    图像半自动标注「建议收藏」前言标注数据集对深度学习而言是很重要的一步,但是标注数据是件很繁琐的工作,而半自动标注可以减轻工作量。Github(https://github.com/virajmavani/semi-auto-image-annotation-tool)上有一款自动标注工具,它以RetinaNet作为建议算法,使用预训练的RetinaNet模型从MSCOCO数据集建议80个类对象。这款工具我没有…

  • webstorm激活码最新2021 4月【在线注册码/序列号/破解码】

    webstorm激活码最新2021 4月【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 操作系统作业之银行家算法(c语言实现)

    操作系统作业之银行家算法(c语言实现)银行家算法分析:银行家算法数据结构:进程数processNum资源类数resourceNum系统剩余可利用资源Available,为一个含有m个元素的数组;最大需求矩阵Max,为一个processNumresourceNum数组进程当前已分配资源数Allocation,为一个processNumresourceNum数组进程尚需要的资源数Need,为一个processNum*re…

  • pycharmdjango项目实战_python如何创建新项目

    pycharmdjango项目实战_python如何创建新项目创建项目我们创建django项目有两种方式,命令行方式和使用pycharm工具创建,本文就介绍常用的pycharm工具创建首先点击django,输入项目的名称,选择创建好的虚拟环境,最后点击cre

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号