SpringMVC了解
Spring MVC是Spring提供的一個實作了Web MVC設計模式的輕量級Web架構,提供了一個前端控制器DispatcherServlet,使開發人員無需額外開發控制器對象。
DispatcherServlet作用
DispatcherServlet的全名是org.springframework.web.servlet.DispatcherServlet,它在程式中充當着前端控制器的角色。
在使用時,隻需将其配置在項目的web.xml檔案中.
web.xml配置
<!--理論上classpath的預設路徑是WEB-INF/classes 解決找不到的問題 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</context-param>
<!-- 配置Spring MVC前端控制器 DispatcherServlet -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 配置Spring MVC加載配置檔案路徑 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<!-- 配置伺服器啟動後立即加載Spring MVC配置檔案 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Spring Mvc 工作流程:
講解:
1.使用者通過浏覽器向伺服器發送請求,請求會被Spring MVC的前端控制器DispatcherServlet所攔截;
2:DispatcherServlet攔截到請求後,會調用HandlerMapping處理器映射器;
3:處理器映射器根據請求URL找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并傳回給DispatcherServlet;
4:DispatcherServlet會通過傳回資訊選擇合适的HandlerAdapter(處理器擴充卡);
5:HandlerAdapter會調用并執行Handler(處理器),這裡的處理器指的就是程式中編寫的Controller類,也被稱之為後端控制器;
6:Controller執行完成後,會傳回一個ModelAndView對象,該對象中會包含視圖名或包含模型和視圖名;
7:HandlerAdapter将ModelAndView對象傳回給DispatcherServlet;
8:DispatcherServlet會根據ModelAndView對象選擇一個合适的ViewReslover(視圖解析器);
9:ViewReslover解析後,會向DispatcherServlet中傳回具體的View(視圖);
10:DispatcherServlet對View進行渲染(即将模型資料填充至視圖中);
11:視圖渲染結果會傳回給用戶端浏覽器顯示。
字元編碼過濾器
<!-- 配置編碼過濾器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>