国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

運用Jakarta Struts的七大實戰心法

2019-11-17 06:05:27
字體:
來源:轉載
供稿:網友

  編者按:當作者 ChUCk Cavaness(著有《PRogramming Jakarta Struts》一書)所在的網絡公司決定采用Struts框架之后,Chuck曾經花費了好幾個月來研究如何用它來構建公司的應用系統。本文敘述的正是作者在運用Struts過程中來之不易的若干經驗和心得。

假如你是個負責通過jsp和servlet開發Web應用的java程序員,并且也正在考慮采用基于Struts的構建方法的話,那么你會在這里發現很多頗有見地同時也很有價值的信息。

1. 只在必要的時候才考慮擴展Struts框架

  一個好的framework有很多優點,首先,它必須能夠滿足用戶的可預見的需求。為此 Struts為Web 應用提供了一個通用的架構,這樣開發人員可以把精力集中在如何解決實際業務問題上。其次,一個好的framework還必須能夠在適當的地方提供擴展接口,以便應用程序能擴展該框架來更好的適應使用者的實際需要。

  假如Struts framework在任何場合,任何項目中都能很好的滿足需求,那真是太棒了。但是實際上,沒有一個框架聲稱能做到這一點。一定會有一些特定的應用需求是框架的開發者們無法預見到的。因此,最好的辦法就是提供足夠的擴展接口,使得開發工程師能夠調整struts來更好的符合他們的非凡要求。

  在Struts framework中有很多地方可供擴展和定制。幾乎所有的配置類都能被替換為某個用戶定制的版本,這只要簡單的修改一下Struts的配置文件就可以做到。

  其他組件如ActionServlet和 RequestProcessor 也能用自定義的版本代替. 甚至連Struts 1.1里才有的新特性也是按照擴展的原則來設計的。例如,在異常處理機制中就答應用戶定制異常處理的句柄,以便更好的對應用系統發生的錯誤做出響應。

  作為框架的這種可調整特性在它更適合你的應用的同時也在很大的程度上影響了項目開發的效果。首先,由于您的應用是基于一個現有的成熟的、穩定的framework如Struts,測試過程中發現的錯誤數量將會大大減少,同時也能縮短開發時間和減少資源的投入。因為你不再需要投入開發力量用于編寫基礎框架的代碼了。

  然而, 實現更多的功能是要花費更大的代價的。我們必須小心避免不必要的濫用擴展性能, Struts是由核心包加上很多工具包構成的,它們已經提供了很多已經實現的功能。因此不要盲目的擴展Struts框架,要先確定能不能采用其他方法使用現有的功能來實現。 在決定編寫擴展代碼前務必要確認Struts的確沒有實現你要的功能。否則重復的功能會導致混亂將來還得花費額外的精力清除它。

2. 使用異常處理聲明

  要定義應用程序的邏輯流程,成熟的經驗是推薦在代碼之外,用配置的方法來實現,而不是寫死在程序代碼中的。在J2EE中,這樣的例子比比皆是。從實現EJB的安全性和事務性行為到描述JMS消息和目的地之間的關系,很多運行時的處理流程都是可以在程序之外定義的。

  Struts 創建者從一開始就采用這種方法,通過配置Struts的配置文件來定制應用系統運行時的各個方面。這一點在版本1.1的新特性上得到延續,包括新的異常處理功能。在Struts framework以前的版本中,開發人員不得不自己處理Struts應用中發生的錯誤情況。在最新的版本中,情況大大的改觀了,Struts Framework提供了內置的一個稱為 ExceptionHandler 的類, 用于系統缺省處理action類運行中產生的錯誤。這也是在上一個技巧中我們提到的framework許多可擴展接口之一。

  Struts缺省的 ExceptionHandler類會生成一個ActionError對象并保存在適當的范圍(scope)對象中。這樣就答應JSP頁面使用錯誤類來提醒用戶出現什么問題。假如你認為這不能滿足你的需求,那么可以很方便的實現你自己的ExcepionHandler類。

具體定制異常處理的方法和機制

  要定制自己的異常處理機制,第一步是繼續org.apache.struts.action.ExceptionHandler類。這個類有2個方法可以覆蓋,一個是excute()另外一個是storeException(). 在多數情況下,只需要覆蓋其中的excute()方法。下面是ExceptionHandler類的excute()方法聲明:

public ActionForward execute( Exception ex,
                              ExceptionConfig exConfig,


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金堂县| 江达县| 九江市| 安阳市| 余姚市| 伊金霍洛旗| 镶黄旗| 阿尔山市| 修武县| 乌兰察布市| 汉源县| 白城市| 永兴县| 从江县| 平凉市| 深水埗区| 陵水| 葫芦岛市| 宁国市| 霍州市| 教育| 长兴县| 商洛市| 虹口区| 邯郸市| 方山县| 思茅市| 噶尔县| 依兰县| 红安县| 兴文县| 云安县| 始兴县| 福清市| 北辰区| 吉安县| 许昌县| 桂平市| 岚皋县| 兴安盟| 平顺县|