1. 程式人生 > >SpringMVC基礎知識整合(一)

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模組)
在這裡插入圖片描述

注意:springmvc預設支援jstl
2.前端控制器
在這裡插入圖片描述3.springmvc.xml
在springmvc.xml中配置springmvc架構三大元件(處理器對映器、介面卡、檢視解析器)

  1. 處理器對映器
    在springmvc.xml中配置:
    BeanNameUrlHandlerMapping: 根據請求url(XXXX.action)匹配spring容器bean的 name
    找到對應的bean(程式編寫的Handler)
<bean
	class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

所有處理器對映器都實現HandlerMapping介面。

  1. 處理器介面卡
    在springmvc.xml配置:處理器對映器

    所有的介面卡都是實現了HandlerAdapter介面。

程式編寫Handler根據介面卡的要求編寫。
SimpleControllerHandlerAdapter介面卡要求:
通過supports方法知道Handler必須要實現哪個介面:在這裡插入圖片描述
3. Handler編寫
1.實現Controller介面
在這裡插入圖片描述 2.註解開發
在這裡插入圖片描述
4. 配置handler
在springmvc.xml配置Handler由spring管理Handler。
1 單個實現Controller介面的handler配置在這裡插入圖片描述

2.單個註解開發handler的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:檢視解析器,根據邏輯檢視名解析成真正的檢視
在這裡插入圖片描述真正檢視地址==字首+邏輯檢視名+字尾