黑马程序员技术交流社区

标题: Spring的切面和Struts2甚至是Servlet的拦截器有毛区别?? [打印本页]

作者: 会飞的鱼    时间: 2012-10-27 09:04
标题: Spring的切面和Struts2甚至是Servlet的拦截器有毛区别??
本帖最后由 冯海霞 于 2012-10-30 07:10 编辑

Spring的切面和Struts2甚至是Servlet的拦截器有毛区别??他们都是在目标方法的调用前后,插入我们需要执行的代码块。都是可拔式的设计,需要时写好拦截器然后配置一下。不需要时只需注释相关配置就行了。在书上看到过这样一句话,Struts2的拦截器其实就是一种面向切面的实现,那么是不是说其实他们就是一样的,思想是一样的,完成的功能也是一样的。只是说由于历史原因,在Servlet的拦截器甚至是Struts2拦截器这种概念出现时,还没有AOP面向切面这种说法。当然String的AOP应用更广,Struts2的拦截器只针对Struts2的action,可在用户请求一个action前解析请求参数,类型转换,甚至是权限控制。而当我们的Controller到了Servers层后调用的方法,需要在前后做一些处理时,AOP就更方便了。当然这里并不是只是在谈论Struts2的拦截器和Spring的AOP的异同,而是想问拦截器(不管哪个框架的)和Spring的面向切面的思想的关联!!!!!
作者: 黑马张旭    时间: 2012-10-27 13:49
spring的AOP属于面向切面变成 实现方式是动态代理 你可以去看看动态代理和反射的视频就理解了,而却Spring的拦截器属于框架模式适用范围广。
Struts的拦截器是针对Struts的
比如SSH项目都会去使用AOP
如果是单纯的STRUTS项目 自然使用Struts本身的拦截器

两者最终效果是一样的
作者: 会飞的鱼    时间: 2012-10-30 00:20
已解决,老冯,快来把我这个也给改了,结贴了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2