SSM工作流程的大致理解


//不是根據源碼來理解的,所以細節有省略..

首先從在瀏覽器輸入URl的那一刻開始

例如輸入

localhost:8080/MyProject/listCategory

初始化:

此時tomcat已經啟動,於是tomcat將請求交給相應的Servlet去執行

這里可以看到web.xml,里面有一個不是很熟悉的Servlet的名稱:DispatcherServlet,可以看到他是在SpringMVC包下面的.

Dispatcher顧名思義是分發的意思,所以,他是負責協調和組織不同組件完成請求處理並返回響應工作的"老大"

在tomcat啟動的同時,它會加載web.xml文件里面的相關配置,包括DispatcherServlet,與此同時SpringMVC的IOC容器也初始化完成

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

  <!--Spring配置-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>


  <!--SpringMVC設置-->
  <servlet>
    <servlet-name>Dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>
View Code

 

找合適的handler:

DispatcherServlet 從容器中取出所有 HandlerMapping 實例(每個實例對應一個 HandlerMapping 接口的實現類)並遍歷,每個 

HandlerMapping 會根據請求信息,通過自己實現類中的方式去找到處理該請求的 Handler,比如Controller類中的方法

但是找到相應的handler之后DispatcherServlet他自己是執行不了的,需要HandlerAdapter,於是他取出HandlerAdapter組件,根據

handler選擇與之匹配的HandlerAdapter來處理, 處理完成得到 ModelAndView

 

 

解析成View

這里會用到另外一個東西:InternalResourceViewResolver,由它把ModelAndView對象解析成View

然后 View 會調用 render() 方法再根據 ModelAndView 中的數據渲染出頁面

 

結束

 

參考的博客:https://www.cnblogs.com/tengyunhao/p/7518481.html

還有how2java的網站:http://how2j.cn/k/ssm/ssm-tutorial/1137.html

剛好今天把SSM復習了,所以想把流程全部來一遍,便寫來了記一下,其實這中間還有許多細節,不過我覺得先對宏觀有個了解吧

之后還是會把細節過一遍的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM