爲何有了Struts 還要Spring MVC

不少人學習了ssh ,都曉得struts最先被人用來控制表現層,可是struts已經有了mvc 爲何還有spring mvc呢?java

 

 

因此我稍微查閱了一些資料,總結了一下他們的區別:spring

 

1. 機制。spring mvc 的入口是serclet, 而struts是filter(這裏要指出,filter和servlet是不一樣的。之前認爲filter是servlet的一種特殊),這樣就致使了兩者的機制不一樣,編程

這裏就牽涉到servlet和filter的區別了,我其餘博客 會專門寫一寫 servlet和filter之間的區別。mvc

 

2.性能。 spring會稍微比struts快。spring mvc 是基於方法的設計,而sturts是基於類,每次發一次請求都會實例一個 action  ,每一個action都會被注入屬性, 而spring基於方法,粒度更細,但要當心把握像在servlet控制數據同樣。ssh

 

3.參數傳遞。 struts是在接受參數的時候,能夠用屬性來接受參數, 這就說明參數是讓多個方法共享的。oop

 

 

4.設計思想上。struts 更加符合oop的編程思想, spring就比較謹慎,在servlet上擴展,性能

 

5.intercepter的實現機制。struts有以本身的interceptor機制,spring mvc 用的是獨立的AOP方式。這樣致使struts的配置文件量仍是比spring mvc大,雖然struts的配置能繼承,因此我以爲論使用上來說,spring mvc使用更加簡潔。學習

 

以上是我參考一些文檔後的總結。謝spa



已有 4 人發表留言,猛擊->>這裏<<-參與討論


JavaEye推薦
相關文章
相關標籤/搜索