拦截器和过滤器的区别以及AOP概念

过滤器,是在java web中,你传入的request,response 提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet 或者struts 的 action进行业务逻辑,比如过滤掉非法url (不是login.do 的地址请求,如果用户没有登陆都过滤掉), 或者在传入servlet 或者 struts的action 前统一设置字符集,或者去除掉一些非法字符

拦截器,是在面向切面编程的就是在你的service 或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

拦截器与过滤器的区别 :

1.

2.

3.

4. 拦截器是基于java 的反射机制的,而过滤器是基于函数回调。 拦截器不依赖与servlet 容器,过滤器依赖与servlet 容器。 拦截器只能对action 请求起作用,而过滤器则可以对几乎所有的请求起作用。 拦截器可以访问action 上下文、值栈里的对象,而过滤器不能访问。

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

执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理) ;过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action ;Action 处理完成返回后,拦截器还可以做其他过程(还没想到要做啥) ,再向上返回到过滤器的后续操作。

面向切面编程(AOP 是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。

但是人们也发现,在分散代码的同时,也增加了代码的重复性。什么意思呢?比如说,我们在两个类中,可能都需要在每个方法中做日志。按面向对象的设计方法,我们就必须在两个类的方法中都加入日志的内容。也许他们是完全相同的,但就是因为面向对象的设计让类与类之间无法联系,而不能将这些重复的代码统一起来。

也许有人会说,那好办啊,我们可以将这段代码写在一个独立的类独立的方法里,然后再在这两个类中调用。但是,这样一来,这两个类跟我们上面提到的独立的类就有耦合了,它的改变会影响这两个类。那么,有没有什么办法,能让我们在需要的时候,随意地加入代码呢?这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

一般而言,我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。有了AOP ,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。

这样看来,AOP 其实只是OOP 的补充而已。OOP 从横向上区分出一个个的类来,而AOP 则从纵向上向对象中加入特定的代码。有了AOP ,OOP 变得立体了。如果加上时间维度,

AOP 使OOP 由原来的二维变为三维了,由平面变成立体了。从技术上来说,AOP 基本上是通过代理机制实现的。

AOP在编程历史上可以说是里程碑式的,对OOP 编程是一种十分有益的补充


相关文章

  • 三大框架原理
  • ooa(object oriented analysis)面向对象分析 ood(object oriented design)面向对象设计 Oop 面向对象编程 Spring javabean的生命周期 配置 初始化 调用 销毁 Sprin ...

  • 三大框架的工作原理
  • Hibernate 工作原理及为什么要用? 原理: 1. 通过Configuration().configure();读取并解析hibernate.cfg.xml 配置文件 2. 由hibernate.cfg.xml 中的读取并解析映射信息 ...

  • java框架之AOP框架
  • 一般情况下,对象是由一行行的代码"粘合"在一起的.创建这个对象.创建那个对象.为那个对象(其值为这个对象)设置属性.其间还点缀着一些用户数据.将一切搅拌在一起.这是现代程序员在进行设计和编码时经常做的事情. 将多个这样的 ...

  • 液体过滤器
  • 液体过滤器 液体过滤器是输送介质管道上不可缺少的一种装置, 通常安装在减压阀.泄压阀.定水位阀或其它设备的进口端,用来消除介质中的杂质,以保护阀门及设备的正常使用.当流体进入置有一定规格滤网的滤筒后,其杂质被阻挡,而清洁的滤液则由过滤器出口 ...

  • 水处理基础知识
  • 水处理基础知识 1 你知道的预处理设备有哪些? 预处理设备有:机械过滤器.高效纤维过滤器.活性炭过滤器.精密过滤器.超滤.微滤.钠离子软化器.除铁除锰过滤器.加药装置.原水箱.曝气池. 2 你所知道的预除盐设备有哪些? 预除盐设备有电渗析装 ...

  • JavaEE企业培训方案(3)
  • 1 培训对象: 软件开发人员. 2 培训目标: 2.1 Java项目中开源技术框架实战: 2.2 如何在设计中应用JAVA EE技术的最佳实践--JAVA EE模式和设计模式: 2.3 如何建立一个支持可伸缩.扩展.个性化和支持国际化,并搭 ...

  • 光纤导入照明简述
  • 建筑采光新技术―― 光纤导入照明 光纤导入- 绿色太阳光轻松引入室内 事专业精 阳光心情 山东润阳伟业科技有限公司 目 录 前 言 . .................................................... ...

  • 防火墙工作原理和种类
  • 一. 防火墙的概念 近年来,随着普通计算机用户群的日益增长,"防火墙"一词已经不再是服务器领域的专署,大部分家庭用户都知道为自己爱机安装各种"防火墙"软件了.但是,并不是所有用户都对"防火墙 ...

  • 煤矿污水处理设备
  • 煤矿水处理设备及污水处理设备工艺图介绍说明 一.矿井水处理工艺流程及说明 1.工艺流程 ↓ ↓ ↓ 反冲洗水回→ 2.工艺流程说明: 矿井水经泵提升到集水调节池,水在调节池内得到水质.水量的调节并停留沉降, 大量的煤泥沉降在池底通过行车式泵 ...

  • 过滤式联合分离器的原理与结构论文
  • 过滤式联合分离器的原理与结构 过滤式联合分离器的原理与结构 摘 要 过滤分离器是油气生产中主要用来除去油气中悬浮的固.液相杂质.脱除固.液相杂质的目的是降低管道及设备的输送负荷.防止或降低腐蚀或堵塞的发生.保证管道与设备安全可靠运行. 关键 ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn