SpringMVC基礎知識整合(一)
一
1.springmvc是什麼?
springmvc是spring的一個模組,提供web層解決方案(基於mvc設計架構)
2.mvc在b/s系統的應用
mvc是一個設計模式,在b/s系統的應用:
3.SpringMVC框架
DispatcherServlet:前端控制器,由springmvc提供
HandlerMappting:處理器對映器,由springmvc提供
HandlerAdapter:處理器介面卡,由springmvc提供
Handler:處理器,需要程式設計師開發
ViewResolver:檢視解析器,由springmvc提供
View:真正檢視頁面需要由程式編寫
二
1.入門程式
需求:實現商品列表查詢
需要的jar包:使用spring5.0.2(帶springwebmvc模組)
2.前端控制器
3.springmvc.xml
在springmvc.xml中配置springmvc架構三大元件(處理器對映器、介面卡、檢視解析器)
- 處理器對映器
在springmvc.xml中配置:
BeanNameUrlHandlerMapping: 根據請求url(XXXX.action)匹配spring容器bean的 name
找到對應的bean(程式編寫的Handler)
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
所有處理器對映器都實現HandlerMapping介面。
- 處理器介面卡
在springmvc.xml配置:處理器對映器
所有的介面卡都是實現了HandlerAdapter介面。
程式編寫Handler根據介面卡的要求編寫。
SimpleControllerHandlerAdapter介面卡要求:
通過supports方法知道Handler必須要實現哪個介面:
3. Handler編寫
1.實現Controller介面
2.註解開發
4. 配置handler
在springmvc.xml配置Handler由spring管理Handler。
1 單個實現Controller介面的handler配置
5.配置檢視解析器
6.其它非註解處理器對映器和介面卡
1.BeanNameUrlHandlerMapping(對映器)
根據請求url(XXXX.action)匹配spring容器bean的 name
找到對應的bean(程式編寫的Handler)
2.SimpleUrlHandlerMapping(對映器)
注意:在springmvc.xml配置了多個處理器對映器,多個處理器對映器可以共存。
3.SimpleControllerHandlerAdapter(介面卡)
要求程式編寫的Handler(Controller)需要實現 Controller介面。
4.HttpRequestHandlerAdapter(介面卡)
在springmvc.xml配置:HttpRequestHandlerAdapter
要求Handler 實現 HttpRequestHandler介面
事例:開發Handler
7.DispatcherServlet.properoties
DispatcherServlet前端控制器載入 DispatcherServlet.properoties 配置檔案,從而預設載入各各元件,
如果在springmvc.xml中配置了處理器對映器和介面卡,以sprintmvc.xml中配置的為準
註解對映器和介面卡
(重點掌握)
註解對映器
spring3.1之前預設載入對映器是
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,3.1之後要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
在springmvc.xml中配置RequestMappingHandlerMapping:
使用RequestMappingHandlerMapping需要在Handler 中使用@controller標識此類是一個控制器,使用@requestMapping指定Handler方法所對應的url。
註解介面卡
spring3.1之前預設載入對映器是
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,3.1之後要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
RequestMappingHandlerAdapter,不要求Handler實現任何介面,它需要和RequestMappingHandlerMapping註解對映器配對使用,主要解析Handler方法中的形參。
註解開發Hanlder
配置handler
小結
DispatcherServlet:前端控制器,相當於中央排程器,可以降低元件之間的耦合度。
HandlerMapping:處理器對映器,負責根據url查詢Handler
HandlerAdapter:處理器介面卡,負責根據介面卡要求的規則去執行處理器。可以通過擴充套件介面卡支援不同型別的Handler。
viewResolver:檢視解析器,根據邏輯檢視名解析成真正的檢視
真正檢視地址==字首+邏輯檢視名+字尾