




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、day01 springmvc入門課程計劃:1、 springmvc介紹和框架原理2、 springmvc入門程序3、 ssm整合4、 springmvc參數(shù)綁定5、 springmvc與struts2的區(qū)別1 springmvc介紹和框架原理1.1 springmvc介紹Spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分(springmvc與spring之間無需整合),我們可以從Spring的整體結(jié)構(gòu)中看得出來,如下圖:1.2 什么是mvcMVC的全名Model View Controller,即模型-視圖-控制器的縮寫,這是一種設(shè)計模式,而非架構(gòu)。
2、MVC它強(qiáng)制的使用應(yīng)用程序的輸入、處理、和輸出分開,這三個核心組件分別處理各自的的任務(wù),最典型的MVC模式就是:jsp+servlet+javabean的模式用戶的請求通過servlet(controller、service、dao)處理后,通過將數(shù)據(jù)庫的信息映射成對應(yīng)的javabean,并將該數(shù)據(jù)在頁面顯示(view),這就是一個最基本的MVC的模式。這種設(shè)計模式的好處:降低的各模塊之間的耦合性(如果視圖層需要改變其代碼,修改頁面樣式,就不涉及到controller和model層代碼;如果需要修改業(yè)務(wù)邏輯,這個時候是不需要修改與其相關(guān)的view視圖代碼等);重用性高:多個視圖可以共享一個數(shù)據(jù)
3、模型,比如pc端下單和移動端下單,雖然訂購的方式不一樣,但是處理該數(shù)據(jù)的方式都是一樣的;可維護(hù)性高等優(yōu)點(diǎn)。該模型基于Mvc的實(shí)現(xiàn),在此模型中,由Servlet充當(dāng)Controller層,Jsp只負(fù)責(zé)數(shù)據(jù)的顯示,即view層,而JavaBean則負(fù)責(zé)封裝數(shù)據(jù),即Model層.此種模型的特點(diǎn)是,對于每一個響應(yīng)用戶請求的Servlet都必須配置到web.xml中,且對于頁面轉(zhuǎn)發(fā)或重定向仍然是在Servlet中書寫硬編碼,不利于轉(zhuǎn)發(fā)目標(biāo)的維護(hù),同時,如果要支持國標(biāo)化文件上傳等功能,必須收程序員自己完成.1.3 struts2框架原理1. 客戶端發(fā)起一個請求(*.action)2. 主控器FilterD
4、ispatcher攔截請求3. 主控器通過ActionMapper判斷請求是否交給action處理.如果是,那么判斷請求的action是否存在,如果不存在,報404錯誤.4. 主控器創(chuàng)建ActionProxy對象,這個對象全權(quán)負(fù)責(zé)action的執(zhí)行.5. ActionProxy通過ConfigurationManager對象獲得當(dāng)前訪問的action的相關(guān)配置信息.6. ActionProxy根據(jù)獲得的action的配置信息,創(chuàng)建ActionInvocation對象.7. ActionInvocation對象負(fù)責(zé)執(zhí)行action前面的攔截器以及action對象,并且處理action執(zhí)行后的結(jié)果
5、.8. action前面的攔截器被執(zhí)行,最后執(zhí)行action.9. ActionInvocation得到action執(zhí)行后的邏輯視圖,根據(jù)邏輯視圖找到物理視圖,然后轉(zhuǎn)發(fā)請求.1.4 springmvc框架原理1、用戶發(fā)送請求至前端控制器DispatcherServlet2、DispatcherServlet收到請求調(diào)用HandlerMapping處理器映射器。3、處理器映射器根據(jù)請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。4、DispatcherServlet通過HandlerAdapter處理器適配器調(diào)用處理器5、執(zhí)行
6、處理器(Controller,也叫后端控制器)。6、Controller執(zhí)行完成返回ModelAndView7、HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet8、DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器9、ViewReslover解析后返回具體View10、DispatcherServlet對View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。11、DispatcherServlet響應(yīng)用戶2 springmvc入門程序-基于注解開發(fā)2.1 需求查詢商品的列表信息
7、(暫時使用靜態(tài)數(shù)據(jù))。2.2 環(huán)境搭建過程:略1、 創(chuàng)建web工程2、 導(dǎo)入jar包2.3 創(chuàng)建商品的pojo這里的商品信息我們直接從逆向工程中copy。2.4 編寫Controller1、Controller注解:我們都知道,在開發(fā)Struts2時我們都是編寫的Action,而且編寫的Action類能讓Struts2框架的執(zhí)行需要繼承ActionSupport。那么我們這里編寫的Controller能夠讓springmvc框架執(zhí)行我們需要在該類上添加Controller注解(或者實(shí)現(xiàn)Controller或者HttpRequestHandler接口)即可。2、RequestMapping注解:
8、配置訪問請求的url。2.5 編寫jsp頁面2.6 配置web.xml1、 配置springmvc的前端控制器2、 配置請求url的攔截格式2.7 編寫springmvc.xml作用:1、 配置掃描器2、 配置處理器映射器3、 配置處理器適配器4、 配置視圖解析器2.8 加載springmvc.xml配置文件2.9 啟動測試success。2.10 優(yōu)化1、當(dāng)我們訪問請求時,才初始化springmvc的前端控制器,這樣會降低用戶的請求速度。因此我們讓改springmvc的前端控制器在tomcat容器啟動時初始化比較合適。2、優(yōu)化視圖解析器3、 注解驅(qū)動3 ssm整合3.1 整合思路3.2 環(huán)境
9、搭建3.2.1 導(dǎo)入jar包分析需要哪些jar包:jsp層、controller層、service層、dao層、數(shù)據(jù)庫3.2.2 創(chuàng)建工程的目錄結(jié)構(gòu)3.2.3 準(zhǔn)備資源文件3.2.4 編寫mybatis的全局配置文件3.3 編寫配置文件3.3.1 編寫applicationContext-mapper.xml作用:管理mybatis。1、 加載外部資源文件2、 管理數(shù)據(jù)源3、 管理SQLSessionFactory4、 管理批量代理對象3.3.2 編寫applicationContext-service.xml作用:管理service。3.3.3 編寫applicationContext-tr
10、ansaction.xml3.3.4 編寫springmvc.xml1、 掃描controller2、 基于注解驅(qū)動的處理器映射器和適配的配置3、 配置視圖解析器4、 加載所有的配置文件3.3.5 編寫web.xml3.4 dao層開發(fā)3.4.1 copy逆向工程代碼略。3.4.2 創(chuàng)建兩個pojo 創(chuàng)建ItemsCustom作用:擴(kuò)展items。讓程序更加靈活。 創(chuàng)建ItemsQueryVo作用:包裝類型的pojo,用于包裝頁面?zhèn)鬟f過來的條件。3.4.3 編寫mapper接口3.4.4 編寫mapper映射文件3.5 service層開發(fā)3.5.1 編寫servi
11、ce接口3.5.2 編寫實(shí)現(xiàn)類3.6 編寫controller層3.7 添加jsp頁面3.8 啟動測試success。4 springmvc的參數(shù)綁定4.1 概念springmvc的參數(shù)綁定就是將請求的key/value或者form表單數(shù)據(jù),通過springmvc參數(shù)綁定的特性將其綁定到對應(yīng)Controller方法的形參上,該過程主要是通過HandlerMethodArgumentResolver類處理。在參數(shù)綁定的過程中,如果將請求的數(shù)據(jù)與綁定到controller方法形參數(shù)據(jù)類型不一致,我們可以通過類型轉(zhuǎn)換器來處理,即Converter實(shí)現(xiàn)。4.2 默認(rèn)支持的參數(shù)綁定例如:如果需要requ
12、est、response、model這些對象時,我們可以直接在方法的形參中添加這些變量。4.2.1 HttpServletRequest通過request對象獲取請求信息4.2.2 HttpServletResponse通過response處理響應(yīng)信息4.2.3 HttpSession通過session對象得到session中存放的對象4.2.4 Model/ModelMapmodel是一個接口,modelMap是一個接口實(shí)現(xiàn) 。作用:將model數(shù)據(jù)填充到request域。4.3 基本類型的參數(shù)綁定4.3.1 需求修改商品信息4.3.2 特點(diǎn)請求url的key的名稱必須與controller
13、方法的形參一致。4.3.3 修改jsp頁面的請求路徑4.3.4 編寫service接口、實(shí)現(xiàn)類接口:實(shí)現(xiàn)類:4.3.5 編寫controller4.3.6 添加jsp頁面略。4.3.7 RequestParam注解特點(diǎn):1、 value:如果請求的key的名稱與形參名稱不一致可以通過該注解實(shí)現(xiàn)2、 required:無請求參數(shù)key:required 默認(rèn)值為true,即請求url后必須有參數(shù)。3、 defaultValue:設(shè)置默認(rèn)值,如果key有值默認(rèn)值無效4.4 與pojo的參數(shù)綁定4.4.1 需求更新用戶4.4.2 特點(diǎn)form表單中的input中name的值必須與controller
14、形參pojo的屬性名完全一致才能完成綁定。4.4.3 修改jsp頁面的請求路徑4.4.4 編寫service接口、實(shí)現(xiàn)類接口:實(shí)現(xiàn)類:4.4.5 編寫controller注意:springmvc4.0之后的版本中,如果類型不一致pojo無法完成綁定,例如時間字符串與date類型綁定。在4.0之前是可以的,只是結(jié)果不正確。 post提交亂碼 類型轉(zhuǎn)換錯誤原因:string無法與date類型完成綁定。解決:自定義類型轉(zhuǎn)換器-實(shí)現(xiàn)converter接口。加載自定義類型轉(zhuǎn)器。 完善controller4.4.6 添加success頁面略。4.5 與包裝類型的p
15、ojo參數(shù)綁定4.5.1 需求根據(jù)商品名稱查詢4.5.2 修改jsp頁面4.5.3 更新controller5 Struts2與springmvc區(qū)別5.1 使用上DispatcherServlet-StrutsPrepareAndExecuteFilterHandler(實(shí)現(xiàn)Controller或者HttpRequestHandler)-Action(繼承ActionSupport)HandlerInterceptor-Interceptor,由于sping是面向切面的編程,因此攔截器在spring中被弱化HandlerMethodArgumentResolver-Model,spring通過參數(shù)綁定,而Struts2通過模型驅(qū)動或者屬性驅(qū)動獲取數(shù)據(jù)ViewResolver解析-通過配置result指定一個具體的頁面5.2 本質(zhì)上1、 springMVC基于方法的開發(fā),我們可以通過我們的代碼中,我們沒有所謂的數(shù)據(jù)域?qū)ο?,除了引用的service就只有方法,而Struts2是基于類的開發(fā),該類中有各種各樣的全局變量,因此我們說St
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修橋合同范本
- 2025年安徽道路運(yùn)輸從業(yè)資格證考試內(nèi)容是什么
- 包工料水電裝修合同范本
- 公司退休返聘合同范例
- 醫(yī)院人事勞務(wù)合同范本
- 全套合同范本目錄
- 傭金合同范本道客
- 全職抖音主播合同范本
- 農(nóng)村改水電合同范本
- 出租生態(tài)大棚合同范本
- 2024年洛陽市九年級語文中考第一次模擬考試卷附答案解析
- 安徽省醫(yī)療保障基金使用違法違規(guī)問題檢查指引2023版
- 脾淋巴瘤護(hù)理查房
- (幻燈片)湘教版七年級下冊地理復(fù)習(xí)課件
- 食堂油鍋起火演練方案及流程
- 2024年江西電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 醫(yī)療器械銷售渠道管理
- 幼兒園中班跳繩實(shí)施方案及措施
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識點(diǎn)總結(jié)(重點(diǎn)標(biāo)記版)
- 小學(xué)學(xué)校培優(yōu)輔差計劃
- 【真題】2023年常州市中考道德與法治試卷(含答案解析)
評論
0/150
提交評論