posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Struts1 初步認(rèn)識

          Posted on 2009-08-11 00:11 Gavin.lee 閱讀(257) 評論(0)  編輯  收藏 所屬分類: SSH2 --Struts2

          1.為什么要使用struts
          a.struts建立在MVC這種公認(rèn)的好的模式上的,Struts在M,V,C上都有涉及,但它主要提供一個好的控制器和一套定制的標(biāo)簽庫上,也就是說它的著力點在C,V上,有MVC的一系列優(yōu)點,如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性呵可伸縮性,便于開發(fā)與設(shè)計分工,提供集中統(tǒng)一的權(quán)限控制,校驗,國際化,日志等等;
          b.struts它是開源項目,得到了包括它的發(fā)明者Craig R.McClanahan在內(nèi)的一些程序大師和高手持續(xù)而細(xì)心的呵護(hù),并且經(jīng)受了實戰(zhàn)的檢驗,使其功能越來越強(qiáng)大,體系也日益完善;
          c.struts框架能和其他技術(shù)很好的融合,如與Spring,Hibernate等框架的整合,大大加快了開發(fā)速度

          2.Framework的概念
          框架是人們用于解決相同或者相似類型問題的方案
          特點:可重用性,可擴(kuò)展性,可收縮性。基于請求響應(yīng)(request-response)模式的應(yīng)用Framework的邏輯結(jié)構(gòu)
          控制器:Controller
          業(yè)務(wù)邏輯層:Business Logic
          數(shù)據(jù)邏輯層:Data Logic

          3.Struts的概念和體系結(jié)構(gòu)
          Struts是Apache組織的一個開源項目,主要是采用Servlet和JSP技術(shù)來實現(xiàn)的
          Struts是一個基于Sun JavaEE平臺的MVC框架,它采用MVC模式,將MVC模式分離顯示邏輯和業(yè)務(wù)邏輯的能力,發(fā)揮的淋漓盡致
          (Struts is a flexible control layer based on standard technologies like Java Servlets,JavaBeans,ResourceBundles,and XML,as well as various Jakarta Commons packages,like BeanUtils and Chain of Responsibility.The frameword helps you create an extensible developmnt environment for your application,based on published standards and proven design patterns)

          4.Struts的實踐步驟
          步驟一:搭建環(huán)境
           a.導(dǎo)入jar包,使用其中的類
           b.建立一個配置文件,struts=config.xml
                  方便struts用戶使用
                  一般在WEB=INF下
           c.修改web.xml
                   注冊struts中心控制器 --ActionServlet

          <serlet>
              
          <servlet-name></servlet-name>
              
          <servlet-class></servlet-class>
              
          <init-param> <!-- 初始化加載配置文件 -->
                  
          <param-name>config</param-name>
                  
          <param-value>/WEB-INF/struts-config.xml</param-value>
              
          </init-param>
              
          <load-on-startup>0</load-on-startup> <!-- web容器啟動就加載該servlet -->
          </serlet>

          <servlet-mapping> <!-- 該servlet對外調(diào)用的映射 -->
              
          <servlet-name></servlet-name>
              
          <url-pattern></url-pattern>
          </servlet-mapping>

           
          步驟二:建立ActionForm
          步驟三:建立Action
           建立一個類,繼承Action,覆蓋execute方法
           注冊,修改配置文件struts-config.xml
            path:指明調(diào)用者(jsp)能通過中心控制器ActionServlet找到該Action
            type:指明該action類全名
            name:該action引用的form的名稱

          步驟四:頁面訪問


          5.Struts的工作原理
          6.Struts的組件
          7.Struts的配置文件簡介
          8.Struts標(biāo)記庫
          9.異常處理框架
          10.校驗框架
          11.高級特性
          12.Struts優(yōu)缺點
          優(yōu)點:
            Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更深入的了解其內(nèi)部實現(xiàn)機(jī)制。除此之外,Struts的優(yōu)點主要集中體現(xiàn)在兩個

          方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活動用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)

          記,或許Struts是一個很好的起點。
            關(guān)于頁面導(dǎo)航,我們認(rèn)為那將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維

          護(hù)有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。

          缺點:
            Taglib是Struts的一大優(yōu)勢,但對于初學(xué)者而言,卻需要一個持續(xù)學(xué)習(xí)的過程,甚至還會打亂我們網(wǎng)頁編寫的習(xí)慣,但是,當(dāng)我們習(xí)慣了它時,我們會覺得它真的很棒。

          Struts將MVC的Controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時,也增加了系統(tǒng)的復(fù)雜度。毫無疑問,要理解 Struts 必須接受一定的培訓(xùn)。隨著變化的不斷加入,這有時會令人

          很沮喪。
            Struts從產(chǎn)生到現(xiàn)在還不過3-4年時間,就已逐步越來越多運用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點,但它是一種非常優(yōu)秀的J2EE MVC實現(xiàn)方式,如果我們的系統(tǒng)準(zhǔn)備采用

          J2EE MVC架構(gòu),那么,不妨考慮一下Struts。
            Struts 是一種基于 Web 的 MVC 解決方案,所以必須用 HTML、JSP 文件和 servlet 來實現(xiàn)它,Struts 需要支持 JSP 1.1 和 Servlet 2.2 規(guī)范的 servlet 容器。學(xué)習(xí)、理

          解和掌握Struts是我們每個基于J2EE軟件開發(fā)人員一門必修的課程,也是我們對企業(yè)J2EE技術(shù)應(yīng)用的進(jìn)一步深化。

          /************************************************************************************************/

          Struts的基本組件包

          org.apache.struts.action
           基本上,控制整個struts framework的運行的核心類、組件都在這個包中,比如我們上面提到的控制器ActionServlet。已經(jīng)Action,ActionForm,ActionMapping等等。struts1.1比1.0多了 DynaActionForm 類。增加了動態(tài)擴(kuò)展生成FormBean功能

          org.apache.struts.actions
           這個包是主要作用是提供客戶的http請求和業(yè)務(wù)邏輯處理之間的特定適配器轉(zhuǎn)換功能,而1.0版本中的部分動態(tài)增刪FromBean的類,也在struts1.1中被Action包的DynaActionForm組件所取代

          org.apache.struts.config
           提供對配置文件struts-config.xml元素的映射。這也是sturts1.1中新增的功能

          org.apache.struts.util
           Strtuts為了更好支持web application的應(yīng)用,體統(tǒng)了一個些常用服務(wù)的支持,比如Connection Pool和Message Source。

          org.apache.struts.taglib
           這不是一個包,而是是一個客戶標(biāo)簽類的集合。下面包括Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags這幾個用于構(gòu)建用戶界面的標(biāo)簽類。

          org.apache.struts.validator
           Struts1.1 framework中增加了validator framework,用于動態(tài)的配置from表單的驗證。

          /************************************************************************************************/
          核心Struts 類和MVC 的對應(yīng)

          類                                                                           描述
          ActionForward                                           用戶指向或者視圖選擇
          ActionForm                                                狀態(tài)改變的數(shù)據(jù)
          ActionMapping                                           狀態(tài)改變事件
          ActionServlet                                              控制器,接受用戶請求和狀態(tài)改變,以及發(fā)出視圖選擇
          Action                                                        控制器的一部分,于模型交互,執(zhí)行狀態(tài)改變或狀態(tài)查詢,
                                                                          以及告訴ActionServlet 下一個選擇的視圖


          /************************************************************************************************/
          Struts 使用一些配置文件和視圖助手(view helpers)來溝通控制器和模型
          ApplicationResources.properties                                   存儲本地化信息和標(biāo)簽,以使應(yīng)用可以國際化
          struts-config.xml                                                            存儲控制器對象的缺省配置,包括模型支持的用戶指向,狀態(tài)改變,狀態(tài)查詢

          標(biāo)記庫描述符                                                           目的
          struts-html.tld                                               擴(kuò)展HTML Form的JSP標(biāo)記
          struts-bean.tld                                              擴(kuò)展處理JavaBean的JSP標(biāo)記
          struts-logic.tld                                              擴(kuò)展測試屬性值的JSP標(biāo)記

          /************************************************************************************************/
          控制器組件的配置框架中的控制器組件是有org.apache.struts.action.ActionServlet類實現(xiàn)的,這個類是javax.servlet.http.HttpServlet類的擴(kuò)展。
          ActionServlet配置:我們需要在web.xml中聲明ActionServlet,并且將它配置成啟動時進(jìn)行加載。以下為可以配置的初始化參數(shù):
          參數(shù)                                                         默認(rèn)值                                                                        描述
          application                                                    Null                                                                應(yīng)用程序的資源集合的類
          bufferSize                                                     4096                                                                文件上傳的緩沖區(qū)大小
          config                                            /WEB-INF/struts-config.xml                                        配置文件的位置和名稱
          content                                                       Text/html                                                                     默認(rèn)的內(nèi)容類型
          debug                                                              0                                                                          程序調(diào)試的級別
          detail                                                               0                                                                         程序調(diào)試細(xì)節(jié)的級別
          factory                                                         Null                                                 消息資源工廠,用于國際化中解釋消息資源
          formBean                            org.apache.struts.action.ActionFormBean                         封裝ActionForm bean信息的類的名稱
          forward                              Org.apache.struts.action.ActionForward                          封裝ActionForward對象信息的類的名稱
          locale                                                          True                                                        為true,將在用戶會話中存儲一個本地對象
          mapping                            Org.apache.struts.action.ActionForward                              封裝ActionMapping信息的類的名稱
          maxFileSize                                                250M                                                                 上傳文件的最大尺寸
          multipartClass                   Org.apache.struts.action.ActionForward                                處理多部分請求的類的名稱
          noCache                                                      False                                                      HTTP標(biāo)頭是否要設(shè)置為禁止緩寸
          Null                                                             True                                                       設(shè)置為true,對于無效的信息關(guān)鍵字將返回null
          tempDir                           作為一個servlet參數(shù)提供給程序的工作目錄                        處理下載文件是使用的臨時工作目錄
          validate                                                        True                                                              是否使用新格式的配置文件
          vallidating                                                     True                                                              是否對配置文件進(jìn)行有效性分析


           

          主站蜘蛛池模板: 扎鲁特旗| 博兴县| 衡水市| 峡江县| 广平县| 岳西县| 隆回县| 长春市| 舒城县| 玉林市| 五寨县| 海城市| 乌什县| 沁水县| 呼玛县| 辽阳市| 关岭| 西林县| 冷水江市| 阿坝县| 安吉县| 新疆| 龙泉市| 农安县| 沿河| 莱西市| 萝北县| 江油市| 土默特左旗| 四会市| 积石山| 绩溪县| 宣威市| 中超| 奈曼旗| 巩义市| 昌江| 黎川县| 湘阴县| 黄冈市| 县级市|