配置及流程前端
1. Web.xml中配置web
<!-- struts2的核心過濾器 前端控制器apache 做用:接管請求。將請求交給struts2來處理。瀏覽器 配置時保證請求被struts2接管服務器 不一樣版本的核心過濾器不同。2.1之前是org.apache.struts2.dispatcher.FilterDispatcherapp 2.1之後org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterjsp -->編碼 <filter>url <filter-name>struts2</filter-name>spa <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
2. struts.xml配置文件,該配置文件位於src下,文件名不能被更改。
<struts> <!-- constant 常量配置 struts.devMode 設置是不是開發模式 --> <constant name="struts.devMode" value="true" /> <!-- 設置編碼 --> <constant name="struts.i18n.encoding" value="utf-8"/> <!-- 設置action的擴展名 --> <constant name="struts.action.extension" value="action,,do"/> <!-- package表示一個包每一個包下能夠配置多個action 包的做用主要用來區分不一樣模塊的配置 不一樣模塊配置在不一樣的包下 name 是包名 在項目下惟一 一般使用模塊名作爲包名 extends 表示繼承 必須直接或者間接繼承struts-default namespace 表示命名空間 命名空間和請求名直接相關 請求名=項目發佈路徑名+namespace名+action名 namespace名稱一般也和模塊名相關 --> <package name="default" extends="struts-default" namespace="/user"> <!-- action 配置請求名 一個action表示對一個請求的處理 name在同一個包下惟一 會做爲請求名稱 該名稱會自動將請求的擴展名去掉,因此不用配置擴展名 class 配置處理請求的類的徹底限定名=包名+類名。若是不配置class默認由 com.opensymphony.xwork2.ActionSupport來處理。 method 配置處理方法的名稱 默認由execute方法處理 在struts2中處理方法 必須是 public的,返回值必須是String。 --> <action name="hello" class="cn.sxt.action.HelloAction" method="hello"> <!-- result配置的結果集處理 每一個action中能夠及配置多個result name表示結果集名稱 和處理方法的返回值進行匹配 默認是success; type表示結果集類型 dispatcher 轉發-默認 redirect 重定向 redirectAction 重定向到另一個action stream 流 chain 表示action鏈 result中填寫要跳轉的頁面的路徑 --> <result name="success" type="dispatcher">/index.jsp</result> </action> </package> <!-- include用於添加其餘配置文件,在團隊開發中使用 不一樣模塊通常使用不一樣的配置文件,在總的配置文件中加入便可 --> <include file="user.xml"></include> </struts> |
3. struts2的執行流程:
瀏覽器發起請求-------->服務器接收並處理請求-------->項目的web.xml中匹配過濾器-------->匹配是否有對應的action-------->生成對應的action的對象-------->調用action對象的處理方法-------->返回結果
4. 執行流程圖:
5. 詳細的流程圖: