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编程思想,在实现相应逻辑的前后,加上其他逻辑的实现,而且没有任何依赖关系。

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 原生js生成二维码_js中怎么获取二维码信息

    原生js生成二维码_js中怎么获取二维码信息js生成二维码使用kjua生成二维码官网:https://larsjung.de/kju使用方法在官网下载js文件,在页面中引用即可,原生js实现,不需要引用其他依赖。<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″> <title></title> </head> <body> <divid=”test”&

    2022年10月17日
    3
  • 使用ultraiso制作u盘启动盘_如何进入u盘启动界面

    使用ultraiso制作u盘启动盘_如何进入u盘启动界面下面给你提供是的一个万能的制作系统U盘的方法,用这个U盘你可以加载任何你想要的系统,即使是Linux系统都是可以,你需要做的就是下载安装软件,下载一个系统安装光盘的镜像文件,然后用软件导入到U盘就可以

    2022年8月4日
    11
  • 【C语言】贪吃蛇游戏的实现(一)[通俗易懂]

    【C语言】贪吃蛇游戏的实现(一)[通俗易懂]最近由于小创需要,捣鼓了一个贪吃蛇游戏,系统由纯C语言开发,VC++6.0编译通过,具体的运行效果如下:略显简陋的开始界面,图案是我一点一点拼的,因为有\需要转义,所以对齐也花了不少时间,足够繁杂和无聊的工作。游戏界面如图所示,左侧方框是地图,菱形组成的线是蛇,红色圆点是食物,吃到加分。游戏结束界面可以选择再来一局或者退出。系统源码链接:https://download…

    2022年6月3日
    35
  • c语言的stl库_c语言string库

    c语言的stl库_c语言string库今天推荐一个函数库glib注意不是glibc https://developer.gnome.org/glib/一直在抱怨,标准C中为什么没有类似于STL的标准容器,让全世界的程序员在数以万次的重复实现它们。不过,还算走运,有了glib,恶梦在此终结了。glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。

    2022年10月15日
    1
  • php stristr_str.center()方法的功能是什么

    php stristr_str.center()方法的功能是什么欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的用法:strstr()函数搜索一个字符串在另一个字符串中的第一次出现的字符串。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false.语法strstr(欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的…

    2025年11月12日
    5
  • $.ajax()方法参数详解

    $.ajax()方法参数详解$.ajax()方法是jQuery最底层的Ajax实现。它的结构为:$.ajax(options)该方法只有一个参数,但是这个对象里包含了$.ajax()方法所需要的请求设置以及回调函数等信息,参

    2022年7月3日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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