版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Spring MVC架構(gòu)主講人修哥聯(lián)系方式人郵箱:課程內(nèi)容: Spring MVC框架概述 Spring MVC框架優(yōu)勢 Spring MVC框架架構(gòu) Spring MVC框架熱身 本章內(nèi)容總結(jié)Spring MVC框架概述 模型-視圖-控制器(MVC)是一個(gè)眾所周知的以設(shè)計(jì)界面應(yīng)用程序?yàn)榛A(chǔ)的設(shè)計(jì)模式。它主要通過分離模型、視圖及控制器在應(yīng)用程序中的角色將業(yè)務(wù)邏輯從界面中解耦。通常,模型負(fù)責(zé)封裝應(yīng)用程序數(shù)據(jù)在視圖層展示。視圖僅僅只是展示這些數(shù)據(jù),不包含任何業(yè)務(wù)邏輯??刂破髫?fù)責(zé)接收來自用戶的請求,并調(diào)用后臺服務(wù)(manager或者dao)來處理業(yè)務(wù)邏輯。處理后,后臺業(yè)務(wù)層
2、可能會返回了一些數(shù)據(jù)在視圖層展示??刂破魇占@些數(shù)據(jù)及準(zhǔn)備模型在視圖層展示。MVC模式的核心思想是將業(yè)務(wù)邏輯從界面中分離出來,允許它們單獨(dú)改變而不會相互影響。Spring MVC框架優(yōu)勢1、清晰的角色劃分:前端控制器(DispatcherServlet)、請求到處理器映射(HandlerMapping)、處理器適配器(HandlerAdapter)、視圖解析器(ViewResolver)、處理器或頁面控制器(Controller)、驗(yàn)證器( Validator)、命令對象(Command 請求參數(shù)綁定到的對象就叫命令對象)、表單對象(Form Object 提供給表單展示和提交到的對象就叫表單
3、對象)。2、分工明確,而且擴(kuò)展點(diǎn)相當(dāng)靈活,可以很容易擴(kuò)展,雖然幾乎不需要;3、由于命令對象就是一個(gè)POJO,無需繼承框架特定API,可以使用命令對象直接作為業(yè)務(wù)對象;4、和Spring 其他框架無縫集成,是其它Web框架所不具備的;Spring MVC框架優(yōu)勢5、可適配,通過HandlerAdapter可以支持任意的類作為處理器;6、可定制性,HandlerMapping、ViewResolver等能夠非常簡單的定制;7、功能強(qiáng)大的數(shù)據(jù)驗(yàn)證、格式化、綁定機(jī)制;8、利用Spring提供的Mock對象能夠非常簡單的進(jìn)行Web層單元測試;9、本地化、主題的解析的支持,使我們更容易進(jìn)行國際化和主題的切
4、換。10、強(qiáng)大的JSP標(biāo)簽庫,使JSP編寫更容易。還有比如RESTful風(fēng)格的支持、簡單的文件上傳、約定大于配置的契約式編程支持、基于注解的零配置支持等等。Spring MVC框架淘寶登錄分析具體執(zhí)行步驟具體執(zhí)行步驟如下:1、 首先用戶發(fā)送請求前端控制器,前端控制器根據(jù)請求信息(如URL)來決定選擇哪一個(gè)頁面控制器進(jìn)行處理并把請求委托給它,即以前的控制器的控制邏輯部分;圖中的1、2步驟;2、 頁面控制器接收到請求后,進(jìn)行功能處理,首先需要收集和綁定請求參數(shù)到一個(gè)對象,這個(gè)對象在Spring Web MVC中叫命令對象,并進(jìn)行驗(yàn)證,然后將命令對象委托給業(yè)務(wù)對象進(jìn)行處理;處理完畢后返回一個(gè)Mode
5、lAndView(模型數(shù)據(jù)和邏輯視圖名);圖中的3、4、5步驟;3、 前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖中的步驟6、7;4、 前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖中的步驟8;至此整個(gè)結(jié)束。SpringMVC組件總結(jié)1. DispatcherServlet前端控制器(不需要程序員寫)負(fù)責(zé)框架調(diào)度,相當(dāng)于中央處理器基本controller控制器功能:接收用戶request請求和給用戶response響應(yīng)2. HandlerMapping(處理器映射器)(不需要程序員寫)負(fù)責(zé)根據(jù)action的連接找到Handler處理器
6、(理解成寫的action)3. HandlerAdapter(處理器適配器)(不需要程序員寫)負(fù)責(zé)去執(zhí)行Handler4. *Handler處理器 需要程序員寫理解成struts里邊的action,需要程序員寫action類,這個(gè)action類符合適配器的執(zhí)行規(guī)則。SpringMVC組件總結(jié)5. ViewResolver(視圖解析器)(不需要程序員寫)負(fù)責(zé)將模型數(shù)據(jù)填充到View6. *View視圖需要程序員寫jsp頁面Spring MVC的HelloWorld軟件參數(shù)Eclipse:Mars.1 Release (4.5.1)Tomcat: 8.0.36JDK:1.8.0_60Spring-
7、framework: 4.0.4.RELEASE新建項(xiàng)目File-New-Other,選擇Dynamic web project項(xiàng)目建好之后,目錄結(jié)構(gòu)如下:導(dǎo)入jar包JAR包下載地址:http:/ mvc框架進(jìn)行開發(fā),需要依賴一下的spring jar包:spring-aop-4.0.4.RELEASE.jarspring-beans-4.0.4.RELEASE.jarspring-context-4.0.4.RELEASE.jarspring-core-4.0.4.RELEASE.jarspring-expression-4.0.4.RELEASE.jarspring-web-4.0.4.
8、RELEASE.jarspring-webmvc-4.0.4.RELEASE.jarcommons-logging-1.1.1.jar(用來打印log)配置文件及編寫代碼Springmvc.xml(scr下)。HelloWorld.javaHelloWorld.java(com.jackie.springmvc.handlerscom.jackie.springmvc.handlers下)下)使用 RequestMapping 映射請求 Spring MVC 使用 RequestMapping 注解為控制器指定可以處理哪些 URL 請求在控制器的類定義及方法定義處都可標(biāo)注RequestMapp
9、ing類定義處:提供初步的請求映射信息。相對于WEB應(yīng)用的根目錄方法處:提供進(jìn)一步的細(xì)分映射信息。相對于類定義處的 URL.若類定義處未標(biāo)注 RequestMapping,則方法處標(biāo)記的 URL 相對于WEB 應(yīng)用的根目錄 DispatcherServlet 截獲請求后,就通過控制器上RequestMapping 提供的映射信息確定請求所對應(yīng)的處理方法。index.jsp(WebContent下)當(dāng)訪問index.jsp時(shí),頁面上會展示一個(gè)超鏈接,點(diǎn)擊超鏈后,url中的地址就會發(fā)生跳轉(zhuǎn),由“http:/localhost:8080/springTest/index.jsp”跳轉(zhuǎn)到“http:/
10、localhost:8080/springTest/helloworld”,而這個(gè)url請求就會進(jìn)入HelloWorld中的hello方法,因?yàn)槠渑c該方法上的“/helloworld”匹配。success.jsp(WEB-INF/views下)該頁面是作為請求成功后的相應(yīng)頁面當(dāng)springmvc.xml中聲明了prefix和suffix,而夾在這兩者之間的就是這里返回的字符串,所以執(zhí)行完這個(gè)方法后,我們可以得到這樣的請求資源路徑“/WEB-INF/views/success.jsp”,這個(gè)success.jsp是需要我們新建的建立這個(gè)jsp有什么作用,什么時(shí)候調(diào)用呢?項(xiàng)目創(chuàng)建完畢 我們完成了基
11、于Spring mvc框架的HelloWorld程序的開發(fā),包括要依賴的jar包,配置的文件,控制器代碼的編寫和展示頁面的編寫等tomcat服務(wù)器的添加從前面的介紹可以看出,我們的程序是通過瀏覽器發(fā)請求來獲取想要的頁面,那么這里就免不了要有一個(gè)web服務(wù)器,這里就是tomcat。首先你需要下載個(gè)tomcat,然后在eclipse-windows-preference-servers中綁定這個(gè)tomcat服務(wù)器;其次你需要在你新建的spring mvc項(xiàng)目中添加tomcat的支持,否則在新建的jsp文件中會提示報(bào)錯(cuò)“The superclass javax.servlet.http.HttpSe
12、rvlet was not found on the Java Build Path”前綴配置路徑,推薦配置到WEB-INF 文件夾下:value=“/WEB-INF/pages”右鍵項(xiàng)目-build path-configure build path-add library-server runtime, 選擇你的tomcat即可tomcat服務(wù)器的添加spring mvc如何訪問靜態(tài)資源關(guān)于使用spring mvc處理靜態(tài)資源,比如html(發(fā)現(xiàn)之前的springmvc.xml中定義為jsp結(jié)尾就可以成功跳轉(zhuǎn),但是如果改為html并在web-inf下面新建了html文件后,并將suffix
13、這里的.jsp改為.html,無法跳轉(zhuǎn)到想要的html頁面,并且給出404錯(cuò)誤,同時(shí)console給出錯(cuò)誤信息為:No mapping found for HTTP request with URI /springTest/WEB-INF/views/result.html in DispatcherServ)最后發(fā)現(xiàn)是需要讓spring明確要處理靜態(tài)資源,原來的web.xml中只有其匹配的都是controller中類似RequestMapping(/springmvc/helloworld)這樣的注解配置的請求,而對于類似html/css/jpg等資源的訪問就會得不到,所以需要在web.xml中加入以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理學(xué)測試題+答案
- 體育活動對青少年成長影響的研究報(bào)告
- 企業(yè)展會的綠色化改造與優(yōu)化策略
- 體育課程實(shí)施中的教師角色與職責(zé)
- 個(gè)人品牌通過簡歷建立專業(yè)形象
- 兒童數(shù)學(xué)教材的情感化設(shè)計(jì)及市場分析
- 不同季節(jié)下的家庭花園規(guī)劃策略
- 從日常生活出發(fā)談家庭教育中的兒童交通出行安全教育
- 關(guān)于不同文化背景下的辦公室和辦公空間設(shè)計(jì)的深度解讀及優(yōu)化措施建議
- 創(chuàng)新親子閱讀方法提升孩子專注力
- 肩關(guān)節(jié)Constant評分表實(shí)用文檔
- 改革開放史學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 國家開放大學(xué)電大《美學(xué)原理》形考任務(wù)1-4試題和答案
- 關(guān)于2023地貧工作計(jì)劃6篇
- 清掃保潔及垃圾清運(yùn)承包合同
- PCB焊盤與孔設(shè)計(jì)規(guī)范(new)
- 儲存場所預(yù)先危險(xiǎn)性分析表
- 大學(xué)英語四六級詞匯完整打印版
- 國開電大本科《管理英語3》機(jī)考總題庫
- 動火作業(yè)票(參考)
- 2023-2024學(xué)年湖南省醴陵市小學(xué)數(shù)學(xué)四年級上冊期末高分測試題
評論
0/150
提交評論