Java EE企業(yè)級(jí)框架技術(shù)及案例實(shí)戰(zhàn)-Spring+Spring MVC+MyBatis(微課版) 課件 第十二章 深入使用SpringMVC_第1頁
Java EE企業(yè)級(jí)框架技術(shù)及案例實(shí)戰(zhàn)-Spring+Spring MVC+MyBatis(微課版) 課件 第十二章 深入使用SpringMVC_第2頁
Java EE企業(yè)級(jí)框架技術(shù)及案例實(shí)戰(zhàn)-Spring+Spring MVC+MyBatis(微課版) 課件 第十二章 深入使用SpringMVC_第3頁
Java EE企業(yè)級(jí)框架技術(shù)及案例實(shí)戰(zhàn)-Spring+Spring MVC+MyBatis(微課版) 課件 第十二章 深入使用SpringMVC_第4頁
Java EE企業(yè)級(jí)框架技術(shù)及案例實(shí)戰(zhàn)-Spring+Spring MVC+MyBatis(微課版) 課件 第十二章 深入使用SpringMVC_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第十二章深入使用SpringMVC-掌握SpringMVC實(shí)現(xiàn)文件上傳與下載的方法-掌握SpringMVC進(jìn)行異常處理的方法-掌握SpringMVC攔截器的使用方法-了解SpringMVC中責(zé)任鏈模式的應(yīng)用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)理老王:小王,你已經(jīng)對(duì)SpringMVC框架有了基本認(rèn)識(shí)。但是對(duì)于框架的某些高級(jí)特性,如文件上傳下載、異常處理、攔截器等功能,你是否也有所了解?程序員小王:這些高級(jí)特性我還不太了解,看來我還需要繼續(xù)深入學(xué)習(xí)。項(xiàng)目經(jīng)理老王:是的,這些功能是非常重要的。例如,異常處理機(jī)制可以在不影響用戶體驗(yàn)的情況下,優(yōu)雅地處理程序運(yùn)行時(shí)的意外情況。攔截器可以在處理復(fù)雜的業(yè)務(wù)邏輯時(shí)用于請(qǐng)求的預(yù)處理和后處理。程序員小王:這些功能聽起來非常強(qiáng)大,我希望能夠盡快掌握它們。此外,我還想了解更多關(guān)于設(shè)計(jì)模式在SpringMVC框架中的應(yīng)用,例如責(zé)任鏈模式,以及如何將SSM這三個(gè)框架整合起來一起協(xié)同工作。項(xiàng)目經(jīng)理老王:是的,責(zé)任鏈模式在SpringMVC的設(shè)計(jì)中確實(shí)扮演了重要角色,它允許多個(gè)對(duì)象處理同一個(gè)請(qǐng)求,從而實(shí)現(xiàn)請(qǐng)求的發(fā)送者與接收者的解耦。關(guān)于SSM框架整合,我建議你通過實(shí)際操作來學(xué)習(xí),例如可以完成項(xiàng)目中的產(chǎn)品管理和訂單管理這兩個(gè)模塊。程序員小王:明白了,我立即開始行動(dòng)。功能描述01產(chǎn)品管理模塊產(chǎn)品列表:可以以列表形式顯示所有產(chǎn)品信息,包括產(chǎn)品的編號(hào)、產(chǎn)品名稱、生產(chǎn)城市、生產(chǎn)時(shí)間、產(chǎn)品價(jià)格、產(chǎn)品圖片等。新增產(chǎn)品:向用戶提供新增產(chǎn)品信息的表單,用戶可以輸入產(chǎn)品相關(guān)信息。編輯產(chǎn)品:用戶可以選中某一件產(chǎn)品,然后通過編輯產(chǎn)品修改其信息。功能描述01訂單管理模塊訂單列表:以列表形式展示所有訂單信息,包括訂單編號(hào)、產(chǎn)品名稱、金額、下單時(shí)間、訂單狀態(tài)等信息。訂單詳情:用戶可以在訂單列表頁中選中一個(gè)訂單,然后查詢這個(gè)訂單的詳細(xì)信息。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識(shí)02知識(shí)導(dǎo)圖02SpringMVC實(shí)現(xiàn)文件上傳與下載021.SpringMVC實(shí)現(xiàn)文件上傳

