版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第十章SpringMVC基礎(chǔ)-掌握MVC設(shè)計(jì)模式的基本原理-掌握SpringMVC的相關(guān)概念-掌握SpringMVC的工作流程-掌握SpringMVC的入門案例01020304項(xiàng)目需求背景知識(shí)項(xiàng)目實(shí)現(xiàn)經(jīng)典問題強(qiáng)化本章小結(jié)0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項(xiàng)目需求01項(xiàng)目需求01項(xiàng)目經(jīng)理老王:小王,你現(xiàn)在熟練掌握了Spring和MyBatis框架了吧?程序員小王:是的,通過之前的學(xué)習(xí)和項(xiàng)目實(shí)踐,我已經(jīng)掌握了這兩個(gè)框架,但是現(xiàn)在有個(gè)問題是如何接收處理前端頁面提交的數(shù)據(jù),并在業(yè)務(wù)處理完后將結(jié)果返回給對應(yīng)的頁面呢?項(xiàng)目經(jīng)理老王:你需要了解一下SpringMVC框架,它是Spring內(nèi)置的MVC框架,可以解決WEB開發(fā)中常見的功能需求,例如參數(shù)接收、文件上傳、表單驗(yàn)證和國際化等,而且SpringMVC框架使用簡單,可以與Spring無縫集成,并支持restful風(fēng)格的URL請求。程序員小王:好的,我會(huì)抓緊時(shí)間學(xué)習(xí)SpringMVC框架以便在項(xiàng)目中使用。功能描述01系統(tǒng)登錄頁面包括用戶名和密碼以及免登錄選框。功能描述01登錄失敗要顯示失敗原因并提示用戶,在登錄時(shí)可能出現(xiàn)的錯(cuò)誤情況有以下幾種。當(dāng)用戶名或密碼填寫錯(cuò)誤時(shí),會(huì)在登錄頁面提示用戶”用戶名或密碼錯(cuò)誤”。當(dāng)用戶的IP地址是不允許訪問的網(wǎng)段時(shí),會(huì)在登錄頁面提示用戶”ip受限”。當(dāng)用戶的賬號過期,會(huì)在登錄頁面提示用戶”賬號已經(jīng)過期”。當(dāng)用戶的狀態(tài)被鎖定,會(huì)在登錄頁面提示用戶”狀態(tài)被鎖定”。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識(shí)02知識(shí)導(dǎo)圖02MVC設(shè)計(jì)模式02MVC是一種廣泛存在于各類語言和開發(fā)中的軟件設(shè)計(jì)理念,它將應(yīng)用程序拆分為模型(model)、視圖(view)、控制器(controller)等三部分,以便將程序的業(yè)務(wù)邏輯、界面及數(shù)據(jù)訪問處理相分離,從而降低各模塊之間的耦合度,提升系統(tǒng)的可維護(hù)性和可擴(kuò)展性。SpringMVC基本概念及工作流程02SpringMVC是一個(gè)基于Java的MVC框架,它是Spring框架的擴(kuò)展,其提供了一種用于構(gòu)建Web應(yīng)用程序的模型-視圖-控制器(MVC)架構(gòu),并帶有許多有用的功能,如國際化支持、文件上傳、數(shù)據(jù)驗(yàn)證、異常處理等。SpringMVC的核心組件包括:
DispatcherServlet:SpringMVC的中央控制器,它負(fù)責(zé)接收所有的客戶端請求并將其分發(fā)給對應(yīng)的處理器。
HandlerMapping:處理器映射器,用于將URL映射到對應(yīng)處理器的組件。
Controller:控制處理器,其包含了控制器的內(nèi)容和其它增強(qiáng)的功能,主要針對客戶端請求完成業(yè)務(wù)邏輯處理。
ViewResolver:視圖解析器,用于接收、解析DispatcherServlet傳來的模型和視圖信息,并將模型數(shù)據(jù)渲染到視圖中去,響應(yīng)用戶的請求。SpringMVC基本概念及工作流程02SpringMVC各組件的工作流程如圖SpringMVC入門程序021. 需求分析本實(shí)例將使用SpringMVC模擬向后端請求所有商品信息數(shù)據(jù),并以列表形式展示每個(gè)商品的名稱、價(jià)格、商品描述等信息。SpringMVC入門程序02創(chuàng)建Maven工程創(chuàng)建maven工程3.導(dǎo)入項(xiàng)目依賴包SpringMVC入門程序02創(chuàng)建Items實(shí)體對象根據(jù)業(yè)務(wù)需求創(chuàng)建商品實(shí)體對象packagecom.demo.pojo;publicclassItems{
privateIntegerid;privateStringname;privateFloatprice;privateStringdetail;/*省略set/get方法*/}SpringMVC入門程序025. 創(chuàng)建ItemsController類在com.demo.controller包下創(chuàng)建控制器類ItemsController,添加如代碼清單10-3所示的內(nèi)容。該控制器用于處理前端發(fā)來的URL為"/list"的GET請求,當(dāng)控制器收到請求后,它會(huì)創(chuàng)建兩個(gè)商品對象并將它們添加到商品列表itemList中,接下來控制器會(huì)將itemList存儲(chǔ)到ModelAndView對象中,并將視圖名稱設(shè)置為"itemList"后傳遞給視圖解析器ViewResolver,該解析器會(huì)依據(jù)視圖名稱來查找名為"itemList.jsp"的JSP文件,并將ModelAndView中的數(shù)據(jù)渲染到該文件中,從而將結(jié)果響應(yīng)到瀏覽器中以完成商品列表的顯示。SpringMVC入門程序02配置springmvc核心配置文件在resources目錄下,創(chuàng)建springmvc的配置文件,在文件中配置控制器和視圖解析器信息。配置前端控制器在web.xml中,配置SpringMVC的前端控制器創(chuàng)建視圖頁面在WEB-INF目錄下創(chuàng)建一個(gè)JSP目錄,并在目錄中創(chuàng)建一個(gè)商品信息頁面文件itemList.jspSpringMVC優(yōu)點(diǎn)02SpringMVC作為一款優(yōu)秀的Web框架,具有以下優(yōu)點(diǎn):輕量級:SpringMVC是一種輕量級Web框架,它不依賴于其他任何一種Web框架或應(yīng)用服務(wù)器,同時(shí)它還使用了Spring的IoC(控制反轉(zhuǎn))和AOP(面向切面編程)技術(shù),使開發(fā)者易于開發(fā)出靈活的、可定制的、易于維護(hù)的Web應(yīng)用程序。易于使用:SpringMVC提供了眾多的注解和API,使得開發(fā)人員可以快速完成Controller創(chuàng)建、映射請求、綁定數(shù)據(jù)、處理異常等操作,從而使得Web應(yīng)用程序的開發(fā)變得更加容易。易于集成:SpringMVC可以很容易地集成其他的Spring組件,例如SpringSecurity、SpringData等,使得開發(fā)人員可以快速創(chuàng)建高度可定制的Web應(yīng)用程序。靈活性:SpringMVC提供了很多可擴(kuò)展的組件和插件,使得開發(fā)人員可以根據(jù)應(yīng)用程序的需要進(jìn)行定制。例如開發(fā)人員可以自定義ViewResolver來實(shí)現(xiàn)自己的視圖解析器。易于測試:由于SpringMVC采用了MVC設(shè)計(jì)模式,使得控制層和視圖層是分離的,這樣開發(fā)人員可以很容易地對各層進(jìn)行單元測試,從而提高應(yīng)用程序的質(zhì)量和可維護(hù)性。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項(xiàng)目實(shí)現(xiàn)03業(yè)務(wù)場景03業(yè)務(wù)場景描述:項(xiàng)目經(jīng)理老王:小王,用戶登錄功能由你來實(shí)現(xiàn)。你現(xiàn)在已經(jīng)熟悉了SpringMVC的工作原理和開發(fā)方法,但對于整合Spring和MyBatis還不了解。不過不用擔(dān)心,我們可以先在控制層寫一些模擬數(shù)據(jù)來調(diào)試,但是登錄功能需要對多個(gè)條件進(jìn)行驗(yàn)證,例如用戶IP地址、用戶名和密碼、賬戶是否過期、用戶是否鎖定等,在實(shí)現(xiàn)時(shí)你需要考慮如何處理這些驗(yàn)證。程序員小王:好的,我明白了。這個(gè)安全要求比較高,我會(huì)認(rèn)真考慮。還有,我需要自己創(chuàng)建項(xiàng)目嗎?項(xiàng)目經(jīng)理老王:不用。我們已經(jīng)搭建好了項(xiàng)目框架,你可以使用Git工具從公司版本服務(wù)器導(dǎo)入初始架構(gòu),然后在此基礎(chǔ)上開發(fā)。程序員小王:好的,我會(huì)盡快開始工作。Maven父子工程03父子工程有以下優(yōu)點(diǎn):父子工程能夠更高效地分離每個(gè)模塊,使得修改某個(gè)模塊時(shí),不會(huì)影響到其他模塊。在父工程中聲明依賴,而在子工程中繼承這些依賴,可以有效避免重復(fù)依賴的問題。這樣當(dāng)我們需要升級或者更換某個(gè)依賴時(shí),只需要在父工程中修改,就可以自動(dòng)地更新所有子工程的依賴。父子工程可以使代碼更加清晰,并提高代碼重用性。通過在父工程中聲明依賴,可以避免了多個(gè)子工程重復(fù)引入相同的依賴。這樣就可以將這些公共的依賴關(guān)系放在一個(gè)地方,方便維護(hù)。另外父工程中也可以定義一些公共的配置,例如插件配置、編譯器配置等,使得所有子工程都可以繼承這些配置,避免重復(fù)配置的問題。整體項(xiàng)目結(jié)構(gòu)03項(xiàng)目具體包及其作用:graduationdesign-dao:數(shù)據(jù)訪問層,負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交互。graduationdesign-domain:領(lǐng)域?qū)?,?fù)責(zé)維護(hù)面向?qū)ο蟮念I(lǐng)域模型。該層主要由POJO類構(gòu)成,是數(shù)據(jù)表在面向?qū)ο笫澜缰械挠成?。graduationdesign-service:業(yè)務(wù)層,負(fù)責(zé)實(shí)現(xiàn)具體業(yè)務(wù)邏輯。graduationdesign-utils:包含項(xiàng)目所需的各種工具類。graduationdesign-web:控制層,接受用戶輸入并調(diào)用模型和視圖完成用戶需求。導(dǎo)入項(xiàng)目基本架構(gòu)03選擇File->Open,找到crm項(xiàng)目選擇File->Settings,配置項(xiàng)目所需要的maven倉庫,請讀者根據(jù)自己電腦Maven安裝位置自行配置。配置web.xml03在web.xml中配置springmvc框架<servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--配置初始化參數(shù),創(chuàng)建完DispatcherServlet對象,加載springmvc.xml配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--服務(wù)器啟動(dòng)的時(shí)候,讓DispatcherServlet對象創(chuàng)建--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>配置springmvc03編輯springmvc核心配置文件<!--dispatcherServlet截獲所有URL請求--><mvc:default-servlet-handler/><!--掃描controller的注解,別的不掃描--><context:component-scanbase-package="com.lindaifeng.ssm.controller"></context:component-scan><!--配置視圖解析器--><beanid="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--JSP文件所在的目錄--><propertyname="prefix"value="/pages/"/><!--文件的后綴名--><propertyname="suffix"value=".jsp"/></bean>編寫用戶登錄控制層03創(chuàng)建用戶登錄控制層LoginController.java,添加如代碼清單10-9所示的內(nèi)容,用于模擬一個(gè)用戶完成登錄的流程。編寫登錄面頁03編寫用戶登錄頁面Login.jspE6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強(qiáng)化04經(jīng)典問題強(qiáng)化04請
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國固定電話芯片行業(yè)并購重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢下連接器行業(yè)可持續(xù)發(fā)展戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國整合營銷傳播服務(wù)行業(yè)開拓第二增長曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢下聯(lián)合辦公行業(yè)轉(zhuǎn)型升級戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國煤炭檢測實(shí)驗(yàn)分析儀器行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 網(wǎng)絡(luò)工程師工作總結(jié)計(jì)劃及建議
- 全球新藥研發(fā)進(jìn)展月報(bào)-第45期-2024年12月刊
- 建設(shè)局部門預(yù)算執(zhí)行情況匯報(bào)范文
- 在國有企業(yè)2024年歲末年初安全生產(chǎn)工作會(huì)議上的講話
- 2025年鐵合金爐料項(xiàng)目可行性研究報(bào)告
- 新人教版一年級數(shù)學(xué)下冊全冊導(dǎo)學(xué)案
- 2025年中考語文復(fù)習(xí)之現(xiàn)代文閱讀:非連續(xù)性文本閱讀(10題)
- GB/T 9755-2024合成樹脂乳液墻面涂料
- 商業(yè)咨詢報(bào)告范文模板
- 2024年度軟件定制開發(fā)合同(ERP系統(tǒng))3篇
- 家族族譜模板
- 家譜修編倡議書范文
- (正式版)JBT 10437-2024 電線電纜用可交聯(lián)聚乙烯絕緣料
- 教科版三年級上冊科學(xué)期末測試卷(二)【含答案】
- A5技術(shù)支持的課堂導(dǎo)入作業(yè)1—問題描述.針對日常教學(xué)中的某一主題針對教學(xué)目標(biāo)、教學(xué)內(nèi)容以及教學(xué)對象用簡短的語言描述當(dāng)前課堂導(dǎo)入環(huán)節(jié)中存在的問題和不足以及借助信息技術(shù)改進(jìn)課堂導(dǎo)入的必要性
- 國家開放大學(xué)《土木工程力學(xué)(本)》章節(jié)測試參考答案
評論
0/150
提交評論