框架篇引導學習(一)


1、Struts1的運行原理前端

在啓動時經過前端總控制器ActionServlet加載struts-config.xml並進行解析,當用戶在jsp頁面發送請求被struts1的核心控制器ActionServlet接收,ActionServlet在用戶請求時將請求參數放到對應的ActionForm對象中的成員變量中,而後ActionServlet則會根據struts-config.xml中的映射關係找到相應的Action中的方法,將對應的ActionForm一併傳給這個Action中的方法裏,而後執行相應的業務邏輯操做,最後就根據ActionMappingfindforward方法返回一個ActionForward,以後在struts-config.xml中找到與之對應的forward標籤,根據它的配置路徑找到對應的jsp頁面。web

2、Struts2的運行原理spring


1tomcat 啓動的時候會加載 web.xml 、核心控制器FilterDispatcher 會加載並解析 struts.xml 
sql

2、客戶端會發送一個請求到 action FilterDispatcher  會根據後綴名進行攔截數據庫

3FilterDispatcher根據 struts.xml  的配置文件信息 找到 某個action 對應的某個類裏的指定方法瀏覽器

4、執行相關的業務邏輯最後返回 一個Stringtomcat

5<action/> 裏配置 <result/> name的屬性值與返回的String 進行匹配,跳轉到指定的jsp 頁面安全

3、Spring MVC運行原理session


整個處理過程從一個HTTP請求開始:mvc

1.Tomcat在啓動時加載解析web.xml,找到spring mvc的前端總控制器DispatcherServlet,而且經過DispatcherServlet來加載相關的配置文件信息。

2.DispatcherServlet接收到客戶端請求,找到對應HandlerMapping,根據映射規則,找到對應的處理器(Handler)。

3.調用相應處理器中的處理方法,處理該請求後,會返回一個ModelAndView

4.DispatcherServlet根據獲得的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據視圖解析器的配置,DispatcherServlet將要顯示的數據傳給對應的視圖,最後顯示給用戶。

4、Struts1.x與Struts2.x的區別

Struts 2WebWork爲核心,

採用攔截器的機制來處理用戶的請求,struts1嚴重依賴於servletAPI,

屬於侵入性框架,struts2不嚴重依賴於servletAPI,屬於非侵入型框架。

線程模型方面:

Struts1Action是單實例的,

一個Action的實例處理全部的請求。

Struts2Action是一個請求對應一個實例(每次請求時都新new出一個對象),

沒有線程安全方面的問題

封裝請求參數:

Struts1中強制使用ActionForm對象封裝請求的參數。

Struts2能夠選擇使用POJO類來封裝請求的參數,或者直接使用Action的屬性。

struts1的前端總控制器(核心總控制器)ActionServlet,

struts2的前端總控制器(核心總控制器)FilterDispather

5、Spring MVC、struts1和struts2區別

1.spring mvc 單例 非線程安全

  struts1單例 非線程安全

  struts2線程安全對每一個請求都產生一個實例

2.spring mvc的入口是servlet,而struts2filter

  spring 的前端總控制器爲 DispatcherServlet

  struts2 的前端總控制器爲 FilterDispatcher

  struts1 的前端總控制器爲 actionServlet

3. 參數傳遞:struts是在接受參數的時候,

能夠用屬性來接受參數,這就說明參數是讓多個方法共享的。

springmvc 用方法來接受參數

4.spring mvc是基於方法的設計,sturts是基於類

6、Struts2中result中的type類型

1.dispatcher:它是默認的,用來轉向頁面,一般處理JSP

2.redirect:將用戶重定向到一個已配置好的URL

3.redirectAction:將用戶重定向到一個已定義好的action

4.chain:將action和另一個action連接起來

5.freemarker:呈現Freemarker模板

6.httpheader:返回一個已配置好的HTTP頭信息響應

7.stream:向瀏覽器發送InputSream對象對下載的內容和圖片很是有用

8.velocity:呈現Velocity模板

9.xslt:該XML能夠經過XSL模板進行轉換

10.plaintext:顯示原始文件內容,例如文件源代碼

7、Struts2標籤

首先須要引用 <%@taglib prefix="s" uri="/struts-tags"%>

1.<s:if></s:if> 判斷標籤 後面可跟 <s:else>

2.<s:iterator> </s:iterator> 迭代標籤

3.<s:include></s:include> 引入標籤 能夠把一個JSP頁面或者servlet引入一個頁面中

4.<s:property></s:property> 輸出標籤

5.<s:set></s:set> 標籤賦予變量一個特定範圍內的值

6.<s:form></s:form> 表單標籤

7.<s:testarea></s:textarea> 文本域標籤

8.<s:select></s:select> 下拉標籤

9.<s:url></s:url> 聲明一個url的路徑

 

最經常使用的是:

判斷<s:if></s:if>

循環<s:iterator></s:terator>

輸出<s:property></s:property>

8、SSI整合

1Action繼承於Actionsupport

2、引入struts-spring-plugin.jar包,從而完成strutsspring的整合

3、在struts2action中注入service,保證service的名字和配置文件中的一致,並生成get,set方法

4Dao層繼承於SqlMapClientDaoSupport

5、在dao層的配置文件中注入sqlMapClient

9、SSH整合

1Action繼承於ActionSupport

2、引入struts-spring-plugin.jar包,從而完成strutsspring的整合

3、在struts2action中注入service,保證service的名字和配置文件中的一致,並生成get,set方法

4Dao層繼承於hibernateDaoSupport

5、在dao層的配置文件中注入sessionFactory

 

Hibernate中的兩大配置文件:

*.hbm.xml:主鍵生成策略,映射關係,一對多,一對一的關係

Hibernate.cfg.xml:方言(用哪一個數據庫),數據庫鏈接信息,包含*.hbm.xml內容,映射文件,也能夠配事務

10、Spring MVC整合

1.首先,要在web.xml裏面配置SpringMVC的核心控制器,DispatcherServlet,對指定的後綴請求進行攔截。

2.Controller層要加 @Controller註解,代表該類是MVC的控制層。

3.建立Service接口,給接口加上註解 @Component或者 @Service 代表這是Service業務處理層。

4.Controller層聲明Service變量(屬性),給變量(屬性) 加上@Autowired註解,經過自動綁定機制將Service注入到Controller(@Autowired默認是ByType,若是想根據屬性名注入,那麼就再加上註解@Resource(name="屬性名"))。

5.在Controller層的方法上加上註解@RequestMapping("requestAddress") 代表該方法的請求地址。

6.Dao層要加上註解 @Repository 代表這是數據庫持久層。

7.一樣將dao實例注入到service層中。

8.配置視圖解析器 "InternalResourceViewResolver",對處理後的跳轉進行統一配置。

相關文章
相關標籤/搜索