SpringMVC是Spring中的模塊,它實現了mvc設計模式,
首先用戶發起請求,請求到達SpringMVC的前端控制器(DispatcherServlet),前端控制器根據用戶的url請求處理器映射器查找匹配該url的handle,並返回一個執行鏈,前端控制器再請求處理器適配器調用相應的handle進行處理並返回給前端控制器一個modelAndView,前端控制器再請求視圖解析器對返回的邏輯視圖進行解析,最後前端控制器將返回的視圖進行渲染,並把數據裝入到request域,返回給用戶。html
DispatcherServlet做爲SpringMVC的前端控制器,負責接收用戶的請求,並根據用戶的請求返回相應的視圖給用戶。實現業務在service層前端
===============================================================java
DispatcherServlet是前端控制器設計模式的實現,提供Spring Web MVC的集中訪問點,並且負責職責的分派,並且與Spring IoC容器無縫集成,從而能夠得到Spring的全部好處。web
DispatcherServlet主要用做職責調度工做,自己主要用於控制流程,主要職責以下:spring
一、文件上傳解析,若是請求類型是multipart將經過MultipartResolver進行文件上傳解析;設計模式
二、經過HandlerMapping,將請求映射處處理器(返回一個HandlerExecutionChain,它包括一個處理器、多個HandlerInterceptor攔截器);服務器
三、經過HandlerAdapter支持多種類型的處理器(HandlerExecutionChain中的處理器);mvc
四、經過ViewResolver解析邏輯視圖名到具體視圖實現;app
五、本地化解析;框架
六、渲染具體的視圖等;
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--註冊springmvc框架的核心對象DispatcherServlet(中央調度器)--> <!-- 在服務器啓動的時候,會找/WEB-INF/myweb-servlet.xml ,/WEB-INF/springmvc-servlet.xml 找的文件命名是: 目錄是WEB-INF, 文件名稱是: <servlet-name>-servlet.xml 爲何要找這個文件? 在DispatcherServlet這個Servlet的init()方法中,會建立springmvc的容器對象WebApplicationContext, 在建立容器對象時,會加載讀取springmvc須要的配置文件,默認查找位置就是/WEB-INF/<servlet-name>-servlet.xml springmvc須要的配置文件,能夠單獨指定的,須要配置參數contextConfigLocation. --> <servlet> <servlet-name>springmvc</servlet-name> <!--前端控制器(front controller)--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--指定springmvc配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--在服務器啓動的時候,建立Servlet對象--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- <url-pattern> : 表示把請求交給指定的Servlet對象。只有把請求交給DispatcherServlet, 這樣的請求才能使用springmvc框架處理。 使用DispatcherServlet接收用戶的請求。 在框架中url-pattern: 1.擴展名: *.xxxx , xxxx 就是自定義的擴展名。 例如 *.do , *.action,*.mvc等等,不能使用*.jsp 2.使用斜槓"/" --> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
以上是一個springmvc示例的xml配置文件。須要在xml文件中註冊DispatcherServlet對象