1.前端控制器?
2.映射器?
3.適配器?
4.控制器
5.視圖解析器
一.前端控制器的配置
要點(diǎn):@前端控制器的實(shí)現(xiàn)類(lèi)為DispatcherServlet,@<init-param>標(biāo)簽為設(shè)置初始化的參數(shù)的名字和值,配置程序初始化是自動(dòng)掃描spring_mvc.xml文件,@web項(xiàng)目需要加classpath前綴榆俺,@<load-on-startup>標(biāo)簽是指在程序啟動(dòng)時(shí)就加載該servlet類(lèi)棉磨,@url-pattern標(biāo)簽中寫(xiě)的是servlet的訪問(wèn)路徑呢蛤,根據(jù)這個(gè)標(biāo)簽的名字服務(wù)器會(huì)找到被映射的同名的servlet字節(jié)碼文件
二.映射器,適配器,控制器,視圖解析器的配置
第一種
要點(diǎn):@有多個(gè)映射器和適配器可選擇 ?@配置控制器要實(shí)現(xiàn)controller接口雁社,實(shí)現(xiàn)類(lèi)進(jìn)行邏輯操作置济,name屬性的值指的是瀏覽器要訪問(wèn)的uri地址
,spring_mvc為xml文件名 ? @配置視圖解析器時(shí)可以配置前綴和后綴所坯,在前端控制器就可以在一定情況下省略后綴名
第二種
要點(diǎn):@適配器和映射器要一起使用谆扎,可使用<mvc:annotation-driven/>標(biāo)簽代替 ? @ 使用注解創(chuàng)建對(duì)象時(shí)需要開(kāi)啟主鍵掃描<context:component-sanc/> ? @使用注解后不需要實(shí)現(xiàn)接口,只需在類(lèi)上使用@Controller即可芹助,name屬性被@RequestMapping(" uri地址")所代替堂湖,用在方法上 闲先???
三.控制器類(lèi)中方法的三種返回類(lèi)型
1.返回值為void
2.返回值為ModelAndView對(duì)象
3.返回值String
要點(diǎn):@參數(shù)可以使用Model无蜂,ModelMap伺糠,HttpServletRequest, 前兩者調(diào)用的方法為addAttribute(" name","value"),裝健值對(duì)數(shù)據(jù)來(lái)保存請(qǐng)求的參數(shù),后者調(diào)用setAttribute方法來(lái)保存斥季,但是兩者的核心一樣都是將請(qǐng)求參數(shù)保存在request域?qū)ο笾? @給視圖解析器配置前后綴對(duì)重定向训桶,轉(zhuǎn)發(fā)(forword:/redirect:)沒(méi)有作用,需要手動(dòng)加后綴
四.參數(shù)的綁定
1.簡(jiǎn)單參數(shù)綁定:添加參數(shù)酣倾,表單name屬性的值和傳遞的形參一致舵揭,不想一致時(shí)需要加@RequestParam(表單的name屬性的值)
2.pojo參數(shù)綁定:形參為對(duì)象,表單的name屬性值和對(duì)象中的屬性名一致
pojo參數(shù)綁定
綁定集合和包裝類(lèi)型
控制器中方法的書(shū)寫(xiě)
綁定數(shù)組