⑴ 簡述web開發中mvc框架是什麼,並描述mvc框架的基本流程
MVC框架就是已經幫你准備好了視圖跟控制器的基類以及相互關聯的程序基礎類,你只需要繼承控制器或者視圖來具體實現就行了,框架會自動幫你實現MVC模式間的交互。
如果你只懂模式,沒有框架,那麼你自己必須按照MVC的模式要求,來自己一個個實現控制器跟視圖,還有他們之間的交互。
⑵ JSP在MVC模式開發的Web項目中的作用是
jsp用來嵌入在網頁中實現動態顯示網頁數據的效果
MVC本來是存在於Desktop程序中的,M是指數據模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式
⑶ 對mvc的理解,mvc有什麼優缺點,結合struts,說明在一個web應用中如何去使用
在Struts應用的視圖中包含JSP,客戶化標簽兩個組件。Struts是一種基於MVC經典設計模式的開放源代碼的應用框架,也是目前Web開發中比較成熟的一種框架。通過把Servlet、JSP、JavaBean、自定義標簽和信息資源整合到一個統一的框架中,為Web開發提供了具有高可配置性的MVC開發模式。Struts體系結構實現了MVC設計模式的概念,它將Model、View和Controller分別映射到Web應用中的組件。Model由代表系統狀態和商業邏輯Action來構建,View是由JSP和struts提供的自定義標簽來實現,Controller負責控制流程,由ActionServlet和ActionMapping來完成
⑷ .net web開發有WEBFORM,MVC,EF等來開發,各有什麼優點和缺點
net web主要的優點就是速度快,因為.net web使用的語言是C#,C#做的程序就是事件+控制項,你比如使用EXTJS這個JS框架,C#只需要使用控制項就可以搞定,MVC、EF這些如果使用EXTJS框架,只能自己手寫代碼,MVC、EF開發網站的周期較.net web長
C#裡面使用ADO.NET連接資料庫又不像MVC(JavaEE),不同的資料庫操作引入不同的命名空間(Java裡面叫導入包),這個比Java方便得多,因為Java使用資料庫,必須找到對應版本資料庫的jar包才可以,否則無法操作資料庫,C#直接引入對應的命名空間,比如使用微軟的MSsql資料庫,C#只需要導入System.Data,System.Data.SqlClient這兩個命名空間即可調用對應的資料庫操作類,但是Java不一樣,比如SQL2000和SQL2005使用的jar包是不一樣的,但是這C#使用這兩個資料庫直接導入System.Data,System.Data.SqlClient就可以了
C#使用AJAX也只需要使用一個控制項,而MVC、EF肯定要手寫
C#唯一的缺點是不能跨平台,也就是你開發的web網頁,只能部署在Windows裡面的IIS(Internet Informatica Server)伺服器上
MVC、EF可以跨平台,也就是就算你使用Linux都可以將網頁部署上去
⑸ .net web開發有WEBFORM、MVC、EF等來開發,它們各有什麼優點和缺點
asp.net Web Forms
優點:最重要的一點解決方案多,經驗豐富,什麼需求基本都能找到解決方法。沒有什麼比伺服器端控制項再好用的東西了。數據綁定控制項(gridview,formview),數據原(objectdatasource,sqldatasource,linqdatasouce),有了這些控制項開發業務系統覺得沒有比用web forms更好,更快的技術了 提供的服務多,到asp.net2.0 .net framework就提供很多非常好的服務,profile,membership,cache,Microsoft patterns & practices(企業庫)UI控制項,AJAX,第三支持的比較多有著很多成熟的開發模型比如微軟推出petshopN層架構 。
缺點:因為使用了功能強大的伺服器控制項導致頁面比較大,每次post,response的數據相對ajax,silverlight肯定是大的,會影響性能。
Silverlight
優點:開發富互聯網應用(RIA)絕對是最合適的技術,,新版Silverlight集成GPU加速,開發3D,多媒體絕對是利器。
對於一些業務系統,做得好的,真的好看,而且好用,用戶體驗也很好網上可以找不少Demo
新的Silverlight開發模式MVVM雖然比較新但真的很好用,如果要做業務系統那麼一定要用MVVM這個設計模式太能體現更多Silverlight開發優勢(databinding 功能強大)
缺點:掌握UI設計工具的人太少,所以做不出很酷,很炫的頁面效果。
與後台交互不方便,所有交互只能是web service(WCF),雖然RIA1.0也很方便,但都是非同步操作,總沒有web form那麼直接了當。回調來對調去的還有4.0提供了很強大的匿名方法還有Action<>這些類庫。
最後我只能說要想做得好真不容易。
ASP.NETMVC
我還沒有用mvc 2,3做過項目只是最近做一些tutorial,給我的影響就是返樸歸真,與後台交互回到了最原始Post,Response,類似回到ASP時代。
優點:層次清晰,Model,Controller,View ,Action,都有向導產生,非常規范,感覺就是很專業,像是搞大項目架構,不想web form那麼隨意。
頁面展現和後台完全分開,去掉了伺服器端控制項,與後台交互使用JSON數據對象,所以性能上一定優於web form 還有同樣強大的Route URL功能,搜索引擎優化SEO。
成熟的MVC設計模式。
缺點:取消了伺服器端控制項,使得一些業務系統的輸入變得更為單調,在一些也用戶的互操作上大打折扣。
與後台交互雖然比Silverlight要好點,不用非同步方法,但只能post,submit還是沒有web form的事件機制好用。
一定要精通javascript,Jquery,Json不然UI這關真不好過。
最後對於開發業務系統最主要還是提供用戶很方便輸入數據,快速響應操作,對於開發人員就能很方便保存和更新數據,能很方便調用的需要數數據,調用特定的方法,並返回需要結果。能很方便的調試代碼。
雖然silverlight,asp.net mvc都是在asp.net webform後出來的技術,但也沒有必要就認為Silverlight,MVC就一定比傳統的asp.net webform就好。其實不關什麼技術都是為了解決不同的問題而產生,每項技術都有他存在的價值。
可惜很多開發人員對web form的了解還停留在asp.net 1.0的時代,很多asp.net的新特性都沒有用到,還有就是拿asp.net的開發模式去開發silverlight應用。
⑹ 如何用myeclipse spring mvc 開發web
環境版本
IDE:MyEclipse 8.5
Spring:spring 3.2.8
JDK:1.6
1.打開MyEclipse-->File-->New-->Web Project,在打開的對話框裡面輸入project Name為SpringMvc,點擊Finish。如下圖所示:
2.在新建項目上右鍵選擇,properties-->Java Build Path-->Libraries-->Add External JARs,引入spring-framework-3.2.8.RELEASE-dist目錄下幾個必需的jar包.
3.文件結構
4.web.xml配置:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 監聽所有請求 --> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
5.springmvc-servlet.xml配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 掃描所有的 controller --> <context:component-scan base-package="com.springmvc.controllers" /> <!-- 啟動註解驅動 SpringMVC 功能 --> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/views/" /> <property name="suffix" value=".jsp" /> </bean></beans>
6.在WebRoot目錄下,新建views文件夾,添加index.jsp.
7.在com.springmvc.controllers包下,新建HomeController類文件,
8.部署項目運行,訪問http://localhost:8080/SpringMvc/home,
⑺ servlet在使用mvc模式開發web項目中的作用
servlet的作用:處理請求,視圖跳轉。
MVC模式就是一種目前廣泛流行的設計模式.它是Xerox PARC在20世紀80年代為編程語言Smalltalk-80發明的一種軟體設計模式舊。MVC是Model-View-Controller的簡稱。即模型-視圖-控制器[8]。MVC包括三類對象.模型Model是應用對象.視圖View是它在屏幕上的表示,控制器Controller定義用戶界面對用戶輸入的響應方式。
⑻ 在用mvc設計模式開發Web程序時實體與實體之間的關系還要設計一個單獨的實體類嗎,比如學生選課的過程
這個得根據你具體的需求來訂,你肯定最後也就是要看哪個學生,選了那些課,所以呢你建立的這個關系表是沒有自己單獨的方法的,他的作用就是將學生表和選課表建立聯系,所以你可以在學生表層,寫個查詢該學生選了多少課程的方法,用到關系表。當然也可以在課程層,寫個查多少學生學了該課的方法,沒必要建個關系類了。
⑼ 簡述mvc思想在web體系軟體開發中起什麼作用
Model在Web系統中的應用
Model對象代表了商業規則和商業數據,存在於EJB層和Web層。在J2EE的規范中,系統有些數據需要存儲於資料庫中,如用戶的賬號信息(account model),公司的數據(company model)等,也有一些不需要記錄在資料庫里的,如某用戶瀏覽的當前產品目錄(catalog model),他的購物內容(shopping cart model)等。這些model數據存在於哪一層要根據它們的生命周期和范圍來決定。在Web層有HttpSession和ServletContext及Java Bean對象來存儲數據,在EJB層則有EJB來存儲數據和邏輯。Web層的Java Bean的model對象存儲了EJB層model對象的數據的拷貝。因為EJB層有很多不同的model對象,所以Web層可以通過一個ModelManager來控制EJB層的各model對象,在ModelManger中可以封裝使用後台model對象的方法。
在EJB層把所有的數據和規則都模式化為EJB也是不恰當的。如可以把存取資料庫的對象模式化為DAO對象。DAO中可以封裝與具體資料庫的交互細節,如可以讀寫不同的表,多個資料庫,甚至多種資料庫。如定單的model對象可以是一個OrderDAO, 它可能要同時處理Order表,OrderStatus表和OrderItemLines表。
還有可以考慮使用Value對象。一個Value 對象可以封裝遠程對象,因為每一個讀遠程對象的屬性都可能是一個遠程過程調用,都會耗費網路資源。可以在EJB的遠程對象中使用Value對象. 在遠程對象中一次性得到Value對象來得到所有屬性的值。
3.3 Controller在Web系統中的應用
Controller對象協調Model與View,把用戶請求翻譯成系統識別的事件。在Web層,一般有一個MainServlet(或Main.jsp),接收所有請求,它可以調用屏幕流管理器(ScreenFlowManger)決定下一個屏幕。一般還有一個請求處理器RequestProcessor,包含所有請求都需要做的處理邏輯,如把請求翻譯成系統事件(RequestToEvent)。請求處理器通常還包含一個代理對象ClientControlWebImpl,它是EJB層的邏輯處理的在Web層的代理。在EJB層,有一個ClientController提供Web 層對EJB層的只讀訪問。還有一個StateMachine用來建立和刪除ejb,處理Web層送來的事件。
Controller還有一個重要的功能就是同步View和Model的數據。在ModelManger中包含一個ModelUpdateManger,它把系統事件轉換為一個Model的集合,即所有需要同步的Model,然後通知Listeners去做同步操作。
4. 結束語
近年來隨著互聯網技術的發展和新的商業模式的出現,必然會出現大量基於Web的應用系統。對於如何設計這些系統的體系結構,也逐漸有了一些統一的認識,最主要的是的就是其體系結構要合理,開放。需求永遠會比技術和設計思想發展快,要使將來系統的升級所付出的代價最小,研究軟體系統的體系結構還是非常很用和有必要的。
⑽ Java Web 開發時的 MVC 模型和軟體的3層架構(表現層,業務邏輯層,數據訪問層)有哪些區別和聯系
三層架構和MVC是有明顯區別的,MVC應該是展現模式(三個加起來以後才是三層架構中的UI層)
三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了「高內聚,低耦合」的思想。
1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
3、數據訪問層(DAL):該層所做事務直接操作資料庫,針對數據的增添、刪除、修改、更新、查找等。
MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的UI層,也就是說,MVC把三層架構中的UI層再度進行了分化,分成了控制器、視圖、實體三個部分,控制器完成頁面邏輯,通過實體來與界面層完成通話;而C層直接與三層中的BLL進行對話。