专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Javaweb拦截器是什么

Javaweb拦截器是什么

更新时间:2020-10-23 17:09:49 来源:赢咖4 浏览1366次

Javaweb是和java框架、服务器、开发工具在java中一样重要的存在,也是java零基础的新手朋友们首先要接触学习到的内容。在javaweb的学习阶段,需要打好扎实的基础,javaweb拦截器是初学者们需要学习的内容之一,这篇文章来介绍javaweb拦截器是什么以及相关的基本知识。

image.png

Javaweb拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截,然后再之前或者之后加入某些操作。


Javaweb拦截器的原理:大部分时候,拦截器方法都是通过代理的方式来调用的。Struts2的拦截器实现相对简单。当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据配置实例化相对的拦截器对象,然后串成一个列表(List),最后一个一个的调用列表中的拦截器。Struts2的拦截器是可插拔的,拦截器是AOP的一个实现。Struts2拦截器栈就是将拦截器按一定的顺序连接成一条链。在访问被拦截的方法或者字段时,Struts2拦截器链中的拦截器就会按照之前定义的顺序进行调用。

image.png

在前面的文章中我们学习了javaweb三大组件的内容,三大组件中的过滤器filter是要和javaweb拦截器做对比学习的,拦截器和过滤器的区别是什么呢?过滤器是对dao请求起到过滤的作用,它在监听器之后,作用在servlet之前,对请求进行过滤;拦截器(interceptor)是对请求和返回进行拦截,它作用在servlet的内部,二者的简要区别概括如下:


1、拦截器是基于java的反射机制的,而过滤器是基于函数回调。

2、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

6、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,在拦截器里注入一个service,可以调用业务逻辑。


以上就是对javaweb拦截器基本概念和相关基础知识的介绍,拦截器在java开发时是经常要使用的工具,也是程序员要掌握的一个技能,希望这篇文章对javaweb拦截器的介绍,java初学者能对javaweb拦截器有一个基本的了解和认识,进而慢慢学习更多拦截器的相关知识。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>