1. 程式人生 > >springmvc系列一 之配置介紹(包含官網doc)

springmvc系列一 之配置介紹(包含官網doc)

不同 oca handle bsp cut targe sevlet 繼承 流程

1.springmvc 官網參考地址:

  https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

2. springmvc 的介紹

  Spring Web MVC是基於Servlet API構建的原始Web框架,所以從一開始就包含在spring框架中。

3.DispatcherServlet

  springmvc像大多數web框架一樣,作為一個核心的前端控制器。dispatherServlet 繼承servlet 提供了分發客戶端發送來的請求到相應的handler 中。這個模型平滑的支持不同的工作流。(頁面請求,文件上傳等);dispatcherServlet 是一個服務端應用程序,要想實現springmvc 作為控制層,則需要在web.xml 中將這個sevlet 配置進去,以便於這個servlet 使用spring 配置文件中的配置項。例如獲取前端的request 請求,將攜帶的參數綁定到controller 中

4.web.xml 的配置

  其實這個配置很類似於struts2 的配置,都是將核心控制器配置進來,以下是基於springmvc 的配置

<web-app>

<!-- 配置監聽,監聽配置文件--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
<!-- 將springmvc 的配置文件引入 ,這裏有多中配置方式--> <
context-param> <param-name>contextConfigLocation</param-name>
      
      <!--方式1--> <param-value>/WEB-INF/app-context.xml</param-value>
         <!--方式2->
    <!--     <param-value>classpath:*-context.xml</param-value>   -->
    </
context-param>
<!-- 將前端控制器加載進來--> <servlet> <servlet-name>app</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>
classpath:spring-mvc.xml
</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

<!-- 配置過濾的請求--> <servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>

5. 特殊的bean

  dispatcherServlet 只是作為前端控制器,具體的業務處理將交給特定的bean 進行處理。你可以自定義或者擴展特殊的bean 處理對應的業務場景。

  A。HandlerMapping :根據客戶端發送過來的request 請求,將請求映射到對應的處理器

  B。HandlerAdapter:適配器 根據客戶端的請求去匹配那個適配器處理這個請求,根據具體的細節劃分對應的適配器

  C。 ViewResolver :視圖解析器,將controller 返回的數據封裝到視圖中,並尋找指定的視圖進行展現

  D。MultipartResolver :富文本解析器:例如返回pdf/img/excel 等

   E。 ThemeResolver :返回不同的主題

6.dispatcher 執行的過程

  首先dispatcher 接受用戶的請求,前端控制器接受到請求之後不自己做處理,而是委托給其他解析器進行處理,dispatcher 作為統一站點進行全局的流程控制。

  handlerMapping 把從dispatcher 接收到的請求映射為HandlerExecutionChain 對象(包含一個Handler 處理器對象,多個攔截器)

  handlerAdapter 將會把處理器包裝成為適配器,從而支持多種類型的處理器。之後根據適配的結果調用正真的處理器,並返回一個modelAndView 對象(包含模型數據。邏輯視圖名)

  viewResolver 把邏輯視圖名解析為具體的view

  view 根據傳遞進來的模型數據將頁面進行渲染

  返回控制權給dispatcher ,並由他返回響應給用戶

  

springmvc系列一 之配置介紹(包含官網doc)