1. 程式人生 > >SSM框架執行原理

SSM框架執行原理

sm框架:包括,springMVC  --  spring --  mybatis

springMVC  是基於MVC的框架

屬於MVC框架的還有:Struts1 Struts2 SpringMVC

 

獲取值得方式:

Struts1 actionForm(javabean中繼承)

Struts2 通過 set get  方法

SpringMVC  引數獲取    (直接獲取,eg:list(String name)

 

 

核心:

Struts1actionServlet 單例

Struts2 filterdispatcher 多例

SpringMVC  dispatcherServlet單例

 

SpringMVC:

 

核心控制器:DispatcherServlet

請求解析器:HandlerMapping

結果解析器:ModelAndView

檢視解析器:ViewResolver

 

SSM專案服務啟動:

專案進入web.xml

ssm框架 中web.xml執行順序

1.<!--spring 的監聽器-->

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

2<!-- spring 主配置檔案的 路徑 和名字 -->

<context-param>

<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>

</context-param>

.在啟動Web 容器時,自動裝配Spring applicationContext.xml 的配置資訊。(先執行spring的監聽器,

因為它實現了ServletContextListener 這個介面,在web.xml 配置這個監聽器,啟動容器時,就會預設執行它實現的方法。在ContextLoaderListener 中關聯了ContextLoader 這個類,所以整個載入配置過程由ContextLoader 來完成

spring 在 web 下的入口在配置檔案 web.xml 的監聽器中

 


3<!-- 過濾器 編碼格式 -->
<filter>
<filter-name>Encoding</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>Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

4<!-- springMVC的核心控制 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 自定義springMVC。xml 的路徑 和 名字 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
 

執行流程:

1.jsp(view)傳送請求

2.通過核心控制器DispatcherServlet呼叫請求解析器:HandlendMapping對請求進行解析,通過對映關係匹配到Controller層

3.在控制層呼叫業務邏輯層(service),資料持久層(DAO)返回控制層,請求完成獲取一個結果,設定一個要跳轉的檢視,(ModelAndView裝載並傳輸資料,設定檢視)

4.核心控制器呼叫 檢視解析器:ViewResolver解析檢視,匹配相應的頁面實現頁面跳轉