導航:首頁 > 編程語言 > java的mvc原理

java的mvc原理

發布時間:2022-09-10 09:50:43

『壹』 springmvc的工作原理,簡單的概括一下

  1. 客戶端請求提交到DispatcherServlet。

  2. 由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller。

  3. DispatcherServlet將請求提交到Controller。

  4. Controller調用業務邏輯處理後,返回ModelAndView。

  5. DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖。

  6. 視圖負責將結果顯示到客戶端。

『貳』 spring mvc原理是什麼

Spring框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用Spring可插入的MVC架構,可以選擇是使用內置的Spring Web框架還是Struts這樣的Web框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種視圖技術;

例如 javaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC框架並不知道使用的視圖,所以不會強迫您只使用 JSP 技術。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定製。

(2)java的mvc原理擴展閱讀:

客戶端請求提交到DispatcherServlet。

由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller。

DispatcherServlet將請求提交到Controller。

Controller調用業務邏輯處理後,返回ModelAndView。

DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖。

視圖負責將結果顯示到客戶端。

『叄』 spring mvc的運行原理是什麼,m代表什麼,v代表什麼,v包含些什麼,m包含些什麼

m代表model模型,v代表view視圖,c代表controller,控制器。m中包含你寫的業務邏輯,就是取數據的模型,v代表你顯示的視圖,c來控制m和v之間的關系。mvc的運行原理基本一樣沒有什麼不一樣的地方,只是不同的mvc框架的實現技術不一樣吧了。接下來我給你考一段網上的別人的看法;
模型-視圖-控制器(MVC)是Xerox PARC在八十年代為編程語言Smalltalk-80發明的一種軟體設計模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平台的設計模式,並且受到越來越多的使用 ColdFusion 和 PHP 的開發者的歡迎。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處,但也有一些缺點。

MVC如何工作

MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。

視圖
視圖是用戶看到並與之交互的界面。對老式的Web應用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標識語言和Web services.
如何處理應用程序的界面變得越來越有挑戰性。MVC一個大的好處是它能為你的應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發生,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數據並允許用戶操縱的方式。

模型
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理資料庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據。由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。

控制器
控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後用確定用哪個視圖來顯示模型處理返回的數據。
現在我們總結MVC的處理過程,首先控制器接收用戶的請求,並決定應該調用哪個模型來進行處理,然後模型用業務邏輯來處理用戶的請求並返回數據,最後控制器用相應的視圖格式化模型返回的數據,並通過表示層呈現給用戶。

為什麼要使用 MVC
大部分Web應用程序都是用像ASP,PHP,或者CFML這樣的過程化語言來創建的。它們將像資料庫查詢語句這樣的數據層代碼和像HTML這樣的表示層代碼混在一起。經驗比較豐富的開發者會將數據從表示層分離開來,但這通常不是很容易做到的,它需要精心的計劃和不斷的嘗試。MVC從根本上強制性的將它們分開。盡管構造MVC應用程序需要一些額外的工作,但是它給我們帶來的好處是無庸質疑的。
首先,最重要的一點是多個視圖能共享一個模型,正如我所提及的,現在需要用越來越多的方式來訪問你的應用程序。對此,其中一個解決之道是使用MVC,無論你的用戶想要Flash界面或是 WAP 界面;用一個模型就能處理它們。由於你已經將數據和業務規則從表示層分開,所以你可以最大化的重用你的代碼了。
由於模型返回的數據沒有進行格式化,所以同樣的構件能被不同界面使用。例如,很多數據可能用HTML來表示,但是它們也有可能要用Macromedia Flash和WAP來表示。模型也有狀態管理和數據持久性處理的功能,例如,基於會話的購物車和電子商務過程也能被Flash網站或者無線聯網的應用程序所重用。
因為模型是自包含的,並且與控制器和視圖相分離,所以很容易改變你的應用程序的數據層和業務規則。如果你想把你的資料庫從MySQL移植到Oracle,或者改變你的基於RDBMS數據源到LDAP,只需改變你的模型即可。一旦你正確的實現了模型,不管你的數據來自資料庫或是LDAP伺服器,視圖將會正確的顯示它們。由於運用MVC的應用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據這種設計思想你能構造良好的松偶合的構件。
對我來說,控制器的也提供了一個好處,就是可以使用控制器來聯接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構造應用程序提供強有力的手段。給定一些可重用的模型和視圖,控制器可以根據用戶的需求選擇模型進行處理,然後選擇視圖將處理結果顯示給用戶。