SpringMVC實(shí)現(xiàn)文件上傳功能的具體流程。(1)頁面向服務(wù)器發(fā)出包含文件內(nèi)容的請(qǐng)求,此請(qǐng)求會(huì)先被前端控制器攔截。(2)前端控制器將請(qǐng)求轉(zhuǎn)發(fā)給文件解析器(文件解析器需要在SpringMVC的配置文件中進(jìn)行配置)。(3)文件解析器解析完請(qǐng)求內(nèi)容后,會(huì)將處理結(jié)果返回給前端控制器。(4)前端控制器最后將這個(gè)解析后的請(qǐng)求傳遞給控制器層的對(duì)應(yīng)方法(該方法必須包含一個(gè)MultipartFile類型的參數(shù),用于接收文件內(nèi)容)SpringMVC實(shí)現(xiàn)文件上傳與下載022.Springmvc實(shí)現(xiàn)文件下載文件下載的具體實(shí)現(xiàn)過程如下:(1)使用HttpServletRequest對(duì)象獲取應(yīng)用程序上下文中“/uploads”目錄的絕對(duì)路徑,該路徑用于確定待下載文件的位置。(2)利用FileInputStream讀取目標(biāo)下載文件。(3)設(shè)置響應(yīng)頭的ContentType為"application/x-msdownload;charset=UTF-8",通知瀏覽器將下載的內(nèi)容轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。(4)設(shè)置響應(yīng)頭的Content-Disposition為"attachment;filename=xxx",指示瀏覽器以附件的形式下載文件,并提供文件名。(5)通過輸入輸出流的復(fù)制操作,將文件內(nèi)容寫入至響應(yīng)輸出流中。(6)關(guān)閉輸入輸出流以釋放系統(tǒng)資源。(7)跳轉(zhuǎn)到success.jsp頁面,提示用戶下載過程已完成。SpringMVC的異常處理02在Web項(xiàng)目運(yùn)行時(shí),有時(shí)由于各種情況可能會(huì)出現(xiàn)異常錯(cuò)誤。為了不讓用戶直接看到錯(cuò)誤代碼,提高用戶體驗(yàn),SpringMVC提供了異常處理機(jī)制,允許系統(tǒng)在出現(xiàn)異常時(shí)向用戶展示一個(gè)友好的錯(cuò)誤頁面,如圖所示。開發(fā)人員可以使用SpringMVC框架提供的異常處理器或自定義處理器來處理異常,以確保錯(cuò)誤信息頁面與業(yè)務(wù)需求相符。SpringMVC的攔截器02SpringMVC的攔截器用于在控制器處理請(qǐng)求之前和之后執(zhí)行自定義的業(yè)務(wù)邏輯,它們與Servlet中的過濾器類似,但只針對(duì)控制器的方法生效。攔截器是AOP的一種實(shí)現(xiàn),它可以將自定義的多種攔截方法連接成一條鏈。責(zé)任鏈模式02責(zé)任鏈模式(ChainofResponsibilityPattern)是一種行為設(shè)計(jì)模式,它以構(gòu)建對(duì)象鏈的形式來處理請(qǐng)求。在這個(gè)模式中,每個(gè)對(duì)象都包含對(duì)下一個(gè)處理器的引用,當(dāng)一個(gè)請(qǐng)求從鏈的一端發(fā)起時(shí),它會(huì)沿著鏈進(jìn)行傳遞,直到找到適合處理該請(qǐng)求的對(duì)象。責(zé)任鏈模式的主要作用是:降低請(qǐng)求發(fā)送者和接收者之間的耦合度:請(qǐng)求發(fā)送者只需要知道請(qǐng)求鏈存在,不必關(guān)心請(qǐng)求鏈的具體結(jié)構(gòu)或處理細(xì)節(jié)。方便增加新的處理方法:可以隨時(shí)增加或修改處理邏輯,只需修改請(qǐng)求鏈的構(gòu)成即可。分散請(qǐng)求處理:每個(gè)處理器處理它所負(fù)責(zé)的部分,這樣可以把復(fù)雜的邏輯分解成簡單的個(gè)體,以便于管理和維護(hù)。Springmvc中責(zé)任鏈模式的應(yīng)用02在SpringMVC中,責(zé)任鏈模式的應(yīng)用主要體現(xiàn)在請(qǐng)求處理流程中,尤其是在處理HTTP請(qǐng)求的多個(gè)階段上。責(zé)任鏈模式允許將多個(gè)處理對(duì)象連接成一條鏈,每個(gè)對(duì)象處理請(qǐng)求的一部分,然后將請(qǐng)求傳遞給鏈中的下一個(gè)對(duì)象。具體來看,SpringMVC中的DispatcherServlet是一個(gè)關(guān)鍵組件,它負(fù)責(zé)將接收到的HTTP請(qǐng)求分發(fā)給相應(yīng)的處理器(Controller)。在這個(gè)過程中,DispatcherServlet使用責(zé)任鏈模式處理一系列的攔截器(Interceptor)和處理器適配器(HandlerAdapter)。相應(yīng)的概念如下:1. 攔截器鏈每個(gè)攔截器可以決定是否將請(qǐng)求傳遞給鏈中的下一個(gè)攔截器,或是直接結(jié)束請(qǐng)求處理。例如,一個(gè)身份驗(yàn)證攔截器可以檢查用戶是否登錄,如果未登錄,則不再繼續(xù)調(diào)用后續(xù)的攔截器或控制器。2. 處理器適配器鏈DispatcherServlet配置有多個(gè)HandlerAdapter,每個(gè)適配器負(fù)責(zé)調(diào)用特定類型的處理器。在SpringMVC的源代碼中,DispatcherServlet的doDispatch方法展示了責(zé)任鏈模式的應(yīng)用。該方法首先通過攔截器鏈對(duì)請(qǐng)求進(jìn)行預(yù)處理,然后找到合適的處理器(Controller)來處理請(qǐng)求,并在處理完成后再次通過攔截器鏈進(jìn)行后處理。SSM框架整合02SSM框架整合流程如下:數(shù)據(jù)準(zhǔn)備,創(chuàng)建ssm數(shù)據(jù)庫,并建立account表。創(chuàng)建項(xiàng)目并導(dǎo)入依賴創(chuàng)建Account實(shí)體類創(chuàng)建AccountDao接口創(chuàng)建AccountService接口及其實(shí)現(xiàn)類AccountServiceImpl。創(chuàng)建AccountController類配置連接數(shù)據(jù)庫的相關(guān)信息添加spring的核心配置文件applicationContext.xml測試spring整合整合springMVC,配置web.xml文件,加入springmvc的前端控制器和編碼過濾器。創(chuàng)建index.jsp,添加訪問AccountController類中findAll方法的超鏈接。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項(xiàng)目實(shí)現(xiàn)03業(yè)務(wù)場景03業(yè)務(wù)場景描述:項(xiàng)目經(jīng)理老王:小王,現(xiàn)在你已經(jīng)掌握了SSM框架的使用及整合,產(chǎn)品管理模塊交給你來實(shí)現(xiàn),沒有問題吧?程序員小王:是的,通過之前的努力學(xué)習(xí)和不斷的項(xiàng)目實(shí)踐,我已經(jīng)有信心完成這個(gè)任務(wù)了。SSM框架的各個(gè)方面我都相當(dāng)熟悉,無論是Spring的依賴注入、SpringMVC的工作原理,還是MyBatis與數(shù)據(jù)庫的交互,我都能夠熟練應(yīng)用。項(xiàng)目經(jīng)理老王:那太好了!看到你從一個(gè)初學(xué)者成長為現(xiàn)在可以熟練運(yùn)用SSM框架的程序員,我感到非常欣慰。程序員小王:感謝您的鼓勵(lì)和支持,我會(huì)盡快開始工作,以確保產(chǎn)品管理模塊在開發(fā)周期內(nèi)高質(zhì)量實(shí)現(xiàn)。實(shí)現(xiàn)產(chǎn)品管理031、首先需要?jiǎng)?chuàng)建描述產(chǎn)品的實(shí)體類Product實(shí)現(xiàn)產(chǎn)品管理03產(chǎn)品管理數(shù)據(jù)訪問層創(chuàng)建產(chǎn)品管理的數(shù)據(jù)訪問接口IProductDao,其包含對(duì)產(chǎn)品的增加、刪除、修改、查詢操作。為了便于開發(fā),這里通過注解的方式來進(jìn)行MyBatis的操作。實(shí)現(xiàn)產(chǎn)品管理03產(chǎn)品管理業(yè)務(wù)邏輯層創(chuàng)建產(chǎn)品管理的業(yè)務(wù)接口(IProductService.java)及其實(shí)現(xiàn)類(ProductServiceImpl.java),里面包含了對(duì)數(shù)據(jù)訪問接口的調(diào)用方法。實(shí)現(xiàn)產(chǎn)品管理03產(chǎn)品管理控制層創(chuàng)建產(chǎn)品管理的控制器ProductController,用于接收前端請(qǐng)求。實(shí)現(xiàn)產(chǎn)品管理03產(chǎn)品管理列表頁面在產(chǎn)品管理模塊后端代碼完成后,就可以進(jìn)行前端功能的開發(fā),由于篇幅所限,這里僅列出產(chǎn)品管理列表頁面部分核心代碼。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強(qiáng)化04經(jīng)典問題強(qiáng)化04攔截器與過濾器的區(qū)別Springmvc攔截器在權(quán)限校驗(yàn)的作用?SpringMVC如何進(jìn)行異常處理?E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章小結(jié)05

本章小結(jié)05本章深入講解了SpringMVC框架的高級(jí)特性,包括文件的上傳下載、攔截器的使用、異常處理機(jī)制,以及SSM框架整合等內(nèi)容。此外,還介紹了責(zé)任鏈模式在SpringMVC框架中的應(yīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論