Struts 2 的學習筆記(二) struts的配置流程和strut是2的工做原理

 配置及流程前端

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.       詳細的流程圖:

相關文章
相關標籤/搜索