MVC的缺點
MVC的缺點是由於它沒有明確的定義,所以完全理解MVC並不是很容易。使用MVC需要精心的計劃,由於它的內部原理比較復雜,所以需要花費一些時間去思考。
你將不得不花費相當可觀的時間去考慮如何將MVC運用到你的應用程序,同時由於模型和視圖要嚴格的分離,這樣也給調試應用程序到來了一定的困難。每個構件在使用之前都需要經過徹底的測試。一旦你的構件經過了測試,你就可以毫無顧忌的重用它們了。

根據我個人經驗,由於我們將一個應用程序分成了三個部件,所以使用MVC同時也意味著你將要管理比以前更多的文件,這一點是顯而易見的。這樣好像我們的工作量增加了,但是請記住這比起它所能帶給我們的好處是不值一提。
MVC並不適合小型甚至中等規模的應用程序,花費大量時間將MVC應用到規模並不是很大的應用程序通常會得不償失。
MVC是一條創建軟體的好途徑
MVC設計模式是一個很好創建軟體的途徑,它所提倡的一些原則,像內容和顯示互相分離可能比較好理解。但是如果你要隔離模型、視圖和控制器的構件,你可能需要重新思考你的應用程序,尤其是應用程序的構架方面。如果你肯接受MVC,並且有能力應付它所帶來的額外的工作和復雜性,MVC將會使你的軟體在健壯性,代碼重用和結構方面上一個新的台階。

Java開發Web Application有幾種符合MVC設計模式的開發方式。
1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:TDK(Turbine,Velocity...)
4:Xsp
5:Jsp+Struts+JavaBean(EJB)

附:
三層架構即「表現層」,「業務層」,「持久化層」。表現層實現的代表作品是Struts框架,業務層實現的代表作品是Spring,持久層實現的代表作品是Hibernate。
舉個例子。
持久層從持久庫中取出-10。
業務層按照一定的邏輯(這里我們舉例取溫度的邏輯)翻譯成-10攝氏度。
表示層顯現給用戶「哎呀,今天好冷!」。
層就相當於一個黑盒子,我們不用知道它內部怎麼實現,只需要知道如何去調用它就行了。每層只與上下相鄰的兩層打交道。當一層內部由於技術變遷發生變化時,只要介面不變,其他層不用做任何改變。分層之後靈活性提高,也便於團隊分工開發。
呵呵,寫的很詳細吧。希望對你有幫助。

『肆』 java的MVC是什麼有什麼用

mvc分別是模型視圖和控制是一種設計模式,這種模式應用於應用程序分層開發。
Model(模型) - 模型代表一個存取數據的對象或 JAVA POJO。它也可以帶有邏輯,在數據變化時更新控制器。
View(視圖) - 視圖代表模型包含的數據的可視化。
Controller(控制器) - 控制器作用於模型和視圖上。它控制數據流向模型對象,並在數據變化時更新視圖。它使視圖與模型分離開。

『伍』 SpringMVC的工作原理是什麼樣的,跟Spring的關系是怎麼樣的

springMVC的工作原理如下:

  1. springmvc請所有的請求都提交給DispatcherServlet,它會委託應用系統的其他模塊負責負責對請求進行真正的處理工作。

  2. DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.

  3. DispatcherServlet請請求提交到目標Controller

  4. Controller進行業務邏輯處理後,會返回一個ModelAndView

  5. Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

  6. 視圖對象負責渲染返回給客戶端。

與spring的關系:

Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring模塊構建在核心容器之上,核心容器定義了創建、配置和管理bean 的方式。
組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:
核心容器:核心容器提供 Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
Spring 上下文:Spring 上下文是一個配置文件,向 Spring框架提供上下文信息。Spring上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。
Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基於Spring的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴EJB組件,就可以將聲明性事務管理集成到應用程序中。
Spring DAO:JDBCDAO抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。SpringDAO的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM的對象關系工具,其中包括JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和DAO異常層次結構。
Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基於Web的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts的集成。Web模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。
Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC實現。通過策略介面,MVC框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括JSP、Velocity、Tiles、iText 和 POI。

Spring 框架的功能可以用在任何 J2EE伺服器中,大多數功能也適用於不受管理的環境。Spring的核心要點是:支持不綁定到特定 J2EE服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同 J2EE 環境 (Web或EJB)、獨立應用程序、測試環境之間重用。

由此可以看出:Spring MVC 框架只是spring的一個子模塊,用在java ee工程的web層組件。

『陸』 spring mvc的工作原理是什麼

spring mvc的工作原理是:提供了構建 Web 應用程序的全功能 MVC 模塊。使用Spring可插入的MVC架構,可以選擇是使用內置的Spring Web框架還是Struts這樣的Web框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種視圖技術。

例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC框架並不知道使用的視圖,所以不會強迫您只使用 JSP 技術。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定製。

客戶端請求提交到DispatcherServlet:

由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller。

DispatcherServlet將請求提交到Controller。

