动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

浅谈Javaweb拦截器

06-11 16:24 770浏览
举报 T字号
  • 大字
  • 中字
  • 小字

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

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

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

三大组件中的过滤器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拦截器有一个基本的了解和认识,进而慢慢学习更多拦截器的相关知识。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

JavaWeb的3大组件

代码小兵49806-11 15:28

全面解析Cookie技术

代码小兵49806-11 15:51

浅谈JavaWeb架构演变

代码小兵49806-11 16:22

探讨Web开发中的Session存储与管理

代码小兵51603-29 17:28

JavaScript基础知识

 暴风城-小飞04-06 20:49

发评论

举报

0/150

取消