Spring與Struts的區別
Posted on 2008-04-25 11:04 TuringJava 閱讀(1629) 評論(0) 編輯 收藏 所屬分類: Structs 、Spring2.0struts只是一個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,絕對沒得說。