SpringMVC 與 MVC的區別
SpringMVC作為MVC框架,與Struts 2 有著異曲同工之處,首先對比一下SpringMVC與Struts2的不同之處:
1. 機制:spring mvc的入口是servlet,而struts2是filter(這裡要指出,filter和servlet是不同的。以前認為filter是servlet的一種特殊),這樣就導致了二者的機制不同,這裡就牽涉到servlet和filter的區別了。
2. 效能:spring會稍微比struts快。spring mvc是基於方法的設計,而sturts是基於類,每次發一次請求都會例項一個action,每個action都會被注入屬性,而spring基於方法,粒度更細,但要小心把握像在servlet控制資料一樣。spring3 mvc是方法級別的攔截,攔截到方法後根據引數上的註解,把request資料注入進去,在spring3 mvc中,一個方法對應一個request上下文。而 struts2框架是類級別的攔截,每次來了請求就建立一個Action,然後呼叫setter getter方法把request中的資料注入;struts2實際上是通過setter getter方法與request打交道的;struts2中,一個Action物件對應一個request上下文。
3. 引數傳遞:struts是在接受引數的時候,可以用屬性來接受引數,這就說明引數是讓多個方法共享的。
4. 設計思想上:struts更加符合oop的程式設計思想, spring就比較謹慎,在servlet上擴充套件。
5. intercepter的實現機制:struts有以自己的interceptor機制,spring mvc用的是獨立的AOP方式。這樣導致struts的配置檔案量還是比spring mvc大,雖然struts的配置能繼承,所以我覺得論使用上來講,spring mvc使用更加簡潔,開發效率Spring MVC確實比struts2高。spring mvc是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上spring3 mvc就容易實現restful url。struts2是類級別的攔截,一個類對應一個request上下文;實現restful url要費勁,因為struts2 action的一個方法可以對應一個url;而其類屬性卻被所有方法共享,這也就無法用註解或其他方式標識其所屬方法了。spring3 mvc的方法之間基本上獨立的,獨享request response資料,請求資料通過引數獲取,處理結果通過ModelMap交回給框架方法之間不共享變數,而struts2搞的就比較亂,雖然方法之間也是獨立的,但其所有Action變數是共享的,這不會影響程式執行,卻給我們編碼,讀程式時帶來麻煩。
6. 另外,spring3 mvc的驗證也是一個亮點,支援JSR303,處理ajax的請求更是方便,只需一個註解@ResponseBody
相關推薦
SpringMVC 與 MVC的區別
SpringMVC作為MVC框架,與Struts 2 有著異曲同工之處,首先對比一下SpringMVC與Struts2的不同之處: 1. 機制:spring mvc的入口是servlet,而struts2是filter(這裡要指出,filter和servlet是不
SpringMVC與Struts2區別與比較總結
req 攔截器 返回 方式 log 編碼 strong 原則 麻煩 1、Struts2是類級別的攔截, 一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上Spring
Android MVP與MVC區別?
1、MVP與MVC的區別 Activity職責不同,Activity在MVP中是View層,在MVC中是Controller層,這是MVC和MVP很主要的一個區別,可以說Android從MVC轉向MVP開發也主要是優化Activity的程式碼,避免Activity的程式碼臃腫龐大。
SpringMVC框架(1)之(1.4 SpringMVC與 Struts區別)
SpringMVC與 Struts區別 SpringMVC是通過方法的形參接收引數,可以以單例方式 使用,建議使用單例; Struts通過成員變數接收引數,在使用時 必須以多例方式 使用; SpringMVC是 基於方法 開發(以方法為單位),一個請求的方法對應一個 H
SpringMVC與Struts2區別
一、框架機制 1、Struts2採用Filter(StrutsPrepareAndExecuteFilter)實現,SpringMVC(DispatcherServlet)則採用Servlet實現。 2、Filter在容器啟動之後即初始化;服務停止以後墜毀,晚於Servl
SpringMVC與Struts2區別與比較
1、Struts2是類級別的攔截, 一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上SpringMVC就容易實現restful url,而struts2的架構實現起來要費勁,因為St
三層架構與MVC的區別
體系架構 商務 相對 持久化 也不會 劃分 more rect 基本 我們平時總是將混為一談,殊不知它倆並不是一個概念。下面我來為大家揭曉我所知道的一些真相。 首先,它倆根本不是一個概念。 三層架構是一個分層式的軟件體系架構設計,它可適用於任何一個項目。 MVC是一
MVP與MVC的區別 in Android
轉自:http://blog.csdn.net/lmj623565791/article/details/46596109 一、概述 對於MVP(Model View Presenter),大多數人都能說出一二:“MVC的演化版本”,“讓Model和View完全解耦”等等。本篇博文僅是
springMVC與struts2的區別
我們從以下幾個維度來區分兩者的概念:1. 機制:spring mvc的入口是servlet,而struts2是filter。 補充幾點知識: 《 Filter 實現javax.servlet.Filter介面,在web.xml中配置與標籤指定使用哪個Filter
SpringMVC與Struts2的主要區別
區別1: Struts2 的核心是基於一個Filter即StrutsPreparedAndExcuteFilter SpringMvc的核心是基於一個Servlet即DispatcherServlet(前端控制器) 區別2: Struts2是基於類開發的,傳遞的引數是
Android---MVP模式介紹,以及MVP與MVC的區別
(1). MVP模式簡介 相信大家對MVC都是比較熟悉了:M-Model-模型、V-View-檢視、C-Controller-控制器,MVP作為MVC的演化版本,那麼類似的MVP所對應的意義:M-Model-模型、V-View-檢視、P-Presenter-表示器。 從MV
springmvc與Spring配置檔案中掃描元件分開掃描和直接全掃描的區別
在主容器中(applicationContext.xml),將Controller的註解排除掉 <context:component-scan base-package="com"> <context:exclude-filter type="annotation" expression
Spring MVC中WebMvcConfigurerAdapter、WebMvcConfigurationSupport與WebMvcConfigurer區別
最近參考書籍《Spring Boot實戰——Java EE開發的顛覆者》使用Spring Boot(2.0)搭建Spring MVC(5.0)專案進行配置時候,發現WebMvcConfigurerAdapter已過時檢視原始碼發現WebMvcConfigurerAdapter
springmvc配置檔案web.xml中/與/*的區別
<!-- 配置springmvc的 DispatcherServlet ctrl+alt+向上鍵 --><servlet><servlet-name>springDispatcherServlet</servlet-name>
淺談Android中MVP模式與MVC模式的區別
一、概述 對於MVP(Model View Presenter),大多數人都能說出一二:“MVC的演化版本”,“讓Model和View完全解耦”等等。本篇博文僅是為了做下記錄,提出一些自己的看法,和幫助大家如何針對一個Activity頁面去編寫針對MVP風
springmvc與strut2的區別
a、Struts2框架是類級別的攔截,每次請求就會建立一個Action,和Spring整合時Struts2的ActionBean注入作用域是原型模式prototype(否則會出現執行緒併發問題),然後通過setter,getter吧request資料注入到屬性。b、Struts2中,一個Action對應一個r
簡單瞭解 mvc 、mvp 與 MVVM 區別
mvc - 劃分三個角色: 使用者操作 view 層與 controller 層 mvp view 與 model 不發
AngulairJS表單輸入驗證與mvc
oot 表單 名稱 操作 數據庫 root min 位置 input AngulairJS表單輸入驗證 1.表單中,常用的驗證操作有:$dirty 表單有填寫記錄、$valid 字段內容合法的、$invalid 字段內容是非法的、$pristine 表單沒有填寫記錄、$er
HAProxy與Nginx區別
時間 請求 也會 維護 異常 會有 訪問 haproxy 失敗 1)HAProxy對於後端服務器一直在做健康檢測(就算請求沒過來的時候也會做健康檢查):後端機器故障發生在請求還沒到來的時候,haproxy會將這臺故障機切掉,但如果後端機器故障發生在請求到達期間,那麽前端訪問
axis2與cxf區別
開源社區 -s 實現 部署 廣泛 asi -a ice 喜歡 1.CXF支持 WS-Addressing,WS-Policy, WS-RM, WS-Security和WS-I Basic Profile。Axis2不支持WS-Policy,但是承諾在下面的版本支持。 2.