![技術(shù)spring3mvc真正入門_第1頁(yè)](http://file4.renrendoc.com/view/e61d6a2e8292706ebc03e01878ba6f75/e61d6a2e8292706ebc03e01878ba6f751.gif)
![技術(shù)spring3mvc真正入門_第2頁(yè)](http://file4.renrendoc.com/view/e61d6a2e8292706ebc03e01878ba6f75/e61d6a2e8292706ebc03e01878ba6f752.gif)
![技術(shù)spring3mvc真正入門_第3頁(yè)](http://file4.renrendoc.com/view/e61d6a2e8292706ebc03e01878ba6f75/e61d6a2e8292706ebc03e01878ba6f753.gif)
![技術(shù)spring3mvc真正入門_第4頁(yè)](http://file4.renrendoc.com/view/e61d6a2e8292706ebc03e01878ba6f75/e61d6a2e8292706ebc03e01878ba6f754.gif)
![技術(shù)spring3mvc真正入門_第5頁(yè)](http://file4.renrendoc.com/view/e61d6a2e8292706ebc03e01878ba6f75/e61d6a2e8292706ebc03e01878ba6f755.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、前言:Spring3MVC了。Spring3 MVC結(jié)構(gòu)簡(jiǎn)單,應(yīng)了那句話簡(jiǎn)單就是美,而且他的本一、前言:Spring3MVC了。Spring3 MVC結(jié)構(gòu)簡(jiǎn)單,應(yīng)了那句話簡(jiǎn)單就是美,而且他的本(本文使用是的Spring 3.0.5Struts2也是比較優(yōu)秀的 MVC Struts2由于采用了值棧、OGNL 表達(dá)式、器、多實(shí)例action性能都很好??梢詤⒖嘉覍懙囊黄P(guān)于SpringMVC與與Servlet比較的文章 HYPERLINK http:/admin/blogs/698217 1、Spring3 MVC的學(xué)習(xí)難度小于Struts2,Struts2。2、Spring3 MVC很容易就
2、可以寫出性能優(yōu)秀的程序,Struts2要處處秀的程序(指 MVC 部分)3、Spring3MVC的靈活是你無(wú)法想像的,Spring的擴(kuò)展性有口皆碑,Spring3MVC二類與接口:- - - HandlerAdapter- Controller- 由使用了注解,添加了erceptor 接口器erceptor 接口器 M三流程圖M三流程圖四、說(shuō) 下來(lái)的請(qǐng)求,依據(jù)某某規(guī)則分發(fā)到目標(biāo) 四、說(shuō) 下來(lái)的請(qǐng)求,依據(jù)某某規(guī)則分發(fā)到目標(biāo) le/servlet-name這個(gè) Servlet 的名字是 le, 可以有多個(gè)DispatcherServlet,是通過(guò)名字來(lái)區(qū)分的。 每一個(gè) DispatcherServ
3、let 有自己的DispatcherServlet le 2 為 /app/* /app/user/add 2 為 /app/* /app/user/add /app 3 4 jsp五、雙親上下文的說(shuō)明 值??梢允褂霉ぞ哳惾〕錾舷挛模篋ispatcherServlet 是一個(gè) Servlet, 可以同時(shí)配置多個(gè),每個(gè) DispatcherServlet 有一個(gè)自己的WebApplicationContext 上下文, 這個(gè)上下文繼承了 根上下文 中所有東西。 保存在ServletContext 中,key 是 中,key 是 DispatcherServlet.class.getNameCON
4、TEXT中的 web MVC DispatcherServlet WebApplicationContext 中,key 是 DispatcherServlet.class.getNameCONTEXT中的 web MVC DispatcherServlet WebApplicationContext override以被設(shè)置上只有這個(gè) servlet 實(shí)例自己使用的屬性。六、springMVC-mvc.xml 配置文件片段講(未使用默認(rèn)配置文件名!- !- !- 擴(kuò)展名來(lái)選擇視圖解釋類的邏輯 !-beaneceptor!- 方案一 (二選一)!- (二選一)!-beaneceptor!- 方
5、案一 (二選一)!- (二選一) 式可以讓初學(xué)都快速應(yīng)用默認(rèn)配置方案。 ion-driven / 會(huì)用于注入,j2ee) Autowired 提供的) ) ion-driven / 式可以讓初學(xué)都快速應(yīng)用默認(rèn)配置方案。 ion-driven / 會(huì)自與 ionMethodHandlerAdapter 兩個(gè) bean,是 MVC為Controllers 支持,讀寫XML 的支持(JAXBJSON 的支持(Jackson。后面 后 面,對(duì) 寫 單元測(cè) 試時(shí), 要從 容器中與 beanerceptors/ 。ndler/ 使用默認(rèn)的Servlet=/images/* location=/images
6、/ cache-period=31556926/ 匹配的URL被當(dāng)做靜態(tài)資源,由Springhttp到靜態(tài)的文件,如 七、如何如何你的的目的:可以靜態(tài)文件,不要找不到靜態(tài)文件報(bào)404方案一:激活 Tomcat 的 defaultServlet 來(lái)處理靜態(tài)要寫DispatcherServlet 的前面, 讓 ,這個(gè)就不會(huì)進(jìn)了性能是最好的吧s,and默認(rèn)Servlet的名字AppEngine 默認(rèn)Servlet的名字Resin 默認(rèn)Servlet的名字resinWebLogic 默認(rèn)Servlet的名默認(rèn)Servlet的名字方案二: 在 spring3.0.4以后版本提供了 的使用方法 !- 到
7、ndler 進(jìn)行處理方案二: 在 spring3.0.4以后版本提供了 的使用方法 的原使 用 元 素 的到urlMap 中key為由 ndler 處理并返回,所以就支持 態(tài)資源另外需要注意的一點(diǎn)是,不要對(duì) 因?yàn)閷?duì)icurindler 就是否則無(wú)法處理ic mvc:default-會(huì)把/* url, 到 的 urlMap 中把對(duì)靜態(tài)資源的轉(zhuǎn)由到ndler 處理并返回 自動(dòng)的 order 屬性值是的 屬性值是: spring 會(huì)先執(zhí)行 order 值比較小的。一個(gè) 文件時(shí),先通Actionorder 值升序找由于最后一個(gè) 是匹/*的,所以一定會(huì)匹配上。 最后再說(shuō)明一下,如何你的 八、請(qǐng)求如到具體
8、的 Action 中的方法?方 案 一 : 基 于 xml , 可 以 利 用 配 置 進(jìn)行Url、,可以使用。 方 案 一 : 基 于 xml , 可 以 利 用 配 置 進(jìn)行Url、,可以使用。 并在 action 類上使用九、Spring 中的器Spring 接口適配實(shí)現(xiàn)這個(gè)接口或繼承此類,可以非常方便的實(shí)現(xiàn)自己器有以下三個(gè)Action 之前執(zhí)行preHandle(HttpServletRequest 生成視圖之public ndle(HttpServletRequest HttpServletResponse response, MAndView最后執(zhí)行資publicpletion(H
9、ttpServletRequest HttpServletResponse response, 生成視圖之public ndle(HttpServletRequest HttpServletResponse response, MAndView最后執(zhí)行資publicpletion(HttpServletRequest HttpServletResponse response, ndler, Exception 分別實(shí)現(xiàn)預(yù)處理、后處理(調(diào)用了 Service 并返回 AndView,但未頁(yè)面渲染、返回處理(已經(jīng)渲染了頁(yè)面preHandle 中,可以進(jìn)行編碼、安全在在ndle 中,有機(jī)會(huì)修改 在中
10、,可以根據(jù) ex 是否為 null 判斷是否發(fā)生了異常,進(jìn)志。參數(shù)中ndler 是下一器十、如何使用器?自定義一器,要實(shí)現(xiàn) erceptor 接口 publicclass 并沒(méi)有總器,不能對(duì)所有的請(qǐng)求進(jìn)行。Spring MVC 器, 是屬級(jí)別的,可以有多個(gè),每個(gè)可以有自己器當(dāng)一個(gè)請(qǐng)求按 Order 值從小順序執(zhí)行 接口Spring MVC 器, 是屬級(jí)別的,可以有多個(gè),每個(gè)可以有自己器當(dāng)一個(gè)請(qǐng)求按 Order 值從小順序執(zhí)行 接口的實(shí)現(xiàn)類哪一個(gè)先有返回,那就可以結(jié)束了,后面的 就不走了工序就完成了。就轉(zhuǎn)到下一道工器會(huì)在什么時(shí)候執(zhí)行呢? 一個(gè)請(qǐng)求交給一個(gè) 時(shí),這先找有沒(méi)有處理器來(lái)處理這個(gè)請(qǐng)求,如
11、何找到了,就執(zhí)行攔截器,執(zhí)行后,交給目標(biāo)如果沒(méi)有找到處理器,那么這器就不會(huì)被執(zhí)行。在 spring MVC 的配置文件中配置有三種方法方案一(近似)器所會(huì)為每個(gè) ,注入一器??傆幸皇强梢哉业教幚砥鞯?,最多也只找到一個(gè)處理器,所以這個(gè)器總會(huì)被執(zhí)行的。起到了器的作用。方案二, (近似) 器匹配的 URLerceptors bean就是比 方案一多了一個(gè) URL 方案三erceptors bean就是比 方案一多了一個(gè) URL 方案三上器 property 它 會(huì) 自 動(dòng)ionMethodHandlerAdapter 這兩個(gè) bean,所以就沒(méi)有機(jī)會(huì)再給它注erceptors 屬性,就無(wú)法指器當(dāng)可以
12、通過(guò)人工配置上面Bean,不使ion-/,就可以 erceptors 屬性 注器了。其實(shí)我也不建議使用ion-/,而建議當(dāng)可以通過(guò)人工配置上面Bean,不使ion-/,就可以 erceptors 屬性 注器了。其實(shí)我也不建議使用ion-/,而建議手動(dòng)寫配置文件,來(lái)ion-/,這就控制力就強(qiáng)了。十一、如何實(shí)現(xiàn)全局的異常處理?spring MVC 的配置文件中 !- 總錯(cuò)誤處理 property類具體可以配置哪些屬性,我是通過(guò)查看源碼類具體可以配置哪些屬性,我是通過(guò)查看源碼知道的。你也可以實(shí)現(xiàn) 接口,寫一個(gè)自己的異常處理程序spring 的擴(kuò)展性是很好的。通過(guò)可以將不同的異到不jsp 頁(yè)面(通過(guò)
13、s 屬性的配置同時(shí)也可以為所有的異常指定一個(gè)默認(rèn)的異常提示頁(yè)面( 通過(guò)defaultErrorView 屬性的配置,如果所拋出的異常在 s 有對(duì)應(yīng),則 Spring 將用此默認(rèn)配置顯示異常信注意這里配置的異常顯示界面均僅包括主文件名,至于文件路徑和后綴已經(jīng)在 viewResolver 中指定。如/error/error 表示顯示錯(cuò)誤的 jsp 頁(yè)面%page!DOCTYPE html PUBLIC -/W3C/DTD HTML 4.01 !DOCTYPE html PUBLIC -/W3C/DTD HTML 4.01 Exceptione=其中 tribute(exceptionkey 是 e
14、xception類默認(rèn)指定的,是可能通過(guò)配置文件修個(gè)值的,大家可以十二、如何把全局異常到日志中? warnLogCategory 類 的 全 限 定 名 ” 。 我 是 在ExceptionResolver 類父HandlerExceptionResolver 中找到這個(gè)屬性的。查看源碼后得知:如果 不為空就會(huì)使用 warnLogCategory 類 的 全 限 定 名 ” 。 我 是 在ExceptionResolver 類父HandlerExceptionResolver 中找到這個(gè)屬性的。查看源碼后得知:如果 不為空就會(huì)使用的日志工級(jí)別是 warn值:“ExceptionResolver
15、”類的全限定名”這個(gè)值不是隨便寫的為我在的配件中還要加入esolver=WARN,保證這個(gè)級(jí)別是 warn 的日志一定會(huì),即使log4j 的日志級(jí)別是 ERROR十三、如何給 spring3 MVC 中的 Action 做JUnit 單元測(cè)試?使用了spring3MVC后,給action做單元測(cè)試也很方便,我以前從來(lái)不寫單元測(cè)試的,再在不同了,方便了,所以一定要寫。JUnitActionBase 類是所有 JUnit 的測(cè)試類的importimportimport;*JUnitaction* *創(chuàng)建時(shí)間:2011-2-2 下午publicclassJUnitActionBaseic*publi
16、cicvoidsetUp()if=null)publicclassJUnitActionBaseic*publicicvoidsetUp()if=null)=MockServletContextmsc=new=)= *param*param*throwsM *param*param*throwsM throwsException=final AndView = return;這是JUnit 測(cè)試類可以 new Request 對(duì)象,來(lái)參與測(cè)試,太方便request 這是JUnit 測(cè)試類可以 new Request 對(duì)象,來(lái)參與測(cè)試,太方便request 指的 URL,就可以請(qǐng)求目標(biāo) Acti
17、on import * *創(chuàng)建時(shí)間:2011-2-2 下午 = = / 執(zhí)行URI /Assert 明一下 :由于當(dāng)前最想版本的 Spring(Test) 3.0.5還不支需ContextConfiguration 的注解式context file 注入,所以還需要寫個(gè) setUp 理下,否則類似于 Tiles 的加載過(guò)程會(huì)有錯(cuò)誤,因?yàn)闆](méi)有 ServletContext。的版本應(yīng)該有更好的解決方案,參見:。參考十四、轉(zhuǎn)發(fā)與重定向可以通過(guò) redirect/forward:url 方式轉(zhuǎn)到另一。參考十四、轉(zhuǎn)發(fā)與重定向可以通過(guò) redirect/forward:url 方式轉(zhuǎn)到另一進(jìn)行連續(xù)的處可以通過(guò)redirect:url防止表單重復(fù)提交寫法如下return redirect:/index.jsp;十五、處理ajax 請(qǐng)求1、引入下面兩包,我用的是1.7.2,好像1.4.2版本以上都地址: HYPERLINK http:/w/JacksonDownload 2spring 的配置文件中要有這才能使用到 spring 內(nèi)置支持的 轉(zhuǎn)換如果你手工把 POJO 轉(zhuǎn)成json 就可以不須要使用spring 內(nèi)置支持的轉(zhuǎn)換ion-driven 3、使用ResponseBody *ajax ; ;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025小學(xué)五年級(jí)少先隊(duì)工作計(jì)劃(5篇)
- 2024-2025學(xué)年第16課中國(guó)賦稅制度的演變-勤徑學(xué)升高中歷史選擇性必修1同步練測(cè)(統(tǒng)編版2019)
- 2025年雙方共同撫養(yǎng)孩子的離異協(xié)議書
- 2025年姿態(tài)敏感器項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2025年中藥材供應(yīng)協(xié)議書
- 2025年醫(yī)用手器械租賃合同
- 2025年會(huì)員服務(wù)權(quán)益轉(zhuǎn)移協(xié)議
- 2025年銅基記憶合金材料項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年螺旋錐齒輪項(xiàng)目提案報(bào)告模板
- 2025年沙發(fā)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模稿
- 人教版七年級(jí)英語(yǔ)上冊(cè)單元重難點(diǎn)易錯(cuò)題Unit 2 單元話題完形填空練習(xí)(含答案)
- 新版建設(shè)工程工程量清單計(jì)價(jià)標(biāo)準(zhǔn)解讀
- 云南省昆明市盤龍區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期語(yǔ)文期末試卷
- 圖像處理技術(shù)在自動(dòng)駕駛中的應(yīng)用
- 2024年云南省公務(wù)員考試《行測(cè)》真題及答案解析
- 2024-2025學(xué)年廣東省大灣區(qū)40校高二上學(xué)期聯(lián)考英語(yǔ)試題(含解析)
- 旅拍店兩人合作協(xié)議書范文
- 楚辭離騷的原文全文完整注音版、拼音版標(biāo)準(zhǔn)翻譯譯文及注釋
- 肩袖損傷病例討論
- 全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 衛(wèi)生院中醫(yī)、康復(fù)??平ㄔO(shè)實(shí)施方案-
評(píng)論
0/150
提交評(píng)論