亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SSH框架Struts2是什么及怎么使用

發布時間:2022-12-08 17:35:00 來源:億速云 閱讀:117 作者:iii 欄目:編程語言

這篇文章主要介紹了SSH框架Struts2是什么及怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SSH框架Struts2是什么及怎么使用文章都會有所收獲,下面我們一起來看看吧。

1.2 Struts2的概述 :
    Struts2是一個基于MVC設計模式的WEB層的框架.
    
  1.2.1 常見web層框架
    Struts1,Struts2,WebWork,SpringMVC
    
    Struts本質上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互.
    其全新的Struts2的體系結構與Struts1的體系結構差別巨大.Struts2是以WebWork為核心,采用攔截器的機制來處理用戶的請求,所以Struts2可以理解為
    WebWork的更新產品.
    
  Web層的框架都有一個特點 : 遵循前端控制模型.不同的web層框架實現的前端控制器模型的技術是不一樣的.
  Struts2 : filter
  SpringMVC ; servlet
  
  導入jar包 
    
    1.asm-3.3.jar : 操作字節碼
    2.asm-commons-3.3.jar : 提供了基于事件的表現形式
    3.asm-tree-3.3.jar : 提供基于對象的表現形式
    4.commons-fileupload-1.2.2.jar : 文件上傳組件,2.1.6版本以后必須加入此jar包(此jar包中包含了RequestContext類,不導入該jar會報異常)
    5.commons-io-2.0.1.jar : commons項目(commons項目就是java中常用的一些公共組件)的io子項目,是處理異常的.
    6.commons-lang3-3.1.jar : 帶有常用的語言處理類的方法
    7.freemarker-2.3.19.jar : struts2的UI標簽的模板使用freemarker編寫
    8.javassist-3.11.0.GA.jar : 使java字節碼操作簡單
    9.ognl-3.0.5.jar : 對象導航語言,通過它來讀寫對象屬性
    10.strtus2-core-2.3.7.jar : 開發核心類庫
    11.xwork-core-2.3.7.jar : xwork類庫,Struts2在其上進行構建
  
    配置Action
      <struts>
        <package name="text" extends="struts-default" namespace="/">
          <!-- name : 包名,對于我們的意義不大,但是整個全稱名稱唯一,作用 : 給別人繼承的
            extends : 要繼承這個包,暫時默認值 : struts-default
            namespace:命名空間,會和action的name屬性組成地址值
            abstract : 抽象的,如果設置了這個屬性,里面就不能有action,只能用于繼承.
           -->
           <action name="hello" class="com.baidu.web.ActiomDemo1">
            <!-- 
            name : 會和namespace組成action的地址值
            class : 全限定名
            method : 默認值是execute
            配置返回的邏輯視圖指定的頁面
             -->
            <result name="aaa">/jsp/1.jsp</result>
           </action>
        </package>
      </struts>

  配置Struts2的核心過濾器(前端控制器)
    <filter>
    <filter-name>struts2</filter-name>
    <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>
  
  Struts2的執行過程:
    1.1 : 執行時序
      首先是,啟動tomcat服務器,這時候會加載web.xml,當讀到filter標簽時,會創建過濾器對象.
      struts2的核心過濾器(StrutsPrepareAndExecuteFilter)會負責加載類路徑下的struts.xml配置文件.
      接下來,從客戶端發送請求過來,先經過前端控制器(核心過濾器StrutsPrepareAndExceuteFilter),
      前端控制器會根據請求的名稱在struts.xml中找到對應的配置,創建我們的動作類對象(每次訪問時都會創建新的Action對象)
      ,然后執行指定的方法,根據方法的返回值找到Result的配置進行頁面的跳轉最后響應瀏覽器.
    
      <!-- 開啟開發者模式 -->
      <constant name="struts.devMode" value="true"></constant>
      是否是開發模式。開發模式:改了配置文件,不需要重啟。輸出更多的錯誤信息。開發階段建議為true。

  1.2.4 Struts2的配置文件編寫
  1.2.4.1 Struts2的配置文件加載順序
    init_DefaultProperties();[1]  ---第一步加載: default.properties
    init_TraditionalXmlConfigurations();[2]   ---第二步加載: struts-default.xml,struts-plugin.xml,struts.xml
    init_LegacyStrutsProperties();[3]  --- 第三步加載 : struts.properties
    init_CustomConfigurationProviders();[5]  --- 第四步加載客戶一些配置提供類
    init_FilterInitParameters();[6]   ---- 第五步加載web.xml中配置核心過濾器參數(filter的初始化參數 -- web.xml下的前端控制器)
    init_AliasStandardObjectects();[7]   --- 第六版加載標準對象.
    
    配置文件的加載順序 :
      struts的默認配置文件 : 
      default.properties(鍵值對常量) -----struts2-core-2.3.24.jar/org.apache.struts2
      struts-default.xml(大量的攔截器)  -----struts2-core-2.3.24.jar根目錄下
      struts.plugin.xml(外部插件)
      
      struts.xml(我們自己編寫的) /src
      struts.properties
        struts.action.extension=bbb
      web.xml
    注意 : 后面的配置文件會覆蓋前面配置文件的內容.
    
  1.2.4.2 package 配置 : 包,為了更好管理action
    <package>標簽 :
      name : 包的名稱,在配置文件中不要出現重名的包即可.
      extends : 用于繼承他的包,通常繼承struts-default.
      namespace : 名稱空間,與<action>標簽中name一起決定訪問路徑的.
        namespace=""  : 默認名稱空間.
        namespace="/" : 跟名稱空間.
        namespace="/aaa" : 帶有名稱名稱空間.
      abstract  : 抽象的,將這個值設置為true,用于其他包繼承.
    <action>標簽 :
      name  : 與namespace共同決定訪問路徑.
      class : Action類全路徑.
      method : 執行Action中的那個方法,默認值是execute.
    
    struts2中常量可以在以下三個位置進行修改 : 
      struts.xml(推薦)
        <!-- 配置常量 -->
        <constant name="struts.action.extension" value="abc"/>
      struts.properties
        key=value
      web.xml
        <filter>
          <filter-name>struts2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter>
          <init-param>
            <param-name>struts.action.extension</param-name>
            <param-value>xyz</param-value>
          </init-param>
        </filter>
  1.2.4.4 include配置 : 包含其他的配置文件
    <!-- 分模塊開發的配置 -->
    <include file="com/baidu/struts/demo1/struts_demo1.xml"></include>
    
  1.2.5.1 Struts2的Action的編寫規則
    Action的類可以有三種編寫方式 :
      Action 的編寫的方式一 : Action類是一個POJO的類
      
      Action類可以實現一個Action接口
        public class Struts2Demo2 implements Action{

        @Override
        /**
         * Action的接口中提供了五個邏輯視圖的常量的名稱:
         *  * SUCCESS :成功
         *  * NONE    :不跳轉
         *  * LOGIN   :用于用戶登錄失敗頁面跳轉
         *  * INPUT   :表單出錯情況下,頁面跳轉
         *  * ERROR   :錯誤頁面
         */
        public String execute() throws Exception {
          System.out.println("Struts2Demo2的方法執行了...");
          return NONE;
        }
    
      Action類可以繼承ActionSupport類
        public class Struts2Demo3 extends ActionSupport{

        @Override
        public String execute() throws Exception {
          System.out.println("Struts2Demo3的方法執行了...");
          return NONE;
        }
      }
    
    action方法的訪問方式:
    3種
      1 默認的 method方式    (了解)
        配置Action
          <package name="demo3" extends="struts-default" namespace="/">
            <action name="findCustomer" class="com.baidu.struts2.demo3.CustomerAction" method="find"/>
            <action name="saveCustomer" class="com.baidu.struts2.demo3.CustomerAction" method="save"/>
            <action name="updateCustomer" class="com.baidu.struts2.demo3.CustomerAction" method="update"/>
            <action name="deleteCustomer" class="com.baidu.struts2.demo3.CustomerAction" method="delete"/>
          </package>、
      2 通配符的方式   (掌握)
        配置Action
          <!-- 配置聯系人的Action -->
          <action name="linkMan_*" class="com.baidu.struts2.demo3.LinkManAction" method="{1}"/>
      3 動態方法的方式 (理解)
          條件:需要配置常量開啟動態方法
          <!-- 開啟動態方法的方式 -->
            <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
            <!-- 用戶操作  動態方法的方式 -->
            <package name="test5" extends="struts-default" namespace="/">
              <action name="user" class="cn.baidu.web.ActionDemo4"></action>
            </package>

關于“SSH框架Struts2是什么及怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SSH框架Struts2是什么及怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安宁市| 舞钢市| 揭东县| 九江市| 济源市| 垦利县| 都昌县| 桓仁| 改则县| 新野县| 承德县| 资中县| 罗源县| 余庆县| 内丘县| 安多县| 方山县| 南靖县| 封开县| 津南区| 南和县| 温州市| 民县| 彭州市| 抚顺市| 长春市| 拜泉县| 阜城县| 玛多县| 江津市| 枝江市| 兴文县| 无锡市| 怀仁县| 贡觉县| 梁山县| 尼玛县| 丹东市| 开平市| 宁蒗| 和平县|