SpringMvc學習筆記(一)介紹與環(huán)境搭建_第1頁
SpringMvc學習筆記(一)介紹與環(huán)境搭建_第2頁
SpringMvc學習筆記(一)介紹與環(huán)境搭建_第3頁
SpringMvc學習筆記(一)介紹與環(huán)境搭建_第4頁
SpringMvc學習筆記(一)介紹與環(huán)境搭建_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、springmvc學習筆記(一)介紹與環(huán)境搭建一、springmvc的介紹(一)、介紹springmvc是一種基于java的實現(xiàn)了web mvc設計模式的請求驅動類型的輕量級web框架,即使用了mvc架構模式的思想,springmvc結構簡單,而且性能也非常優(yōu)秀。相信很多人和我一樣,學習springmvc之前多多少少學習過struts2。struts2也是比較優(yōu)秀的mvc架構,比如良好的結構,包括它的多層攔截器,多實例的action性能都很好。只是相比springmvc,struts2的值棧、ognl表達式、struts2標簽庫等,會導致應用的性能下降。所以相比之下,springmvc會比st

2、urts2更快,更便于使用,這也是現(xiàn)在越來越多的團隊使用springmvc的原因。(二)、springmvc請求流程具體執(zhí)行步驟如下:1、 首先用戶發(fā)送請求前端控制器,前端控制器根據請求信息(如url)來決定選擇哪一個頁面控制器進行處理并把請求委托給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;2、 頁面控制器接收到請求后,進行功能處理,首先需要收集和綁定請求參數(shù)到一個對象,這個對象在spring web mvc中叫命令對象,并進行驗證,然后將命令對象委托給業(yè)務對象進行處理;處理完畢后返回一個modelandview(模型數(shù)據和邏輯視圖名);圖2-1中的3、4、5步驟;3、 前端控

3、制器收回控制權,然后根據返回的邏輯視圖名,選擇相應的視圖進行渲染,并把模型數(shù)據傳入以便視圖渲染;圖2-1中的步驟6、7;4、 前端控制器再次收回控制權,將響應返回給用戶,圖2-1中的步驟8;至此整個結束。(三)、 springmvc結構核心架構的具體流程步驟如下:1、 首先用戶發(fā)送請求dispatcherservlet,前端控制器收到請求后自己不進行處理,而是委托給其他的解析器進行處理,作為統(tǒng)一訪問點,進行全局的流程控制;2、 dispatcherservlethandlermapping, handlermapping將會把請求映射為handlerexecutionchain對象(包含一個h

4、andler處理器(頁面控制器)對象、多個handlerinterceptor攔截器)對象,通過這種策略模式,很容易添加新的映射策略;3、 dispatcherservlethandleradapter,handleradapter將會把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設計模式的應用,從而很容易支持很多類型的處理器;4、 handleradapter處理器功能處理方法的調用,handleradapter將會根據適配的結果調用真正的處理器的功能處理方法,完成功能處理;并返回一個modelandview對象(包含模型數(shù)據、邏輯視圖名);5、 modelandview的邏輯視圖

5、名 viewresolver, viewresolver將把邏輯視圖名解析為具體的view,通過這種策略模式,很容易更換其他視圖技術;6、 view渲染,view會根據傳進來的model模型數(shù)據進行渲染,此處的model實際是一個map數(shù)據結構,因此很容易支持其他視圖技術;7、返回控制權給dispatcherservlet,由dispatcherservlet返回響應給用戶,到此一個流程結束。(三)、springmvc的優(yōu)點1、清晰的角色劃分:前端控制器(dispatcherservlet)、請求到處理器映射(handlermapping)、處理器適配器(handleradapter)、視圖解

6、析器(viewresolver)、處理器或頁面控制器(controller)、驗證器( validator)、命令對象(command 請求參數(shù)綁定到的對象就叫命令對象)、表單對象(form object 提供給表單展示和提交到的對象就叫表單對象)。2、分工明確,而且擴展點相當靈活,可以很容易擴展,雖然幾乎不需要;3、由于命令對象就是一個pojo,無需繼承框架特定api,可以使用命令對象直接作為業(yè)務對象;4、和spring 其他框架無縫集成,是其它web框架所不具備的;5、可適配,通過handleradapter可以支持任意的類作為處理器;6、可定制性,handlermapping、viewr

7、esolver等能夠非常簡單的定制;7、功能強大的數(shù)據驗證、格式化、綁定機制;8、利用spring提供的mock對象能夠非常簡單的進行web層單元測試;9、本地化、主題的解析的支持,使我們更容易進行國際化和主題的切換。10、強大的jsp標簽庫,使jsp編寫更容易。還有比如restful風格的支持、簡單的文件上傳、約定大于配置的契約式編程支持、基于注解的零配置支持等等。以上大部分是從網上摘取,歸納過來的。更多關于springmvc介紹的文章這里推薦幾個:1. 2. 二、環(huán)境搭建:第一個helloworld(一)、環(huán)境與資源準備1. 下載spring框架spring-framework-3.1.1

8、.release-with-docs.zip。下載地址是:/download2. 這里使用ide的是eclipse-jee-juno,服務器tomcat6.0。3. 新建web工程springmvc_01,導入依賴的包:(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標簽庫支持,此處使用的是jstl-1.2.jar和standard.jar;4. 配置web.xml文件我們在web.xml中進行如下配置:helloorg.springframework.web.servlet.dispatcherservlet!- contextconfiglocation /web-inf/applicationcontext.xml - 1hello/-load-on-startup:表示啟動容器時初始化該servlet;url-pattern:表示哪些請求交給spring web mvc處理, “/” 是用來定義

10、默認servlet映射的。也可以如“*.html”表示攔截所有以html為擴展名的請求。如果你沒有指定init-param里面contextcofiglocation的值中對應的xml文件的話,那么像本段代碼對應在springmvc中的配置文件就應該是/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,上下文默認忽略。(2) internalresourceviewresolver:用于支持servlet、jsp視圖解析; viewclass:jstlview表示jsp模板頁面需要使用jstl標簽庫,classpath中必須包含jstl的相關jar包; prefix和suffix:查找視圖頁面的前綴和后綴(前綴邏輯視圖名后綴),比如傳進來的邏輯視圖名為hello,則該該jsp視圖頁面應該存放在“content根目錄下”;(3) name=/hello.htm:前邊配置的beannameurlhandlermapping,表示如過請求的url為

12、 “上下文/hello”,則將會交給該bean進行處理。6. 創(chuàng)建控制器類public class hellocontroller implements controller public modelandview handlerequest(httpservletrequest req, httpservletresponse resp) throws exception modelandview mav = new modelandview(); /添加模型數(shù)據 mav.addobject(name, 張艷羽); /設置邏輯視圖名,視圖解析器會根據該名字解析到具體的視圖頁面 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來對應string username表示從頁面獲取username的值model表示傳值的對象mode

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論