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

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