3.8 簡單例子的分析(含代碼注釋和配置文件說明)
安裝
Struts
安裝
Struts
很容易,而且它不需要復雜的配置。首先,從
http://jakarta.apache.org/site/binindex.html
下載
Struts
安裝文件。在編寫本文期間,
1.0
版是穩定版本,而
1.1
版是
bata
版。(在這一系列的項目中我用到
1.1-b2
版)
Struts
程序是用
Java
寫的,因此它要求使用
JDK1.2
或更高級的版本。它同時要求一個與解析
XML
的
Java API
(
JAXP
)規范相兼容中的
XML
解析器。你需要將
XML
解析庫(
jaxp.jar/parser.jar/
其他文件)加入到你的
CLASSPATH
環境變量中去。而且,如果你在使用數據庫,你則需要從
http://java.sun.com/products/jdbc
中下載并安裝
JDBC 2.0 Optional Package Binary
。(如果你用的是
JDK1.4
,那么
XML
解析器和
JDBC 2.0 Optional Package Binary
會自動包含在里面。)
還有,
Struts
要求使用一個支持
Servlet API 2.2
或更高版本的
servlet
容器。要找到已被確認的可以使用
Struts
的
servlet
容器列表,請查閱
INSTALL
文件。
最后,要使
Struts
運轉起來,你需要加入一個環境變量
JAVA_HOME
,使其指向
JDK
安裝根目錄,并將
.jar
文件復制到每個程序的
WEB-INF/lib
目錄下。
注冊程序
這是一個簡單的注冊程序的例子,僅用到了
MVC
模式中的視圖和控制器。它要求用戶在查看公司機密賬號之前輸入用戶名和密碼。展示的第一個頁面是
Longin
頁面(見圖
1
)。如果注冊成功,用戶可以看到
Main Menu
頁面(見圖
2
),其中包含兩個鏈接:一個是退出,另一個是查看公司機密賬號。如果注冊失敗,則用戶會被重新引導到注冊頁面。
圖 1. 注冊
如果用戶輸入正確的用戶名和密碼,程序會建立一個
session
對象,并會有一個叫做
loggedIn
的屬性被添加到這個
session
對象中去。只有當程序能夠在用戶的
session
對象中查找到這個
loggedIn
屬性時用戶才可以瀏覽
Main Menu
頁面和
Secret
頁面。所有缺少該屬性或無效的
session
對象都會迫使用戶登陸。(正確的用戶名是
“john”
,密碼是
“123”
。這些值是程序中固定寫死的以避免需要連接到數據庫里或使用其他存儲來完成用戶驗證。)
當用戶退出時,他或她的
session
對象將會失效,同時
Longin
頁面會重新顯示。當用戶點擊鏈接要查看公司機密時,會彈出
Secret
頁面(見圖
3
)。
有三種
JSP
頁面是以
MVC
模式中視圖的形式出現的:
login.jsp (
見圖
1), mainMenu.jsp (
見圖
2), and viewSecret.jsp (
見圖
3)
。
圖 2. 主要事件
由于所有
Struts
應用程序同時也是
Model 2
應用程序,所以它們必須具備一些用來充當
MVC
模式中控制器的東西(在該例子中是一個控制器
servlet
)。在使用
Struts
時,你無需編寫自己的控制器
servlet
。程序已經幫你建好了,這也是用
Struts
來提高開發效率的方法之一。
在
Struts
應用程序中控制器
servlet
是
org.apache.struts.action.ActionServlet
類的一個實例。該類是包含在
struts.jar
文件中的諸多類的一個成員,所以你得在每個開發的程序中分發此文件。
?
圖 3. 你發現了一個秘密
這個控制器
servlet
將根據請求中的
URL
把請求發送給適合的視圖。依照慣例,這個
URI
是以
.do
結尾的。例如,指向
Secret
頁面請求的
URI
是:
http://domain/appName/viewSecret.do
,而指向
Longin
頁面中的
URL
是
http://domain/appName/login.do
。(當然,在
URI
后面也可以帶有其他信息)
如果你編寫過
servlet
或者
JSP
應用程序,你可能猜想在部署描述符當中使用了
servlet
映射,以便將請求發送到
ActionServlet
實例中去。沒錯,
Struts
是另一種版本的
servlet/JSP
程序。程序中的描述符顯示在列表
1
中。這些代碼說明了以下三點:
在
action servlet
配置部分,
org.apache.struts.action.ActionServlet
類的實例被稱為
action
。
所有以
.do
結尾的
URL
均被映射到
action servlet
中。
Login.jsp
是一個
welcome file
,它是在
URL
不包含資源名稱時
(
換言之,當
URL
屬于
http://domain/myApp form
時
)
被調用的默認文件。
此外,列表
1
中的部署描述符沒有什么特殊的用法,它只是簡單地說明
Struts
應用程序和一般的
servlet
應用程序很相似。
應用程序中對資源的請求被發送到
ActionServlet
中去,然后由它將控制權轉給其他對象,這些對象稱為
action objects
。我會在這個系列的第二部分中講解
action
對象和其他一些應用程序。
現在你知道了如何安裝和配置
Struts
,而且你也弄懂了注冊程序項目規范和部署描述符,那么你可以點擊此處下載全部程序。
?
?
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
