<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sung in Blog

               一些技術文章 & 一些生活雜碎

          Struts framework根據配置文件使得ServletAction,ActionMapping,Action,ActionForm這幾個不同層次的組件相互交互,協調的工作。這些配置文件是在系統啟動的時候,讀入并保存于內存中,供控制器使用的。

          Struts framework主要包括三部分的配置描述,一個是指定有關Struts Controller及其相關的的配置描述(Initialization Parameters),一個是對struts tag lib的描述,一個是Struts組件(ActionMapping,Action,ActionForm)之間相互映射協調的關系

     

          因為Struts Controller的主要類ActionServlet是繼承自HttpServlet,所以必須像配置一個Servlet那樣在部署描述符(Web.xml )中配置ActionServlet類及其訪問映射。

       當第一次創建基于Struts的Web應用程序時,將為您創建一個部署描述符,這通常就足夠了。該文件包括下列條目:

    l、<servlet>條目定義用于Web應用程序的servlet (在本例中,這是唯一的servlet):

    — <servlet-name> 和<servlet-class>指示ActionServlet (標識為“操作”)接收HTTP請求并確定如何響應。

    — <init-param>表示servlet初始化參數.

    — “config”指示ActionServlet的行為由指定的配置文件來指導,該配置文件通常具有以下名稱:

    \WEB-INF\struts-config.xml

    — “debug”具有整數值,它指示將有關處理的詳細信息寫至控制臺的程度。“0”表示不生成任何Debug信息。

    — “detail”具有整數值,它指示將“映射”詳細信息(如后面所述)寫至控制臺的程度。

    ―  <load-on-startup>導致在啟動應用程序時裝入servlet。

    —  <servlet-mapping>元素標識這樣的命名模式:當命名模式由URL進行匹配時,Web服務器就將控制權移交給ActionServlet。考慮下面各種情況:

    ―  訪問了ActionServlet,原因是“操作”(<servlet-mapping>中的<servlet-name>元素的內容)與“操作”(<servlet>中的<servlet-name>元素的內容)相匹配。

    — <servlet-mapping>元素指定URL的結尾的命名模式。每個URL的開頭都是應用程序上下文路徑。按照慣例,ActionServlet調用對象以響應與命名模式“*.do”(其中“*”是通配符)一致的URL。

    — <welcome-file-list>元素指示獲得初始控制權的特定于應用程序的代碼;在本例中,Web服務器直接從Web Content目錄中調用index.jsp。

    — <error-page>元素指示顯示哪個JSP來響應錯誤;在本例中,錯誤為如下所示:

    ―  404  (找不到資源)

    ―  500  (Web服務器內部發生錯誤)

          每個<taglib>元素都使相對URL(相對于Web.xml)與標記庫描述符(相對于Web應用程序根目錄)相關聯。每個JSP都可以使用同一個URL來表示給定的標記庫,而Web.xml確定引用了哪個文件。

    有關struts tag lib的配置描述
        如果你的web application打算使用Struts的taglib,那么你有必要在web.xml中對struts taglib進行配置描述。

    有關Struts Action Mapping的配置描述
          作為先前描述的web.xml設置的結果,Web應用程序服務器將請求的一個子集按路徑發送至ActionServlet,它通常調用一系列操作和JSP。ActionServlet的響應是基于配置文件struts-config.xml的內容的。有關其DTD文檔的描述,請參考這里

        一般struts-config(version1.1)包含了如下幾個部分:

       (1)form-bean

       (2)global-forwards

       (3)action-mappings

       (4)data-sources

     

          對于這樣的一個請求(例如,表示為“/login.do”),Struts框架將會執行下列步驟:

    1、    尋找操作類對象(繼承org. apache.struts.action.Action的類)
    2、    ActionServlet調用操作類對象的執行方法
    操作類中的執行方法的特征符為如下所示:
    public ActionForward  execute(
          ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
    ?    映射對象(ActionMapping),它包含指示如何響應方法的每個可能結果的規則(“映射”)
    ?    Struts表單bean(ActionForm),它保存發送至HTML表單或接收自HTML表單的數據
    ?    請求和響應對象(HttpServletReques/ HttpServletResponse)

    3、    從執行方法返回ActionForward對象,用于指導ActionServlet接著訪問哪個操作類或JSP
    返回的ActionForward對象中的信息取決于兩個值:
    ?    方法的結果(如在“成功”或“故障”等字符串中所述)
    ?    映射對象,它包含從Struts配置文件中讀取的信息


    要弄明白某些運行時關系,要明白struts-config.xml該文件包括下面的一組條目:
    ?    <form-beans>標記標識每個表單bean
    ?    <action-mappings>標記包括用于指導應用程序流的信息,每個<action>子標記都使相對URL與操作類和潛在的后續操作相關。
    Form-bean元素
    Struts配置文件中的一個示例<form-bean>子元素為如下所示:
     <form-bean name=“registerForm”  type=“strutscommon.RegisterForm”/>
    每個<form-bean>子元素都包括下列屬性:
    name
    表單bean的名稱,稍后在配置文件中會用到。ActionServlet舉例說明了該bean(如果需要的話)并在將對bean的引用存儲在請求或會話對象中時將該名稱用作鍵。
    type
         類的全限定名稱,它繼承org.apache.struts.action.ActionForm該類必須在類路徑中。接受“Struts貿易樣本”中的注冊的表單bean包括HTML注冊表單中每個字段的getter 和setter方法。該bean還包括驗證方法,如下節“驗證”中所述。
    Action元素
       Struts配置文件中的一個示例<action>元素為如下所示:
      <action path=“/register”
            type=“strutsEGL.RegisterAction”
           name=“registerForm”
           input=“/register.jsp”
           scope=“request”
           <forward name=“success”path=“/home.do”/>
           < forward name=“failure”path=“/register.jsp”/>
         </action>
    每個<action>元素都包括下列屬性中的某些屬性或所有屬性:
     path
         將請求指定為非限定URL,不帶文件擴展名(例如,“/register”)請求是根據<action>元素中的其它屬性來處理的,并且是用戶輸入的結果或者是在different<action>元素中標識的轉發的結果。
    type
         指定在發出請求時調用其執行方法的操作類的全限定名。該類必須在類路徑中。
       注:不指定要實例化的類,可以通過使用forward屬性來轉發請求,該屬性在“Struts貿易樣本”中未使用,并且與后面描述的<forward>子元素不相同。
    name
         用于保存發送至HTML表單或接收自HTML表單的數據表單bean的名稱。
       input
         指定相對URL(例如,“/register.do”或“/index.jsp”)必須包括后綴,
    如果表單bean的驗證方法指示發生了輸入錯誤,則會調用URL;有關詳細信息,參見下節的“驗證”。
       scope
             指定將對表單 bean的引用存儲在哪個作用域中。其值為“會話”(缺省值)或“請求”。
         Struts配置文件中的每個<action>元素還包括子元素<forward>,它指定從方法結果至后續調用的映射。每個<forward>子元素都包括下列屬性
      name 
    指定導致在運行時使用當前映射的字符串(例如,“success”),但是
    只限于以下情況:在 type 中引用的操作類的執行方法使用完全相同
    的字符串來配置返回至ActionServlet的 ActionForward對象。下面
    的執行方法不是很重要,但是會導致使用“success”映射:
      
     public ActionForward exectue(
       ActionMapping mapping,
       ActoinForm form,
       HttpServletRequest request,
       HttpServletResponse response)
       Throws IOException,ServletException

       ActionForward forward=new ActionForward();
       Forward=mapping,findForward(“success”);
       return(forward);

         path
              指定非限定URL(例如,“/home.do” 或“/index.jsp”)必須包括文件擴展名,僅當使用當前映射時才會調用該URL,轉發操作類是根據different<action>元素中的屬性來處理的,尤其是,在其path屬性標識相同URL的<action>元素中。

        有必要提一下的是,在struts1.1中,提出了對Multiple Application Support。在struts的早先版本中,只有一個struts配置文件,一般叫struts-config.xml。但是,對于越來越復雜的應用系統的發展,只有一個地方存放這個一個文件,對大型項目來說,使用和修改這個配置文件,使其成為了一個應用的瓶頸問題。在struts1.1中,你可以定義多了配置文件協同工作。

    posted on 2005-10-27 16:26 Sung 閱讀(755) 評論(0)  編輯  收藏 所屬分類: Struts
    主站蜘蛛池模板: 伊人久久综在合线亚洲2019| 免费99热在线观看| 97精品免费视频| 免费无遮挡无码永久视频| 美女内射无套日韩免费播放| 亚洲国产精品一区第二页 | 亚洲成av人片不卡无码| 国产成人亚洲合集青青草原精品| 亚洲高清一区二区三区电影| yellow视频免费在线观看| a级毛片免费高清毛片视频| 亚洲精品免费在线| 自拍偷自拍亚洲精品第1页| 日韩亚洲AV无码一区二区不卡| 国产高清不卡免费视频| 国产中文字幕免费观看| 久久亚洲精品中文字幕| 最近中文字幕完整版免费高清| 久久精品亚洲AV久久久无码 | 两个人看的www免费| 久久精品夜色国产亚洲av| 免费播放美女一级毛片| 久草福利资源网站免费| 亚洲明星合成图综合区在线| 大地资源免费更新在线播放| 久久99国产亚洲高清观看首页| 国内精品免费在线观看| 亚洲午夜久久久影院| 看一级毛片免费观看视频| 国产AV无码专区亚洲AV手机麻豆| 野花香高清视频在线观看免费| 亚洲婷婷天堂在线综合| 国产91在线免费| 美女视频黄的免费视频网页| 亚洲13又紧又嫩又水多| 亚洲一级片免费看| 国产精品亚洲av色欲三区| 99精品全国免费观看视频| h视频在线免费观看| 亚洲精品第一国产综合精品99| 亚洲精品乱码久久久久蜜桃 |