




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、springmvc學(xué)習(xí)筆記(一)介紹與環(huán)境搭建一、springmvc的介紹(一)、介紹springmvc是一種基于java的實現(xiàn)了web mvc設(shè)計模式的請求驅(qū)動類型的輕量級web框架,即使用了mvc架構(gòu)模式的思想,springmvc結(jié)構(gòu)簡單,而且性能也非常優(yōu)秀。相信很多人和我一樣,學(xué)習(xí)springmvc之前多多少少學(xué)習(xí)過struts2。struts2也是比較優(yōu)秀的mvc架構(gòu),比如良好的結(jié)構(gòu),包括它的多層攔截器,多實例的action性能都很好。只是相比springmvc,struts2的值棧、ognl表達(dá)式、struts2標(biāo)簽庫等,會導(dǎo)致應(yīng)用的性能下降。所以相比之下,springmvc會比st
2、urts2更快,更便于使用,這也是現(xiàn)在越來越多的團(tuán)隊使用springmvc的原因。(二)、springmvc請求流程具體執(zhí)行步驟如下:1、 首先用戶發(fā)送請求前端控制器,前端控制器根據(jù)請求信息(如url)來決定選擇哪一個頁面控制器進(jìn)行處理并把請求委托給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;2、 頁面控制器接收到請求后,進(jìn)行功能處理,首先需要收集和綁定請求參數(shù)到一個對象,這個對象在spring web mvc中叫命令對象,并進(jìn)行驗證,然后將命令對象委托給業(yè)務(wù)對象進(jìn)行處理;處理完畢后返回一個modelandview(模型數(shù)據(jù)和邏輯視圖名);圖2-1中的3、4、5步驟;3、 前端控
3、制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖2-1中的步驟6、7;4、 前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖2-1中的步驟8;至此整個結(jié)束。(三)、 springmvc結(jié)構(gòu)核心架構(gòu)的具體流程步驟如下:1、 首先用戶發(fā)送請求dispatcherservlet,前端控制器收到請求后自己不進(jìn)行處理,而是委托給其他的解析器進(jìn)行處理,作為統(tǒng)一訪問點,進(jìn)行全局的流程控制;2、 dispatcherservlethandlermapping, handlermapping將會把請求映射為handlerexecutionchain對象(包含一個h
4、andler處理器(頁面控制器)對象、多個handlerinterceptor攔截器)對象,通過這種策略模式,很容易添加新的映射策略;3、 dispatcherservlethandleradapter,handleradapter將會把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設(shè)計模式的應(yīng)用,從而很容易支持很多類型的處理器;4、 handleradapter處理器功能處理方法的調(diào)用,handleradapter將會根據(jù)適配的結(jié)果調(diào)用真正的處理器的功能處理方法,完成功能處理;并返回一個modelandview對象(包含模型數(shù)據(jù)、邏輯視圖名);5、 modelandview的邏輯視圖
5、名 viewresolver, viewresolver將把邏輯視圖名解析為具體的view,通過這種策略模式,很容易更換其他視圖技術(shù);6、 view渲染,view會根據(jù)傳進(jìn)來的model模型數(shù)據(jù)進(jìn)行渲染,此處的model實際是一個map數(shù)據(jù)結(jié)構(gòu),因此很容易支持其他視圖技術(shù);7、返回控制權(quán)給dispatcherservlet,由dispatcherservlet返回響應(yīng)給用戶,到此一個流程結(jié)束。(三)、springmvc的優(yōu)點1、清晰的角色劃分:前端控制器(dispatcherservlet)、請求到處理器映射(handlermapping)、處理器適配器(handleradapter)、視圖解
6、析器(viewresolver)、處理器或頁面控制器(controller)、驗證器( validator)、命令對象(command 請求參數(shù)綁定到的對象就叫命令對象)、表單對象(form object 提供給表單展示和提交到的對象就叫表單對象)。2、分工明確,而且擴(kuò)展點相當(dāng)靈活,可以很容易擴(kuò)展,雖然幾乎不需要;3、由于命令對象就是一個pojo,無需繼承框架特定api,可以使用命令對象直接作為業(yè)務(wù)對象;4、和spring 其他框架無縫集成,是其它web框架所不具備的;5、可適配,通過handleradapter可以支持任意的類作為處理器;6、可定制性,handlermapping、viewr
7、esolver等能夠非常簡單的定制;7、功能強(qiáng)大的數(shù)據(jù)驗證、格式化、綁定機(jī)制;8、利用spring提供的mock對象能夠非常簡單的進(jìn)行web層單元測試;9、本地化、主題的解析的支持,使我們更容易進(jìn)行國際化和主題的切換。10、強(qiáng)大的jsp標(biāo)簽庫,使jsp編寫更容易。還有比如restful風(fēng)格的支持、簡單的文件上傳、約定大于配置的契約式編程支持、基于注解的零配置支持等等。以上大部分是從網(wǎng)上摘取,歸納過來的。更多關(guān)于springmvc介紹的文章這里推薦幾個:1. 2. 二、環(huán)境搭建:第一個helloworld(一)、環(huán)境與資源準(zhǔn)備1. 下載spring框架spring-framework-3.1.1
8、.release-with-docs.zip。下載地址是:/download2. 這里使用ide的是eclipse-jee-juno,服務(wù)器tomcat6.0。3. 新建web工程springmvc_01,導(dǎo)入依賴的包:(1) spring框架jar包:為了簡單,將spring-framework-3.1.3.release-with-docs.zip/dist/下的所有jar包拷貝到項目的web-inf/lib目錄下;(2) spring框架依賴的jar包:需要添加apache commons logging日志,此處使用的是commons
9、.logging-1.1.1.jar;需要添加jstl標(biāo)簽庫支持,此處使用的是jstl-1.2.jar和standard.jar;4. 配置web.xml文件我們在web.xml中進(jìn)行如下配置:helloorg.springframework.web.servlet.dispatcherservlet!- contextconfiglocation /web-inf/applicationcontext.xml - 1hello/-load-on-startup:表示啟動容器時初始化該servlet;url-pattern:表示哪些請求交給spring web mvc處理, “/” 是用來定義
10、默認(rèn)servlet映射的。也可以如“*.html”表示攔截所有以html為擴(kuò)展名的請求。如果你沒有指定init-param里面contextcofiglocation的值中對應(yīng)的xml文件的話,那么像本段代碼對應(yīng)在springmvc中的配置文件就應(yīng)該是/web-inf/hello-servlet.xml這樣的文件。5.創(chuàng)建hello-servlet.xml文件像上一步所說的,在/web-inf目錄下創(chuàng)建hello-servlet.xml文件。 -(1) beannameurlhandlermapping:表示將請求的url和bean名字映射,如url為 “上下文/hello”,則spring配
11、置文件必須有一個名字為“/hello”的bean,上下文默認(rèn)忽略。(2) internalresourceviewresolver:用于支持servlet、jsp視圖解析; viewclass:jstlview表示jsp模板頁面需要使用jstl標(biāo)簽庫,classpath中必須包含jstl的相關(guān)jar包; prefix和suffix:查找視圖頁面的前綴和后綴(前綴邏輯視圖名后綴),比如傳進(jìn)來的邏輯視圖名為hello,則該該jsp視圖頁面應(yīng)該存放在“content根目錄下”;(3) name=/hello.htm:前邊配置的beannameurlhandlermapping,表示如過請求的url為
12、 “上下文/hello”,則將會交給該bean進(jìn)行處理。6. 創(chuàng)建控制器類public class hellocontroller implements controller public modelandview handlerequest(httpservletrequest req, httpservletresponse resp) throws exception modelandview mav = new modelandview(); /添加模型數(shù)據(jù) mav.addobject(name, 張艷羽); /設(shè)置邏輯視圖名,視圖解析器會根據(jù)該名字解析到具體的視圖頁面 mav.set
13、viewname(hello); return mav; 7. 在webcontent下創(chuàng)建頁面hello.jsp hello helloworld! 你好,$name 8. 部署,啟動tomcat,訪問localhost:8080/springmvc_01/hello。會出現(xiàn)下面的頁面。三、環(huán)境搭建:基于注解實現(xiàn)springmvc很大的一個優(yōu)點就是基于注解的零配置支持,也就是說,我們可以用注解的方式實現(xiàn)上節(jié)的例子。1. 在hello-servlet.xml中加上這兩行配置(加在前面):2. 新建index.jsp springmvc示例-注解 springmvc傳值 -3. 改造hellocontroller:controllerpublic class hellocontroller requestmapping(/hello2)public string hello2(string username,model model)system.out.println(username);model.addattribute(username, username);return hello;controller 表示這是一個控制器類requestmapping 表示用哪個url來對應(yīng)string username表示從頁面獲取username的值model表示傳值的對象mode
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版七年級歷史上冊教學(xué)計劃(及進(jìn)度表)
- 2025年中樞興奮藥項目合作計劃書
- 絡(luò)維護(hù)事故檢討書
- 樓宇評比業(yè)主委托書
- 異地戀情侶合約協(xié)議書
- 《國際市場營銷》課件-第8章 國際市場分銷渠道策略
- 車聯(lián)網(wǎng)環(huán)境下車輛信息智能管理與維護(hù)方案設(shè)計
- 太陽能電池行業(yè)分析報告
- 建設(shè)項目可行性研究報告可概括為
- 人力資源行業(yè)區(qū)塊鏈技術(shù)應(yīng)用與實踐
- 2024年廣東省公務(wù)員《申論(省市級)》試題真題及答案
- (一模)2025屆安徽省“江南十?!备呷?lián)考化學(xué)試卷(含官方答案)
- 高等教育數(shù)字化轉(zhuǎn)型心得體會
- 2025年安徽財貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 2025年安徽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 典范英語6-12玉米片硬幣英文原文及重點短語和句子演示教學(xué)
- 日式保潔培訓(xùn)課件大全
- 2025年廣東省深圳市高考語文一模試卷
- 2025年陜西工商職業(yè)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- 2025年福建省高職單招職業(yè)適應(yīng)性測試題庫及答案解析
- 自媒體運營實戰(zhàn)教程(抖音版) 課件 第7章 短視頻運營-自媒體中級
評論
0/150
提交評論