posts - 42, comments - 7, trackbacks - 0, articles - 1

Spring与Struts的区别

Posted on 2008-04-25 11:04 TuringJava 阅读(1623) 评论(0)  编辑  收藏 所属分类: StructsSpring2.0

struts只是一个mvc框架,用于快速开发java web应用。struts实现的重点在c(controller),包括actionservlet/requestprocessor和我们定制的action,也为v(view)提供了一系列定制标签。struts几乎没有涉及m(model),所以struts可以采用java实现的任何形式的商业逻辑。

spring是一个轻型容器(light-weight container),其核心是bean工厂(bean factory),用以构造我们所需要的m(model)。在此基础之上,spring提供了aop的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对bean工厂的扩展applicationcontext更加方便我们实现j2ee的应用;dao/orm的实现方便我们进行数据库的开发;web mvc和spring web提供了java web应用的框架或与其他流行的web框架进行集成。

现在大体说一下:
structs:和ww2等一样,都是典型的mvc结构框架,至于mvc是什么,地球人都知道,如果你不知道就google吧:),structs偏重于表现层,它自己起一个控制器的作用即controller,它可以良好的把表现层与业务层分离开来。

spring:说白了就是一个大杂烩,提供了目前各种流行框架的集成,经典的有对hibernate的集成,此外,如mail,axis...各种都有。另外,它比较经典的就是ioc与aop的功能,楼上已经有人说了,如果你不知道,去google。此外,它还提供了spring mvc,它基于webflow,至于用法,去查它的文档。

structs的actionform是公认的败笔,我用得痛苦得不得了。
另外,你说的重复提交,那是浏览器的问题,和structs无关。看你如何指挥浏览器了,如果你用redirect,就没有重复提交的问题,因为浏览器已经重定向了。但是你用forward,那在你刷新的时候就是重复提交。

spring比较偏重于业务层,在页面上一般是不显示出来的。当然,如果你用spring的mvc例外。
如果楼主讨论的是spring mvc和structs的话,那我告诉你,spring mvc绝对要比structs优秀,但是实现起来比structs复杂,structs占在人多力量大,成熟,文档多。
如果你真要用的话,还是建议你使用webwork,拦截器功能强大,使用ognl,绝对没得说。

只有注册用户登录后才能发表评论。


网站导航: