posts - 40,  comments - 7,  trackbacks - 0

          J2EE簡介



          J2EE是一個開放的、基于標準的平臺,可以開發、部署和管理N層結構的、面向Web的、以服務器為中心的企業級應用,它是利用Java 2 平臺來簡化與多級企業解決方案的開發、部署和管理相關的諸多復雜問題的應用體系結構。

          J2EE平臺采用一個多層次分布式的應用模式。這意味著應用邏輯根據功能被劃分成組件,組成J2EE應用的不同應用組件安裝在不同的服務器上,這種劃分是根據應用組件屬于多層次J2EE環境中的哪一個層次來決定的。如圖1所示,J2EE應用可以由三或四個層次組成,J2EE多層次應用一般被認為是三層應用,因為它們是被分布在三個不同的地點:客戶端機器、J2EE服務器和數據庫或后端的傳統系統服務器。三層架構應用是對標準的客戶端/服務器應用架構的一種擴展, 即在客戶端應用和后臺存儲之間增加一個多線程應用服務器。



          J2EE體系包括JSP、Servlet、EJB、WEB SERVICE等多項技術。這些技術的出現給電子商務時代的WEB應用開發提供了一個非常有競爭力的選擇。怎樣把這些技術組合起來,形成一個適應項目需要的穩定架構是項目開發過程中一個非常重要的步驟。

          一個成功的軟件需要有一個成功的架構,但軟件架構的建立是一個復雜而又持續改進的過程,軟件開發者們不可能對每個不同的項目做不同的架構,而總是盡量重用以前的架構,或開發出盡量通用的架構方案,Struts就是流行的基于J2EE的架構方案之一,其他常用的基于J2EE的架構方案還有Turbine、RealMothods等。本文主要探討Struts框架技術的應用。

          J2EE應用程序架構的發展

          在J2EE應用程序架構的發展路程中,主要經歷了兩個大的階段:

          1、Model 1

          在JSP頁面中結合業務邏輯、服務器端處理程序和HTML,在JSP頁面中同時實現顯示、業務邏輯和流程控制,從而快速的完成Web應用開發。這種模型的不足之處:1)不利于應用擴展和更新。2)業務邏輯和表示邏輯混合在JSP頁面中沒有進行抽象和分離,不利于應用系統業務的重用和改動。

          2、Model 2

          表示的是基于MVC模式的框架。根據Model 2,servlet 處理數據存取和導航流, JSP處理表現。Model 2 使Java 工程師和HTML設計者分別工作于它們所擅長和負責的部分。Model 2應用的一部分發生改變并不強求其他部分也跟著發生改變。HTML 開發人員可以改變程序的外觀和感覺,并不需要改變后端servlet的工作方式。把應用邏輯、處理過程和顯示邏輯分成不同的組件實現。彌補了Model1的不足。

          Struts框架技術

          Struts 框架就是基于Model 2 的架構,也就是基于MVC模式的框架技術。它是一個免費的開源的WEB層的應用框架,具有很高的可配置性,和有一個不斷增長的特性列表。一個前端控制組件,一系列動作類,動作映射,處理XML的實用工具類,服務器端java bean 的自動填充,支持驗證的WEB 表單,國際化支持,生成HTML,實現表現邏輯和模板組成了struts的靈魂。圖2顯示了Struts組件是如何一起工作的。



          Struts 的ActionServlet 控制導航流。其他Struts 類,比如Action, 用來訪問業務邏輯類。當 ActionServlet 從容器接收到一個請求,它使用URI (或者路徑“path”) 來決定哪個Action 將用來處理請求。一個 Action可以校驗輸入,并且訪問業務層以從數據庫或其他數據服務中檢索信息。

          為校驗輸入或者使用輸入來更新數據庫, Action 需要知道什么被提交上來。并不是強制每個Action 從請求中抓取這些值,而是由 ActionServlet 將輸入綁定到JavaBean中。輸入 bean是Struts ActionForm c類的子類。ActionServlet 通過查找請求的路徑可以決定使用哪個ActionForm,Action 也是通過同樣的方法選取的。每個Action都必須以HTTP 響應進行應答。 通常, Struts Action 并不自行加工響應信息,而是將請求轉發到其他資源,比如JSP 頁面。Struts 提供一個ActionForward 類,用來將一個頁面的路徑存儲為邏輯名稱。當完成業務邏輯后,Action 選擇并向Servlet返回一個ActionForward。Servlet 然后使用存儲在ActionForward 對象中的路徑來調用頁面完成響應。

          Struts 將這些細節都綁定在一個ActionMapping 對象中。每個ActionMapping 相對于一個特定的路徑。當某個路徑被請求時,Servlet 就查詢ActionMapping 對象。ActionMapping對象告訴servlet哪個Actions、 ActionForms 和 ActionForwards 將被使用。

          所有這些細節,關于Action, ActionForm, ActionForward, ActionMapping,以及其他一些東西,都在struts-config.xml 文件中定義。 ActionServlet 在啟動時讀取這個配置文件,并創建一個配置對象數據庫。在運行時,Struts 應用根據的是文件創建的配置對象,而不是文件本身。

          基于Struts框架的應用設計實例

          本文以“面向鑄造行業的網絡化制造ASP平臺開發”項目中的軟件租用模塊為例,來說明如何設計基于Struts框架的Web應用。在該模塊中,用戶合法登陸網站后,可以根據需要選擇所要租用的軟件類型及軟件中的功能模塊,確認信息提交服務器后,用戶將收到系統給予的登陸密碼,用戶即可登陸網站,在線使用租用軟件,實行業務托管。

          根據項目需求分析,確定該系統必須具備的性能有:1)良好的交互性:工作內容中有相當大的部分是人機交流,這就要求系統的交互性要強。2)較好的可擴展性:工作的內容和形式具有多變性,要求系統具有良好的可擴展性。3)良好的可維護性:系統投入使用后,主要是由管理員承擔系統維護的工作,維護人員不定期變動,這就要求系統的可維護性強。4)具有較好的跨平臺性:用戶可能使用各種不同的操作系統,而且為了適應今后可能的變化,系統應具有較好的跨平臺性?;谝陨纤狞c,在開發軟件租用模塊時,采用J2EE編程環境,并相應采用了專為J2EE定制的Struts框架。

          做基于Struts框架的項目開發,關鍵是要有一個好的整體模型,計劃好系統中包括哪幾個模塊,每個模塊各需要什么樣的FormBean、JavaBean,各種處理結果都通過哪些JSP頁面來展現,同時配置好struts-config.xml文件。本系統的設計模型如圖3所示。



          ActionServlet接受所有的HTTP請求,然后根據配置文件的內容,決定將請求映射到哪一個Action對象,本系統中有兩個Action對象,分別對應著登陸遠程軟件(LogonAction)和系統反饋密碼(MailAction)。

          LogonAction首先會驗證用戶是否已經登錄,如果沒有登錄則重定向到登錄頁面(Logon.jsp),驗證通過后根據請求參數決定下一步的處理,如果用戶還沒有選擇租用軟件,則轉到軟件介紹租用界面(Query.jsp),選擇需要租用的軟件或軟件的某些模塊,提交信息后,MailAction使服務器向用戶提交密碼,用戶接收到密碼后,登陸運行軟件。

          如果用戶登陸軟件成功,則通過配置文件struts-config.xml中的ActionForward,通過GetInfo對象把該用戶租用的軟件信息讀取道FormBean中,然后調用JSP頁面顯示Bean里的數據。如果是保存數據信息,則調SaveInfo對象將FormBean里保持的信息存入數據庫;如果是修改信息,則調ModifyInfo對象將FormBean里保持的修改后的信息存入數據庫;如果是刪除數據信息,則調用DeleteInfo對象將FormBean里保持的信息從數據庫中刪除。

          經過這樣設計的系統,用戶界面和數據處理已經完全分離,再加上在JSP頁面中使用了自定義標記,使頁面中沒有了Java的腳本代碼,這樣Web界面的設計和后端程序的編寫就有了清晰的界線,便于開發團隊的分工,并且維護起來也很方便。

          結束語

          Struts是一種非常優秀的基于J2EE的MVC應用框架,雖然從正式發布到現在也只有兩年多的時間,但它已經越來越多地運用于企業平臺之上,許多大型網站已成功地應用了Struts框架。本文在總結了Struts框架技術及其工作原理的基礎上,結合“面向鑄造行業的網絡化制造ASP平臺開發”項目,提出了在線租用模塊的設計思路,這為今后更好的應用采用Struts框架提供了參考。

          posted on 2006-08-17 19:36 Lansing 閱讀(1220) 評論(1)  編輯  收藏 所屬分類: StrutsJava

          FeedBack:
          # re: Struts框架技術在J2EE中的研究和應用[未登錄]
          2007-04-25 17:34 | aa
          dfetetgfgf  回復  更多評論
            

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


          網站導航:
           
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          歡迎探討,努力學習Java哈

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Lansing's Download

          Lansing's Link

          我的博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 奉贤区| 湖北省| 宝山区| 澄城县| 吉安县| 裕民县| 彰化市| 平乡县| 孝义市| 嘉禾县| 汝城县| 牙克石市| 松江区| 马边| 武冈市| 永丰县| 蓝田县| 渝北区| 永吉县| 石屏县| 方正县| 凭祥市| 玉田县| 金乡县| 论坛| 高淳县| 湘乡市| 图木舒克市| 南郑县| 高阳县| 广德县| 华蓥市| 宜川县| 秦安县| 乡宁县| 通榆县| 丹凤县| 盈江县| 东源县| 石狮市| 枣强县|