[目標]
實現一個最簡單的Struts程序。程序包括一個輸入頁和輸出頁,輸入頁。
對于學習程序設計,我們已習慣于從Hello程序開始,實踐證實,這是一個最有效的入門方法。下面就著手設計我們的第一個Struts程序----Hello程序。Hello程序的目標是實現從一個輸入jsp頁面中的輸入框輸入一個“Hello”單詞,在另一個輸出JSP頁面中顯示“Hello”一詞。根據Struts框架的要求,這個Hello程序將包含輸入JSP文件、輸出JSP文件、Action文件、FormAction文件及配置文件。也就是說,這個Hello程序是一個完整的Struts程序,它可直接在Tomact、Resin等服務器上運行。
[效果]
輸入頁面:
輸出頁面:
[背景知識]
以前使用servlet開發應用系統的人深深感受到在java代碼中嵌入大量Html代碼是一件非常痛苦的事,于是sun推出了JSP,解決了java代碼中嵌入html代碼的問題。但是很快程序員們就知道,用JSP“在html代碼中嵌入大量java代碼”跟“在java代碼中嵌入大量html代碼”是一樣的非常痛。JSP是這樣,asp也是這樣。于是,Craig R. McClanahan借用MVC的思想,把Java web應用程序的java和html分離開放在不同的文件中,分成了三部分,也就是struts;后來,微軟也學會了這種分離方法,但微軟懶一些,只分成了兩部分,也就是asp.net。
Struts (org.apache.struts)是一個開放源代碼的Web應用框架,基于MVC設計模式,使用servlet和JSP API建立,可以用來構建復雜的Web應用。它答應我們分解一個應用程序的商業邏輯、控制邏輯和表現邏輯的代碼,使它的重用性和維護性更好。Struts框架是Jakarta工程的一部分,由Apache軟件基金會治理。Struts可以從http://jakarta.apache.org/ struts站點下載。
Struts框架提供以下服務。
作為MVC結構中的controller的servlet.
JSP里用于bean治理、HTML和javascript生成、模板處理和流程控制的JSP標簽庫。
用于國際化消息的框架。國際化你的Web應用,意味著你的Web應用在使用時可以讓用戶以喜愛的語言顯示。這意味著你需要創建一個應用資源文件,包含每種語言的信息。
一個JDBC的實現來定義數據源和數據庫連接池。
一個通用的的錯誤和異常處理機制,包括從一個應用程序資源文件讀取錯誤信息。
xml語法分析。
文件上載工具。
注冊機制。
一個基于Struts的應用程序的表示層(view)使用Struts標簽庫(taglibs)構建。來自客戶的請求被傳遞給叫ActionServlet的servlet,它作為controller.使用了Struts的應用程序,所有需要通過框架的請求都通過ActionServlet傳遞。這個ActionServlet把數據從請求傳遞到ActionForm JavaBean。
ActionForm是代表從一個表單View組件輸入數據的JavaBean。這些表單由JSP用Struts html標簽庫產生。這個beam由 ActionServlet生成,帶request參數,它還請求ActionForm來驗證用戶提交數據的合法性。
ActionServlet通過定義一組ActionMapping來配置。一個ActionMapping是一個對象,它將請求中的URL映射到由應用程序開發者提供的處理請求的組件。ActionServlet和ActionMapping的配置在XML配置文件中完成。
專用的應用程序用于處理請求的組件叫Action類。在MVC結構中,它們代表模型。它們可能用于驗證用戶輸入的合法性,假如在信息處理過程中出現了應用程序錯誤,Action類可以創建一個error對象的實例,然后保存慶HTTP request對象中。假如在Action類中的邏輯成功地被招待類給Controller傳遞一個ActionForward對象,代表所需的描繪響應的JSP。ActionForward有兩種:專門轉發給特定的Action類或全局轉發(任何一個Action類可以把這些ActionForwards轉給Controller)。
[步驟]
1、打開Visual Struts開發環境:
(1)把文件拷貝到本地硬盤的一個目錄下,例如
F:/JavaWebStudio/
(2) 運行BIN目錄下的JavaWebStudio.exe文件(同時自動在桌面建立一個快捷方式,第二次啟動時,只需點擊桌面的快捷方式即可),出現如下啟動界面: