版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目二
SpringMVC開發(fā)基礎(chǔ)初識SpringMVC目錄Content1SpringMVC進階2攔截器的使用3文件上傳和下載4項目導言零MVC(ModelViewController)是一種軟件架構(gòu)思想模型Model視圖View控制器Controller學習目標零知識目標了解SpringMVC的概念熟悉SpringMVC的特點掌握SpringMVC框架核心組件的使用方式掌握SpringMVC的常用注解熟悉@Controller與@RequestMapping注解的使用方式了解SpringMVC攔截器的感念掌握SpringMVC攔截器的定義與配置方式熟悉文件的上傳和下載方法能力目標具備使用SpringMVC接受并相應瀏覽器發(fā)起的請求的能力具備使用攔截器高效編輯代碼的能力具備獨立使用SpringMVC實現(xiàn)文件上傳下載的能力具備SpringMVC規(guī)范注釋編寫的能力素質(zhì)目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:初識SpringMVC壹Springmvc概述任務技能SpringMVC是Spring框架中的一個Web框架,是目前最好的實現(xiàn)MVC設(shè)計模式的框架。SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。SpringMVC框架的核心組件SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。任務1-1:Springmvc概述壹1SpringMVC概念在JavaEE開發(fā)中,系統(tǒng)經(jīng)典的三層架構(gòu)包括表現(xiàn)層、業(yè)務層和持久層。表現(xiàn)層(Web層)持久層(Dao層)業(yè)務層(Service層)任務1-1:Springmvc概述壹2SpringMVC特點SpringMVC框架與Spring框架其他組件模塊的無縫集成。SpringMVC框架提供強大而直接的配置方式使用SpringMVC框架能簡單的進行Web層的單元測試,提高開發(fā)效率使用SpringMVC框架便于與其他視圖技術(shù)集成SpringMVC框架提供了非常靈活的數(shù)據(jù)驗證、格式化和數(shù)據(jù)綁定機制SpringMVC框架還提供一套強大的JSP標簽庫來簡化JSP開發(fā)支持靈活的本地化、主題等解析SpringMVC框架提供了統(tǒng)一異常處理機制,使得異常處理更加簡單任務1-2:SpringMVC框架的核心組件壹SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。其流程如圖任務2:SpringMVC進階貳Springmvc常用注解任務技能Spring2.5引入注解式處理器支持,通過@Controller和@RequestMapping注解定義我們的處理器類。任務2-1:Springmvc常用注解貳Spring2.5引入注解式處理器支持,通過@Controller和@RequestMapping注解定義我們的處理器類。并且提供了一組強大的注解:@Controller:用于標識是處理器類;@RequestMapping:用于從客戶端到控制器的地址映射;@RequestParam:用于客戶端參數(shù)注入到控制器的數(shù)據(jù)綁定;之后的Spring版本每次升級,都會提供更多的注解幫助程序開發(fā)者進行快速開發(fā),提高開發(fā)效率。任務2-1:Springmvc常用注解貳1@Controller注解@Controller注解是Spring框架中用來標識控制器類的注解。它的作用是將一個普通的Java類轉(zhuǎn)換為SpringMVC中的控制器,使得該類可以響應HTTP請求并返回相應的視圖模型。importorg.springframework.stereotype.Controller;...@Controller //標注@Controller注解publicclassFirstController{...}任務2-1:Springmvc常用注解貳2@RequestMapping@RequestMapping注解用于建立請求URL和Handler(處理器)之間的映射關(guān)系,該注解可以標注在方法上和類上。(1)標注在方法上@RequestMapping注解是SpringMVC中用于映射HTTP請求的注解,它可以用于控制器類的方法上,用來指定請求的URL路徑和請求方法。@ControllerpublicclassMyController{
@RequestMapping(path="/")publicStringhome(Modelmodel){model.addAttribute("message","Hello,World!");return"home";}}任務2-1:Springmvc常用注解貳2@RequestMapping(2)標注在類上當@RequestMapping注解標注在類上時,@RequestMapping的value屬性值相當于本處理器類的命名空間,即訪問該處理器類下的任意處理器都需要帶上這個命名空間。@ControllerpublicclassMyController{
@RequestMapping(value="/hello",method=RequestMethod.GET)publicStringhello(Modelmodel){model.addAttribute("message","Hello,World!");return"hello";}
}任務2-1:Springmvc常用注解貳@RequestMapping注解的屬性@RequestMapping注解是SpringMVC中用于映射HTTP請求的注解,它可以用于控制器類或處理器類上,用來指定請求的URL路徑和請求方法。屬性名類型描述nameString可選屬性,用于為映射地址指定別名。valueString[]可選屬性,也是默認屬性,用于指定請求的URL。methodRequestMethod[]可選屬性,用于指定該方法可以處理哪種類型的請求方式??梢允荊ET、POST、PUT、DELETE等。默認值是GET。paramsString[]可選屬性,用于指定客戶端請求中參數(shù)的值,必須包含哪些參數(shù)的值,才可以通過其標注的方法處理。headersString[]可選屬性,用于指定客戶端請求中,必須包含哪些header的值,才可以通過其標注的方法處理。consumesString[]可選屬性,用于指定處理請求的提交內(nèi)容類型(Content-type)??梢允荍SON、XML等。默認值是所有類型的都支持。producesString[]可選屬性,用于指定返回的內(nèi)容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回??梢允荍SON、XML等。默認值是所有類型的都支持。任務2-1:Springmvc常用注解貳3@RequestParam@RequestParam是SpringMVC中用于將HTTP請求參數(shù)綁定到控制器方法參數(shù)上的注解。它可以用于控制器類的方法參數(shù)上,用來指定請求的參數(shù)名稱和類型。@RequestParam注解有以下幾個屬性:value:name屬性的別名,這里指參數(shù)的名稱,即入?yún)⒌恼埱髤?shù)名稱,required:表示該參數(shù)是否是必需的。defaultValue:指定了參數(shù)的默認值。如果請求中缺少該參數(shù),則會使用默認值。type:指定了參數(shù)的類型。publicStringtest(@RequestParam(value="username",required=false)Stringusername)任務3:攔截器的使用叁攔截器概述任務技能在應用程序中對請求和響應進行處理的組件,它可以在指定的方法調(diào)用前或者調(diào)用后,執(zhí)行預先設(shè)定的代碼。攔截器定義方式在SpringMVC中定義一個攔截器非常簡單,常用的攔截器定義方式有兩種。攔截器的配置自定義攔截器之后,需要在SpringMVC的配置文件中配置攔截器,攔截器需要在前端控制器中進行配置才能生效:任務3-1:攔截器概述叁SpringMVC的處理器攔截器是一種在應用程序中對請求和響應進行處理的組件,它可以在指定的方法調(diào)用前或者調(diào)用后,執(zhí)行預先設(shè)定的代碼。常見的應用場景包括:安全認證日志記錄通用行為性能監(jiān)控緩存對請求進行身份驗證和授權(quán),以確保只有經(jīng)過認證的用戶才能訪問受保護的資源。記錄請求和響應的詳細信息,以便進行故障排除和性能優(yōu)化。監(jiān)測請求的響應時間、吞吐量等指標,提供有關(guān)應用程序性能的詳細信息。對請求進行緩存,以減少對后端服務器的負載。讀取cookie得到用戶信息并將用戶對象放入請求,方便后續(xù)流程使用任務3-2:攔截器定義方式叁常用的攔截器定義方式有以下兩種。第一種方式是通過實現(xiàn)HandlerInterceptor接口定義攔截器。第二種方式是通過繼承HandlerInterceptor接口的實現(xiàn)類HandlerInterceptorAdapter,定義攔截器。實現(xiàn)HandlerInterceptor接口定義攔截器是最常用的方式之一。HandlerInterceptor接口定義了三個方法:preHandle():在Controller方法執(zhí)行之前被調(diào)用,可以對請求進行預處理,postHandle():在Controller方法執(zhí)行之后被調(diào)用,可以對響應進行后處理,afterCompletion():在Controller方法執(zhí)行完成后被調(diào)用,可以進行資源清理等工作。任務3-2:攔截器定義方式叁示例代碼如下所示publicclassFirstInterceptorimplementsHandlerInterceptor{
@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{//在請求處理之前進行攔截returntrue;}@OverridepublicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{//在請求處理之后進行攔截}@OverridepublicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{//在請求處理完成之后進行攔截}}任務3-3:攔截器的配置叁自定義攔截器之后,需要在SpringMVC的配置文件中配置攔截器,攔截器需要在前端控制器中進行配置才能生效:<mvc:interceptors/>標簽用于配置一組攔截器,<mvc:interceptors/>標簽內(nèi)部可以使用多個<mvc:interceptor/>或直接使用<bean/>標簽分別配置每個攔截器的信息。配置攔截器示例代碼如下所示。<!--配置攔截器--><mvc:interceptors><!--直接配置在mvc:interceptors內(nèi)部的攔截器對所有請求有效--><beanclass="erceptor.FirstInterceptor"></bean> <mvc:interceptor> <!--配置攔截器生效的路徑--> <mvc:mappingpath="/**"/> <!--配置攔截器不生效的路徑,在生效路徑范圍內(nèi),消除不生效的路徑--> <mvc:exclude-mappingpath="/login"/> <!--攔截器的位置--> <beanclass="erceptor.SecondInterceptor"></bean></mvc:interceptor></mvc:interceptors>任務4:文件上傳和下載肆文件上傳任務技能大多數(shù)文件上傳都是通過表單形式提交給后臺服務器。文件下載文件下載就是將文件服務器中的文件傳輸?shù)降奖緳C上。任務4-1:文件上傳肆大多數(shù)文件上傳都是通過表單形式提交給后臺服務器,因此,要實現(xiàn)文件上傳功能,就需要提供一個文件上傳的表單,并且該表單必須滿足以下3個條件。分別是表單的方法設(shè)為post,enctype屬性設(shè)置為multipart/form-data和提供<inputtype="file"name="filename"/>的文件上傳輸入框。示例代碼如下所示。<formaction="uploadUrl"method="post"enctype="multipart/form-data"><inputtype="file"name="filename"/><inputtype="submit"value="文件上傳"multiple="multiple"/></form>任務4-1:文件上傳肆SpringMVC為文件上傳提供了直接的支持,這種支持是通過MultipartResolver(多部件解析器)對象實現(xiàn)的。MultipartResolver是一個接口,可以使用MultipartResolver的實現(xiàn)類CommonsMultipartResolver來完成文件上傳工作。第一步:在配置文件中定義MultipartResolver接口的Bean,具體配置方式如下。<beanid="multipartResolver"class="mons.CommonsMultipartResolver"/><!--設(shè)置請求編碼格式,必須與JSP中的pageEncoding屬性一致,默認為ISO-8859-1--><propertyname="defaultEncoding"value="UTF-8"/><!--設(shè)置允許上傳文件的最大值為2M,單位為字節(jié)--><propertyname="maxUploadSize"value="2097152"/></bean>任務4-1:文件上傳肆第二步:添加commons-fileload依賴。CommonsMultipartResolver并未自主實現(xiàn)文件上傳下載對應的功能,而是在內(nèi)部調(diào)用了ApacheCommonsfileload的組件,所以使用SpirngMVC的文件上傳功能,需要在項目中導入ApacheCommonsfileload組件的依賴,即commons-fileload依賴和commons-io依賴。由于commons-fileload依賴會自動依賴commons-io,所以可以只在項目的pom.xml文件中引入如下依賴。<dependency> <groupId>commons-fileload</groupId> <artifactId>commons-fileload</artifactId> <version>1.4</version></dependency>任務4-1:文件上傳肆第三步:當完成文件上傳表單和文件上傳解析器的配置后,就可以在Controller中編寫上傳文件的方法,如下所示:@ControllerpublicclassfileloadController{@RequestMapping("/fileload")publicStringfileload(MultipartFilefile){if(!file.isEmpty()){//保存上傳的文件,filepath為保存的目標目錄 file.transferTo(newFile(filePath))return"uploadSuccess";}return"uploadFailure";}}任務4-2:文件下載肆文件下載就是將文件服務器中的文件傳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《綜合基礎(chǔ)知識》考點特訓《民法》(2020年版)
- 《電子式書寫技巧》課件
- 2024年寫醫(yī)院個人年終工作總結(jié)
- 《學校智能化方案》課件
- 《幼教機構(gòu)行政管理》課件
- 一年級下冊語文部編版課件部首查字法教學課件
- 細胞生命之旅
- 透析樓市調(diào)控奧秘
- 保研面試英文自我介紹范文匯編十篇
- 2023年-2024年新員工入職前安全教育培訓試題附參考答案(預熱題)
- 《實用日本語應用文寫作》全套電子課件完整版ppt整本書電子教案最全教學教程整套課件
- 公司員工手冊-全文(完整版)
- 鍋爐習題帶答案
- 土木工程課程設(shè)計38281
- 農(nóng)村宅基地地籍測繪技術(shù)方案
- 液壓爬模作業(yè)指導書
- 劇院的建筑設(shè)計規(guī)范標準
- 遺傳分析的一個基本原理是DNA的物理距離和遺傳距離方面...
- 安全生產(chǎn)標準化管理工作流程圖
- 德龍自卸車合格證掃描件(原圖)
- 初一英語單詞辨音專項練習(共4頁)
評論
0/150
提交評論