0. 前言:關鍵技術
0.1 基本要求
該用戶向導是為熟練的Web程序開發者而寫,並假定你對Java Web應用程序開發有一定的了解。開始下面的內容之前,你需要了解以下幾個方面的關鍵技術:
· HTTP, Html,用戶代理
· HTTP Request/Respons循環
· Java語言和應用程序框架
· JavaBeans
· 屬性文件和資源包
· Java Servlets
· JavaServer Pages 和JSP標簽庫
· Extensible Markup Language(XML)
本章對以上的各種技術進行了簡潔的說明,但不給出詳細的敘述。如果你想要學習到更多的相關知識的話,可以查看知識的詳細細節。
如果你對Java非常熟悉,而其他知識很生疏,最好的起點就是SUN公司的The Java Web Services Tutorial . 此文檔還有 PDF 格式.
如果你以前在其他的平台下開發過WEB程序, 你可以試著看下去,別獲取一些你需要的其他信息.Struts中用到的關鍵技術在其他的Java web開發產品中也被使用,所以本章的知識對其他的開發也會有幫助。
如果你對Java語言不熟悉,那最好的起點就是 The Java Tutorial . 這與 Java Web Services Tutorial 在某一些地方有重疊,不過它們對你的開發是殊途同歸.
想得到更多的開發信息,請看 New to Java tutorial.
0.2 HTTP, Html 和 用戶代理
國際互聯網是建立在超文本傳輸協議(HTTP)和超文本定義語言(HTML)基礎上的. 用戶代理,比喻說你的一個浏覽器,用HTTP去請求一個HTML文檔. 然後浏覽器格式化這個文檔並顯示給用戶. HTTP 被用來傳輸不僅僅是HTML,但Html在web應用程序中應用最多.
在建立一個web應用程序的時候, 一些 Java 開發者會去寫他們自己的Html. 而其他的一些人會把這工作留給頁面設計師.
想得到HTTP,Html和用戶代理的知識,請看:
· Getting started with Html 作者 Dave Raggett
· HTTP OvervIEw 在 Java Web Services Tutorial.
· HTTP/1.1 規格說明書
· HTTP Basic and Digest Authentication 規格說明書
· State Management Mechanism 規格說書 (CookIEs)
0.3 HTTP請求/應答 循環
對web開發者來說,HTTP很重要的一部分就是請求/應答 循環。為了使用HTTP,你必須發出一個請求。一個HTTP服務器,比方說一個Web服務器,會被強迫應答。當你構建一個Web應用程序的時候,你設計它為了得到一個應答而發起一個請求。像Struts這樣的框架抽象了很多其中的細節,不過讓你了解其中的背景也是很有意義的。
如果你對 HTTP 請求/應答循環不是很了解,我們強烈的建議你去看 HTTP OvervIEw 在 Java Web Services Tutorial.
0.4 Java語言和應用程序框架
Struts是用流行和通用的Java語言編寫。( Java programming language.) Java是一種面向對象的語言,同時 Struts使用了很多面向對象的技術。 並且, Java 天生地就支持可以讓多余一個任務在同一時間執行的線程的概念。對Java,特別是對面向對象編程和線程的理解,會幫助你很好的理解Struts和此用戶向導.
要得到更多的Java和Thread的知識,請查看:
· Learning the Java Language 在 Java Tutorial 裡
· Threads: Doing Two or More Tasks At Once 在 Java Language Tutorial 裡
即使你在以前使用過Java和OOP(面向對象編程),意識到要創建和使用應用程序框架的挑戰也是很有好處的。
想要得到更多的關於應用程序框架的知識,請查看
Designing Reusable Classes 作者 Ralph E. Johnson & Brian Foote
Object-OrIEnted Application Frameworks 作者Mohamed Fayad and Douglas C. Schmidt
0.5 JavaBeans
像其他的許多Java應用程序一樣,大部分Struts對象都被設計為 JavaBeans. 遵循JavaBeans的設計規則使得Struts類無論是被Java開發者還是Java開發環境使用都很容易.
雖然JavaBeans 最初是為了可視化元素設計,但是那些對象設計方式已經被證明對任何的可復用組件都有用處,像那些在Struts框架中使用的一樣。
想獲得更多的關於JavaBeans的知識,請查看:
· The JavaBeans Component Architecture Documentation
· The JavaBean Trail 在 Java Tutorial裡
· JavaBeans Components in JSP Pages 在 Java Web Services Tutorial裡
0.5.1 反射和內省
反射是判斷哪個成員和方法對一個對象是有效的過程。內省是被JavaBean使用的反射的一個特定表格。使用內省,我們可以知道一個JavaBean的哪個方法被另一個對象所期望調用。(例如getter和setter方法)
Struts 框架使用內省來把HTTP 參數轉換成JavaBean屬性和從JavaBean屬性文件變成HTML字段。這項技術使從Html 表單到JavaBean的變換變的很簡單。
想得到更多的知識,請參看:
· The Reflection Trail
Chapter 8 of the JavaBeans API Specification