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

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

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

    posts - 70,comments - 408,trackbacks - 0

    Struts應用采用兩個基于XML的配置文件來配置,分別是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web應用的而struts-config.xml文件是struts專用的配置文件,事實上也是可以根據需要給這個配置文件起其他名稱的.

    Web應用的發布描述文件:web應用發布描述文件可以在應用開著者,發布者和組裝者之間傳遞配置信息,Web容器在啟動的時候從該文件中讀取配置信息,根據它來裝載和配置web應用.文檔類型定義DTD對XML文檔的格式做了定義,DTD吧XML文檔劃分為元素,屬性,實體每一種XML文檔都有獨自的DTD文件.可以從網上下載.<web-app>元素是web.xml的根元素,其他元素必須嵌入在<web-app>元素之內.要注意的是子元素也是有順序的比如必須是首先<servlet>,然后<servlet-mapping>最后<taglib>.

    Struts應用配置Web.xml文件:首先最重要的一步是配置ActionServlet,這個用<servlet>標簽的servlet-name屬性起一個名字叫action,然后用servlet-class屬性指定ActionServlet的類.然后用<servlet-mapping>標簽的servlet-name屬性指定action,在用url-pattern指定接收范圍是*.do的請求.不管應用中包含了多少子應用,都只需要配置一個ActionServlet,類來出來應用中的不同的功能,其實者就是不必要的,因為Servlet本身就是多線程的,而且目前Struts只允許配置一個ActionServlet.聲明ActionServlet的初始化參數:<servlet>的<init-param>子元素用來配置Servlet的初始化參數.param-name設置config參數名.param-value設置struts-config.xml的路徑參數值.

    配置歡迎使用清單:如果客戶訪問Web的時候值是訪問了WEB應用的根目錄URL.沒有具體的指定文件,Web會自動調用Web的歡迎文件.<welcome-file-list>元素來配置的.通過其中的<welcome-file>歡迎頁面</welcome-file>來配置.

    配置錯誤處理:盡管Struts框架功能強大的錯誤處理機制,但是不能保證處理所有的錯誤或者異常.當錯誤發生時,如果框架不能處理這種錯誤,把錯誤拋棄給Web容器,在默認的情況下web容器會想客戶端返回錯誤信息.如果想避免讓客戶看到原始的錯誤信息,可以在Web應用發布描述文件中配置<error-page>元素.通過<error-code>404來定義錯誤的類型.然后通過<location>要處理錯誤的JSP頁面來對錯誤進行處理.還可以用<exception-type>來設置異常,然后通過<location>來處理異常的JSP頁面來處理異常.

    配置Struts標簽庫:這個就和以前學到的JSP自定義標簽類似,配置元素為<taglib>來配置.<taglib-uri>這個指定標簽庫的uri,類似起一個名稱.<taglib-location>這個是標簽庫的位置也就是實際所在的路徑.通過這樣的方法引入一個標簽庫,然后在前臺JSP頁面就可以通過自己定義的URI來調用標簽.

    Struts配置文件:struts-config.xml文件.首先研討一下org.apache.struts.config包,在struts應用啟動的時候會把Struts配置文件信息讀取到內存中,并把它們存放在config包中相關的JavaBean類的實例中.包中的每一個類都和struts配置文件中特定的配置元素對應,ModuleConfig在Struts框架中扮演了十分重要的角色,它是整個config包的核心,在Struts運行時來存放整個應用的配置信息.如果有多個子應用都會有一個ModuleConfig對象,它和Struts文件根元素的<struts-config>對應.根元素中包含<form-bean><action><forward>等元素.

    <struts-config>元素:時Struts配置文件的根元素,和它對應的配置類ModuleConfig類,<struts-config>元素有8個子元素.他們的DTD定義是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*在Struts配置文件中,必須按照DTD指定的先手順序來配置<struts-config>元素的各個子元素,如果顛倒了這些子元素的順序,會產生錯誤.

    <data-sources>元素:用來配置應用所需要的數據源,數據源負責創建和特定的數據庫的連接.許多數據源采用連接池的機制實現.以便提高數據庫訪問的性能.JAVA語言提供了javax.sql.DataSource接口,所有的數據源都必須實現這個接口.許多應用服務器和Web服務器都提供了數據源組件.很多數據庫廠商也提供了數據源的實現.<data-sources>元素包含多個<data-source>子元素永遠配置特定的數據源.他們可以包含多個<set-property>子元素用于設置數據源的各種屬性.配置了數據源以后,就可以在Action類中訪問數據源,在Action中定義了getDataSource(HttpRequest)方法,用于獲取數據源對象的引用.然后可以利用DataSource對象調用getConnection獲取一個連接對象對數據庫進行操作.在配置文件中聲明多個數據源的時候需要為每一個數據源分配唯一的Key值,通過這個來表示特定的數據源.獲取特定的數據源的時候可以用dataSource = getDataSource(reqeust,”A”);

    <form-beans>元素:用來配置多個ActionForm,包含一個或者N個<form-bean>子元素.每個<form-bean>元素都包含多個屬性.className指定和<form-bean>匹配的類.name指定該ActionForm的唯一標識符,這個屬性是必須的以后作為引用使用.type指定ActionForm類的完整類名,這個屬性也是必須的.注意包名也要加上.<form-property>是指定動態的Form的元素,以后會深入了解.

    <global-exception>元素:用于配置異常處理,元素可以包含一個或者多個<exception>元素,用來設置JAVA異常和異常處理類ExceptionHandler之間的映射.className指定和元素對應的配置類,默認的不用動.handler指定異常處理類默認是ExceptionHandler.key指定在本地資源文件中異常的消息Key,path指定當前異常發生的時候轉發的路徑.scope指定ActionMessages實例存放的范圍.type指定需要處理異常類的名字,必須的.bundle指定Resource Bundle.

    <global-forwards>元素:用來聲明全局轉發,元素可以有一個或者N個<forward>元素組成,用于把一個邏輯名映射到特定的URL,通過這種方法Action類或者JSP頁面無需指定URL,只要指定邏輯名稱就可以實現請求轉發或者重定向.這樣可以減少控制組件和視圖的聚合.易于維護.className對應的配置類.contextRelative如果為true表示當path屬性以/開頭的時候,給出的是對應的上下文URL默認是false.name轉發路徑的邏輯名,必須寫.path轉發或者重定向的URL,必須寫必須是以/開頭.redirect設置為true的時候表示執行重定向操作,此項為false的時候,表示執行請求轉發操作.重定向與請求轉發的區別以后就是重定向是把請求生成應答給客戶端然后在重新發送給定向的URL,瀏覽器地址欄會有顯示.而轉發就是直接把請求轉發給本應用的另一個文件,不生成應答所以客戶端IE沒顯示.

    <action-mapping>元素:包含一個或者N個<action>元素,描述了從特定的請求路徑到響應的Action的映射.在<action>元素中可以包含多個<exception>和<forward>子元素,他們分別配置局部異常處理和局部轉發.attribute設置Action關聯的ActionForm在request或者session范圍內的key.就是在request或者session共享內的名稱.className對應配置元素的類.默認的是ActionMapping.forward指定轉發URL路徑include指定包含URL路徑.input指定包含表單的URL,當表單驗證失敗的時候發送的URL.name,指定和該Action關聯的Form名字.該名字必須是在form-bean中定義過的,可寫可不寫.path必須/開頭的方位Action的路徑.parameter指定Action配置參數.在Action的execute()方法中可以調用ActionMapping的getParameter()方法來讀取匹配的參數.roles指定允許調用該Action的安全角色,多個角色之間逗號格開.scope指定Form的存在范圍.默認是session.tyep指定Action的完整類名.unknown如果是true表示可以處理用戶發出的所有的無效的ActionURL默認是false.validate指定是否調用ActionForm的validate方法.

    <controller>元素:用于配置ActionServlet.buffreSize指定上載文件的輸入緩沖大小.該屬性為可選默認4096.className指定元素對應的配置類,ControllerConfig.然后是contentType指定響應結果內容類型和字符編碼,該屬性為可選,默認是text/html如果在Action或者JSP網頁也設置了類型內容,會覆蓋這個.locale指定是否把Locale對象保存到當前用戶的session中默認false.tempDir指定處理文件上載的臨時工作目錄.nochache如果是true在響應結果中加入特定的頭參數.

    <message-resources>元素:用來配置Resource Bundle.用于存放本地文本消息文件.className元素對應的配置類.MessageResourcesConfig.factory指定消息的工廠類.key指定文件存放的Servlet對象中采用的屬性Key.null指定如何處理未知消息.parameter指定消息的文件名.

    <plug-in>元素:用于配置Struts插件.

    配置多應用模塊:所有的子應用都可以共享同一個ActionServlet實例,但是每個子應用都有單獨的配置文件.把應用劃分為多個子應用模塊.首先為每個應用創建單獨的Struts配置文件,在web.xml的ActionServlet配置代碼中添加幾個子應用信息.采用<forward>元素來實現應用之間的切換.

    Digester組件:是一個Apache的另一個開源代碼項目.當Struts被初始化的時候,首先會讀取并解析配置文件,框架采用Digester組件來且西配置文件.然后創建config包中的對象.者對象用于存放配置信息.

    其實配置文件不難,只要都理其中的原理就OK了.真正實際的項目開發中,采用的工具例如Eclipse系列,提供了相應的插件,在創建一個Struts工程的時候配置文件的標簽都是自動生成的,而我們只需要往里面填寫屬性就OK了. (網友們的支持,是我繼續寫技術文章的動力!)

    posted on 2005-10-23 19:07 我心依舊 閱讀(7759) 評論(14)  編輯  收藏

    FeedBack:
    # re: 配置Struts應用(原創)
    2005-10-24 10:05 | yuanhuaming
    寫得不錯,繼續努力,希望能用圖文并茂  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2005-11-01 14:14 | 墨翰墨得
    寫的很好,希望能寫點深入的,以后請多指教  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2005-11-08 14:20 | 不告訴你!!!
    寫的不錯!努力哦!
    學習的目地不在于寫出來,而是要學會,學精。能夠真正的用在實際工作中!  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2005-11-16 21:38 | 陳低吟
    不錯不錯。一口氣看完了,深入淺出,樓主是個才子啊。  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2005-12-09 14:09 | user
    不說啥了!牛!!!  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2005-12-29 00:13 | guest
    大牛;期待繼續。  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2006-04-08 11:03 | snow_man2004
    好,厲害,thank you!  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2006-06-06 11:37 | 我愛學習
    都是經驗呀,感覺很實用,不錯不錯,希望繼續多寫  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2006-07-05 17:00 | owusan
    在STRUTS-CONFIG.XML 中配置了數據源
    <data-sources>
    <data-source key="mysqlDB1" type="org.apache.commons.dbcp.BasicDataSource">
    <set-property property="driverClassName"value="org.gjt.mm.mysql.Driver" />
    <set-property property="url"value="jdbc:mysql://localhost:3309/test" />
    <set-property property="username"value="root"/>
    <set-property property="password"value="test2200"/>
    <set-property property="maxActive"value="5"/>
    <set-property property="maxWait" value="5000" />
    <set-property property="defaultAutoCommit"value="true"/>
    </data-source>
    </data-sources>
    ......
    運行后Servlet action is not available
      回復  更多評論
      
    # re: 配置Struts應用(原創)
    2006-07-05 17:01 | owusan
    請回答一下。謝謝  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2006-11-24 09:17 | 強子
    寫的很好,看完后受益非淺,希望在文章中列舉一些例子,讓初學者也能看懂  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2007-01-10 16:17 | wdj
    it's ok  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2007-01-27 15:25 | WERWE
    牛呀!!!  回復  更多評論
      
    # re: 配置Struts應用(原創)
    2008-06-23 14:35 | ERIN
    很好  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 男人天堂2018亚洲男人天堂| 在线观看亚洲免费| 亚洲色大情网站www| 亚洲最大成人网色| 国产亚洲一区区二区在线| 日本免费人成黄页网观看视频| 99久久精品国产免费| 一级中文字幕免费乱码专区| 久久成人永久免费播放| 亚洲国产午夜中文字幕精品黄网站| 欧洲亚洲综合一区二区三区| 国产片免费福利片永久| 四虎影视久久久免费| 国产高清在线免费视频| 国产午夜无码视频免费网站| 99久久免费国产精精品| 国产精品99爱免费视频| 免费无码午夜福利片| 国产高清对白在线观看免费91| 国产精品免费久久久久影院| 两个人日本WWW免费版| 一区二区三区在线免费看| h视频在线免费看| 天天天欲色欲色WWW免费| 四虎成人精品在永久免费| 性感美女视频免费网站午夜 | 成人亚洲国产精品久久| 亚洲va中文字幕无码| 男女拍拍拍免费视频网站| 亚洲成人动漫在线| 亚洲视频免费在线播放| 国产成人精品日本亚洲专区| 亚洲一级毛片免费看| 尤物永久免费AV无码网站| 丰满人妻一区二区三区免费视频| 久久久久亚洲AV无码永不| 日本免费一区二区三区最新| 三级毛片在线免费观看| 亚洲色精品VR一区区三区| 伊人久久亚洲综合| 成人毛片视频免费网站观看|