Controller調用業務邏輯處理後,返回ModelAndView。

DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖。

視圖負責將結果顯示到客戶端。

『柒』 java的MVC是什麼

MVC是一種通用的編程思想,獨立於語言。MVC意思是Model(模型)+View(視圖)+Controller(控制器)。其中Model指的就是數據模型,負責封裝數據、處理數據;View負責展示用戶界面;Controller用於協調模型和視圖,負責接收用戶請求。

『捌』 java 請問下SpringMVC中Spring的主要工作原理是什麼是怎麼工作的工作流程

一、 IoC(Inversion of control): 控制反轉
1、IoC:
概念:控制權由對象本身轉向容器;由容器根據配置文件去創建實例並創建各個實例之間的依賴關系
核心:bean工廠;在Spring中,bean工廠創建的各個實例稱作bean
二、AOP(Aspect-Oriented Programming): 面向方面編程
1、 代理的兩種方式:
靜態代理:
 針對每個具體類分別編寫代理類;
 針對一個介面編寫一個代理類;
動態代理:
針對一個方面編寫一個InvocationHandler,然後借用JDK反射包中的Proxy類為各種介面動態生成相應的代理類
2、 AOP的主要原理:動態代理

Spring工作原理
Spring 已經用過一段時間了,感覺Spring是個很不錯的框架。內部最核心的就是IOC了,
動態注入,讓一個對象的創建不用new了,可以自動的生產,這其實就是利用java里的反射
反射其實就是在運行時動態的去創建、調用對象,Spring就是在運行時,跟xml Spring的配置
文件來動態的創建對象,和調用對象里的方法的 。
Spring還有一個核心就是AOP這個就是面向切面編程,可以為某一類對象 進行監督和控制(也就是
在調用這類對象的具體方法的前後去調用你指定的 模塊)從而達到對一個模塊擴充的功能。這些都是通過
配置類達到的。
Spring目的:就是讓對象與對象(模塊與模塊)之間的關系沒有通過代碼來關聯,都是通過配置類說明
管理的(Spring根據這些配置 內部通過反射去動態的組裝對象)
要記住:Spring是一個容器,凡是在容器里的對象才會有Spring所提供的這些服務和功能。
Spring里用的最經典的一個設計模式就是:模板方法模式。(這里我都不介紹了,是一個很常用的設計模式)
Spring里的配置是很多的,很難都記住,但是Spring里的精華也無非就是以上的兩點,把以上兩點跟理解了
也就基本上掌握了Spring.

『玖』 MVC 模式的原理,它在 Android 中是如何運用的

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。其中M層處理數據,業務邏輯等;V層處理界面的顯示結果;C層起到橋梁的作用,來控制V層和M層通信以此來達到分離視圖顯示和業務邏輯層。
在Android開發中,比較流行的開發框架模式採用的是MVC框架模式,採用MVC模式的好處是便於UI界面部分的顯示和業務邏輯,數據處理分開。那麼Android項目中哪些代碼來充當M,V,C角色呢?
M層:適合做一些業務邏輯處理,比如資料庫存取操作,網路操作,復雜的演算法,耗時的任務等都在model層處理。這個和JavaEE不太一樣,javaee中model層一般只有模型,而復雜的操作一般放在業務(service)層中。
V層:應用層中處理數據顯示的部分,XML布局可以視為V層,顯示Model層的數據結果。
C層:在Android中,Activity處理用戶交互問題,因此可以認為Activity是控制器,Activity讀取V視圖層的數據(eg.讀取當前EditText控制項的數據),控制用戶輸入(eg.EditText控制項數據的輸入),並向Model發送數據請求(eg.發起網路請求等)。

閱讀全文

與java的mvc原理相關的資料

熱點內容
美食博主用什麼app拍視頻 瀏覽:812
ipone手機如何加密微信 瀏覽:354
自來水加密閥閥帽 瀏覽:431
華為交換機dhcp配置命令 瀏覽:315
androidbitmap縮小 瀏覽:271
單片機串口控制燈 瀏覽:84
大訊雲伺服器安裝視頻 瀏覽:784
華為演算法領先世界 瀏覽:654
linux路由重啟 瀏覽:566
php的模板編程 瀏覽:322
編譯器原理與實現書 瀏覽:710
dos選擇命令 瀏覽:18
apm固件編譯到單片機 瀏覽:122
聯通深藍卡都包含什麼app 瀏覽:266
如何判斷網路伺服器正常 瀏覽:652
路由器搭橋遠端伺服器地址是什麼 瀏覽:518
編譯動態庫時會連接依賴庫嗎 瀏覽:710
淘寶手機加密是隨機的嗎 瀏覽:675
解壓包子怎麼裝飾 瀏覽:588
四個數湊24演算法 瀏覽:679