當前位置:首頁 » 編程語言 » javamvc

javamvc

發布時間: 2022-08-24 01:36:37

1. MVC在java開發中的應用主要有哪些

MVC是一種設計思想,將邏輯實現與數據展示分開,更好的組織代碼流程。
MVC不止針對一種程序語言,其他程序語言也有MVC的實現
Java中最經典的當然是SpringMVC

2. java中 mvc框架和mvc模式是同一個概念嗎

mvc模式是一種設計模式,簡單理解就是一種解決問題的思路
mvc框架是這種設計模式的實現,也就是幫你在你的程序裡面實現mvc設計模式

3. java 中對MVC的理解

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
簡單理解MVC的作用就是前後端分離

4. Java中的mvc和三層結構究竟是什麼關系

一件事,要知其然往往很簡單,要知其所以然通常不是那麼容易,就如最近重新鞏固spring的過程中,就覺得還有許多問題其實並不是十分明了。
屈指一算,手頭上做過的正式項目也有了四五六七個了,不管用的資料庫和其他一些細節上的技術如何,總的來說大的框架結構都是差不多的。
說白了,也就是mvc和三層結構。
而mvc和三層結構究竟是什麼關系,我曾在面試的過程中被人問過幾次,也曾仔細的想過、查過這個問題,但是直到此時,我也還是不能完全確定。

只不過隨著時間的積累,隨著技術的沉澱,隨著視野的拓寬,我大體上認同了兩種說法,不管別人怎麼看,我個人是覺得兩種說法都有道理,歡迎對這個問題有不同看法的朋友一起討論。
三層結構是什麼,是展現層、應用層、數據訪問層,這個基本上是沒有太大的異議的,兩種看法的來源基本上都是來自對於mvc的理解。
對於java web應用來說,不管是B/S還是C/S,大體上都可以分成服務端和客戶端兩部分,只不過B/S的客戶端就是公用的瀏覽器。

基於這種大的架構,有一種對於mvc的說法就是:

m是model,也就是和資料庫相關的那些,比如實體類和、mapper.xml等,對應著三層結構的數據訪問層;
v是view,也就是前台的頁面或者說是客戶端展示給用戶看的東西,也就是展現層;
而c就是controller以及service等具體的業務邏輯,對應著三層結構的應用層。123


而對於這種說法,為什麼我覺得有道理呢?是因為按照這種描述,就是和前台展示直接相關的東西都放在展現層。
*比如controller要直接和url打交道,而很多時候返回給客戶端的數據也會封裝成對象的形式,經常就是model;也就是說不管是controller還是model,都實打實和用戶看得到的部分相關,就劃為了展現層。
只不過在某些時候,就比如我們現在的項目中,為了進一步的實現松耦合,我們會創建一個command類,類似於實體model,然後用model操作資料庫,用command和前台打交道,道理是一樣的。
而在另一方面,我們現在項目前端使用的技術是angular js,這項技術現在也說實現了前台的mvc,有controller、service,還有數據層。
因此在這種情況下,我個人就覺得,mvc本就是一個概念,重要的是一種理解,它本身的作用只是為了實現松耦合,而不是為了mvc而mvc,未必一定要有一個唯一的答案!

歡迎有其他理解的朋友留言交流!

以下是我覺得比較好的其他理解:
來自網路的說法,是否是標准?

MVC(模型Model-視圖View-控制器Controller)是一種架構模式,可以用它來創建在域對象和UI表示層對象之間的區分。
同樣是架構級別的,相同的地方在於他們都有一個表現層,但是他們不同的地方在於其他的兩個層。
在三層架構中沒有定義Controller的概念。這是最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建程序最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVC中Model的概念是不一樣的,「三層」中典型的Model層是以實體類構成的,而MVC里,則是由業務邏輯與訪問數據組成的。

這是來自網路知道的說法,是否專業?

