架構是指軟件結構的專用名詞,
構架只是架構的另外一種叫法
框架指的是一些通用的結構和組件web
1、Struts2框架介紹apache
Struts2框架是MVC流程框架,適合分層開發。框架應用實現不依賴於Servlet,使用大量的攔截器來處理用戶請求,屬於無侵入式的設計。tomcat
二、struts2的運行原理架構
(1)tomcat 啓動的時候會加載 web.xml 、核心控制器 FilterDispatcher 會加載並解析 struts.xmlapp
(2)客戶端會發送一個請求到 action 、FilterDispatcher 會根據後綴名進行攔截框架
(3)FilterDispatcher根據 struts.xml 的配置文件信息 找到 某個action 對應的某個類裏的指定方法jsp
(4)執行相關的業務邏輯最後返回 一個Stringurl
(5)<action/> 裏配置 <result/> name的屬性值與返回的String 進行匹配,跳轉到指定的jsp 頁面spa
3、框架的使用設計
框架爲咱們作好了封裝,使用起來就按照步驟,配置幾個xml文件就行拉。
1)導入jar包
四、在web.xml文件中配置核心控制器
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>struts2</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
五、拷貝struts.xml文件
將拷貝的配置文件放在根目錄src下。struts.xml文件主要是配置請求路徑對應action類的,以及結果跳轉路勁。
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 <struts> 6 <package name="example" namespace="/example" extends="struts-default"> 7 <action name="HelloWorld" class="struts2.action.HelloWorldAction"> 8 <result name="success">/success.jsp</result> 9 </action> 10 </package> 11 </struts>
六、 Strut2的體系結構如圖所示:
一個請求在Struts2框架中的處理大概分爲如下幾個步驟:
一、客戶端初始化一個指向Servlet容器(例如Tomcat)的請求;
二、這個請求通過一系列的過濾器(Filter)(這些過濾器中有一個叫作ActionContextCleanUp的可選過濾器,這個過濾器對於Struts2和其餘框架的集成頗有幫助,例如:SiteMesh Plugin);
三、接着FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否須要調用某個Action;
四、若是ActionMapper決定須要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy;
五、ActionProxy經過Configuration Manager詢問框架的配置文件,找到須要調用的Action類;
六、ActionProxy建立一個ActionInvocation的實例。
七、ActionInvocation實例使用命名模式來調用,在調用Action的過程先後,涉及到相關攔截器(Intercepter)的調用。
八、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果一般是(但不老是,也多是另外的一個Action鏈)一個須要被表示的JSP或者FreeMarker的模版。在表示的過程當中可使用Struts2框架中繼承的標籤。在這個過程當中須要涉及到ActionMapper。
END!!!