A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 冯海霞 于 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的面向切面的思想的关联!!!!!

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

2 个回复

倒序浏览
spring的AOP属于面向切面变成 实现方式是动态代理 你可以去看看动态代理和反射的视频就理解了,而却Spring的拦截器属于框架模式适用范围广。
Struts的拦截器是针对Struts的
比如SSH项目都会去使用AOP
如果是单纯的STRUTS项目 自然使用Struts本身的拦截器

两者最终效果是一样的

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
已解决,老冯,快来把我这个也给改了,结贴了。。。

点评

OK啦。  发表于 2012-10-30 07:10
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马