MVC和三層架構有什麼區別就是MVC是最流行的三層架構中的一種框架,就是模型-視圖-控制器三者分離。
MVC模式(Model–view–controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施樂帕羅奧多研究中心(Xerox
PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟體架構。MVC模式的目的是實現一種動態的程式設計,使後續對程序的修改和擴展簡化,並且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復雜度的簡化,使程序結構更加直觀。軟體系統通過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。專業人員可以通過自身的專長分組:
控制器(Controller)- 負責轉發請求,對請求進行處理。 視圖(View) - 界面設計人員進行圖形界面設計。 模型(Model)
- 程序員編寫程序應有的功能(實現演算法等等)、資料庫專家進行數據管理和資料庫設計(可以實現具體的功能)。

來自來看日出的評論,我覺得有道理

無意中看到這個問題,我前段時間也想了很久,今天看到有點感觸,不知道您怎麼看,我一直其實有疑惑的(一個剛參加工作的新人)對於mvc的三層架構,設計理念是為了實現高內聚低耦合,您說得第一種三層結構,我覺得其實並沒有達到這個低耦合的效果,因為在應用層處理業務時,並沒有將真正的業務邏輯和資料庫邏輯分離開來,僅僅將視圖和邏輯分離開了,並沒有達到低耦合的效果,個人這並不是真正的MVC。
個人的理解,mvc應該分為5層。
1.視圖層(html/jsp/)等用戶能看得到的信息,數據信息的開始和結束。
2.控制層(servlet/action),控制層不處理任何業務(包括業務邏輯和資料庫邏輯),只為控制流程,實現跳轉功能,只調用service層的結果實現跳轉功能,控制層的邏輯更偏向視圖層,為視圖層提供服務。
3.服務層(service):專門處理業務邏輯,是控制層和DAO的中間過渡層,根據DAO層的返回結果的不同,處理不同的業務邏輯,並將結果向上返回給控制層。
4.DAO層:專門處理各種資料庫邏輯,包括對資料庫的CRUD,存儲過程/函數各種操作,提供訪問資料庫的介面,DAO層更偏向於model。
5.數據模型層:專門封裝數據原始模型(javabean/DTO),本身不提供任何對資料庫的操作,只提供介面供DAO層調用數據。 從上到下依次為視圖層,控制層,服務層,DAO層,數據模型層。 個人理解,新人剛入門,有錯誤的地方希望指出共同學習。

我對來看日出的回復如下:

實際上,我個人現在的觀點是,我覺得我說的兩種都有道理,而你說的這一種也有道理,只看出發點是什麼,能不能說通。
你的這種說法,應該是實際開發時的代碼結構,後端通常有model、、service、controller,但是現在的前端,就比如我們用的angular js,實際上也分成了數據模型層、servie層、controller層、html展示層。
因此,我的理解是,網上常見的mvc解釋應該是針對之前整個系統架構比較簡單的情況,而現在前後端各種架構和技術都復雜起來了,可能便不能再這樣簡單的對應。
也就是說,我說的兩種實際上對於現在的情況可能都不對了。
隨著工作時間的增長,我對這個問題的看法一直在變,或許就是那句「看山是山,然後看山不是山,然後看山是山」,理解性的東西,本來就會隨著個人的閱歷增長而變化,今天覺得對的可能明天就覺得錯了。
所以,歸根結底,我覺得可以回到主題:我覺得對錯不重要,重要的是能不能說通,是不是自己的理解,對也好,錯也罷,能說的有理有據就夠了,因為理解會變。

5. java MVC設計模式

差不多吧,根據公司不同,分的層數也不同,但是MVC三個主層視圖層,控制層,模型層肯定是沒錯的。再細分比如視圖層可以包含JSP,FORM表單Bean等等。控制層里可以是Servlet,action,主要是接收視圖層的數據,調用模型層方法的。模型層可以包含業務層,接收控制層傳來的數據,調用持久化層。持久化層就是普通類不屬於MVC三層之中,主要寫關於資料庫的語句,由於它是對資料庫操作使用的,所以需要寫。其他的,比如DTO層,就是用來封裝數據的。MVC之間傳值用的,不屬於MVC。FORM表單Bean,是用來驗證表單信息的,跟JS差不多,但是JS是在客戶端驗證表單信息,不安全,表單Bean是在伺服器端,能安全一些。等等。

6. java的MVC是什麼

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

7. java中的mvc模式

MVC模式是"Model-View-Controller"的縮寫,中文翻譯為"模式-視圖-控制器"。MVC應用程序總是由這三個部分組成。Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數據或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數據來刷新自己。MVC模式最早是smalltalk語言研究團提出的,應用於用戶交互應用程序中。smalltalk語言和java語言有很多相似性,都是面向對象語言,很自然的SUN在petstore(寵物店)事例應用程序中就推薦MVC模式作為開發Web應用的架構模式。MVC模式是一種架構模式,其實需要其他模式協作完成。在J2EE模式目錄中,通常採用service to worker模式實現,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式組成。而Struts只實現了MVC的View和Controller兩個部分,Model部分需要開發者自己來實現,Struts提供了抽象類Action使開發者能將Model應用於Struts框架中。
MVC模式是一個復雜的架構模式,其實現也顯得非常復雜。但是,我們已經總結出了很多可靠的設計模式,多種設計模式結合在一起,使MVC模式的實現變得相對簡單易行。Views可以看作一棵樹,顯然可以用Composite Pattern來實現。Views和Models之間的關系可以用Observer Pattern體現。Controller控制Views的顯示,可以用Strategy Pattern實現。Model通常是一個調停者,可採用Mediator Pattern來實現。
現在讓我們來了解一下MVC三個部分在J2EE架構中處於什麼位置,這樣有助於我們理解MVC模式的實現。MVC與J2EE架構的對應關系是:View處於Web Tier或者說是Client Tier,通常是JSP/Servlet,即頁面顯示部分。Controller也處於Web Tier,通常用Servlet來實現,即頁面顯示的邏輯部分實現。Model處於Middle Tier,通常用服務端的javaBean或者EJB實現,即業務邏輯部分的實現。

8. java中的MVC模式是具體框架

MVC是 模型(Model),視圖(View)和控制(Controller)的縮寫,其目的實現Web系統的職能分工。其中Model層實現系統中的業務邏輯,通常可以用JavaBean或EJB來實現; View層用於與用戶的交互,通常用JSP來實現; Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求並選擇恰當的視圖以用於顯示,同時它也可以解釋用戶的輸入並將它們映射為模型層可執行的操作。

Java的MVC主要框架有JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket等

9. Java中的MVC是什麼

一、什麼是MVC
Model:模型層
View:視圖層
Controller:控制層
MVC (Modal View Controler)本來是存在於Desktop程序中的,M是指數據模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如一批統計數據你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。

模型-視圖-控制器(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,並且有能力應付它所帶來的額外的工作和復雜性,MVC將會使你的軟體在健壯性,代碼重用和結構方面上一個新的台階。
希望對您有所幫助!~

10. java的MVC是什麼有什麼用

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

熱點內容
安卓手機怎麼加速進程 發布:2025-01-18 07:29:48 瀏覽:681
塞恩拐彎腳本 發布:2025-01-18 07:29:37 瀏覽:742
師資配置含哪些內容 發布:2025-01-18 07:17:35 瀏覽:706
江西腳本 發布:2025-01-18 07:14:38 瀏覽:392
php中i方法 發布:2025-01-18 07:13:19 瀏覽:369
FTP寶塔Linux面板 發布:2025-01-18 07:10:05 瀏覽:396
無線網卡怎麼改密碼 發布:2025-01-18 06:54:41 瀏覽:766
ava動態編譯 發布:2025-01-18 06:54:39 瀏覽:765
中國學位論文全文資料庫 發布:2025-01-18 06:43:49 瀏覽:689
全局變數存儲類別 發布:2025-01-18 06:39:29 瀏覽:424