昨天下午去面試的時候,面試官跟我說:“給我談談struts mvc和spring mvc吧”,我談着談着就談到SSH集成去了,回來後想了想,Struts和Spring mvc確實有必要單獨分析比較一下。這裏本人只做簡單的個人的認識,網上相關的資源很多。
Struts MVC:
①一個類對應一個請求上下文,也就是一個Action請求做出一次響應。
②由於第一點,Struts的類是共享的,其屬性也是共享的,每次請求都會創建該類的實例,性能方面有多餘的消耗
③Struts的入口是攔截器,通過攔截器再通過控制器轉發到不同的bean去處理請求(具體可以看看servlet與攔截器與interceptor的區別,我將會在後幾篇博客中講)
④Struts的Ajax需要手動配置url,相對比較麻煩
⑤Struts MVC更加面向對象編程(OOP)
⑥對於JSR303自定義註解,Struts處理驗證很繁瑣
Spring MVC:
①一個方法對應一個請求上下文,也就是基於一個方法做出一次響應,(網上說的restful url,一般不會用spring與url結合使用,所以不必太關心)
②由於第一點,方法之間是完全獨立的,(體現了spring的輕量級框架)
③Spring的入口是servlet,針對一個方法就可以直接去做相應的處理,(這裏也體現了spring的‘0配置’)
④Spring MVC集成了Ajax,只需一個註解@ResponseBody就可以實現,(體現了Spring更高級吧。)
⑤Spring MVC相對比較謹慎,是在servlet上面做的擴展
⑥支持JSR303,處理驗證更加靈活方便
以上是本人對Struts MVC和Spring MVC的一個簡單的區別整理,編程領域沒有絕對的好與壞,只有相對的存在。如果有幸再被面試到這個問題,應該不會有問題了。