国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

開始你的第一個struts應(yīng)用程序

2019-11-18 15:55:11
字體:
供稿:網(wǎng)友

  有句古話雖說“苦干不如巧干”,但有時卻是說來輕易做來難。然而你一旦把握了Struts技術(shù)-一個用來構(gòu)建嚴(yán)謹(jǐn)Web程序的框架-你開發(fā)程序的效率會比現(xiàn)在更高。遺憾的是,大多數(shù)程序員覺得學(xué)習(xí)Struts是一個艱難的曲折過程。本文(六篇系列文章的第一篇)給那些使用過servlets或jsp頁面但對Struts了解不多的程序員提供了一個quick start。
  
  我會教你如何安裝和配置Struts,并展示建立在框架中的一個小程序的規(guī)范和部署描述符(deployment descriptor)。我會在這個序列的第二部分仔細(xì)講解這個程序。
  
  在開始之前有一點(diǎn)很重要:就是構(gòu)建這個程序要求對java Web程序中的Model-View-Controller (MVC)模式有很好的理解,假如它對你來說還是個新概念,就請先閱讀“Almost All Java Web Apps Need Model 2."
  
  首先,你要了解關(guān)于Struts的一些基本知識。Struts使用基于MVC設(shè)計模式的Model 2架構(gòu)。對于嚴(yán)謹(jǐn)?shù)拈_發(fā)人員來說Model 2應(yīng)用程序是個理想化的模式,因?yàn)橥ㄟ^它們可以開發(fā)出靈活、可擴(kuò)展而且輕易維護(hù)的程序來。即使對一個簡單的程序來說Model 2也是被推薦使用的架構(gòu),因此有一個能夠更快更輕易地構(gòu)建這種程序的框架是非常重要的。來自Apache Software Foundation的Apache's Jakarta Struts PRoject就是這一類型的框架,本文的例子會幫你理解如何使用它。
  
  這個例子是一個給初學(xué)者的教學(xué)工具,所以沒有完全發(fā)揮Struts的實(shí)際性能。比如說,它沒有用到Struts標(biāo)簽庫或其他有趣的特性,因此代碼很輕易理解。而且,為了簡單起見,它只用到幾個文件。最后,你會看到在JSP頁面中使用了Java代碼,在實(shí)際應(yīng)用中它是用Beans來實(shí)現(xiàn)的,但假如用到這個例子中就會使程序變得復(fù)雜化了。
  
  在你開始之前,你要在機(jī)器里裝上Struts。假如還沒有裝的話就請立即下載配置它吧。
  
  安裝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 或更高級的版本。它同時要求一個與解析xml的Java API(JAXP)規(guī)范相兼容中的XML解析器。你需要將XML解析庫(jaxp.jar/parser.jar/其他文件)加入到你的CLASSPATH環(huán)境變量中去。而且,假如你在使用數(shù)據(jù)庫,你則需要從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容器。要找到已被確認(rèn)的可以使用Struts的servlet容器列表,請查閱INSTALL文件。
  
  最后,要使Struts運(yùn)轉(zhuǎn)起來,你需要加入一個環(huán)境變量JAVA_HOME,使其指向JDK安裝根目錄,并將.jar文件復(fù)制到每個程序的WEB-INF/lib目錄下。
  
  注冊程序
  這是一個簡單的注冊程序的例子,僅用到了MVC模式中的視圖和控制器。它要求用戶在查看公司機(jī)密賬號之前輸入用戶名和密碼。展示的第一個頁面是Longin頁面(見圖1)。假如注冊成功,用戶可以看到Main Menu頁面(見圖2),其中包含兩個鏈接:一個是退出,另一個是查看公司機(jī)密賬號。假如注冊失敗,則用戶會被重新引導(dǎo)到注冊頁面。
  
 開始你的第一個struts應(yīng)用程序(圖一)

  
圖1. 注冊

  假如用戶輸入正確的用戶名和密碼,程序會建立一個session對象,并會有一個叫做loggedIn的屬性被添加到這個session對象中去。只有當(dāng)程序能夠在用戶的session對象中查找到這個loggedIn屬性時用戶才可以瀏覽Main Menu頁面和Secret頁面。所有缺少該屬性或無效的session對象都會迫使用戶登陸。(正確的用戶名是“john”,密碼是“123”。這些值是程序中固定寫死的以避免需要連接到數(shù)據(jù)庫里或使用其他存儲來完成用戶驗(yàn)證。)
  
  當(dāng)用戶退出時,他或她的session對象將會失效,同時Longin頁面會重新顯示。當(dāng)用戶點(diǎn)擊鏈接要查看公司機(jī)密時,會彈出Secret頁面(見圖3)。
  有三種JSP頁面是以MVC模式中視圖的形式出現(xiàn)的:login.jsp (見圖1), mainMenu.jsp (見圖2), and viewSecret.jsp (見圖3)。
  
 開始你的第一個struts應(yīng)用程序(圖二)

  
圖2. 主要事件

  由于所有Struts應(yīng)用程序同時也是Model 2應(yīng)用程序,所以它們必須具備一些用來充當(dāng)MVC模式中控制器的東西(在該例子中是一個控制器 servlet)。在使用Struts時,你無需編寫自己的控制器servlet。程序已經(jīng)幫你建好了,這也是用Struts來提高開發(fā)效率的方法之一。
  
  在Struts應(yīng)用程序中控制器servlet是org.apache.struts.action.ActionServlet類的一個實(shí)例。該類是包含在struts.jar文件中的諸多類的一個成員,所以你得在每個開發(fā)的程序中分發(fā)此文件。
  
  
開始你的第一個struts應(yīng)用程序(圖三)

  
圖3. 你發(fā)現(xiàn)了一個秘密

  這個控制器servlet將根據(jù)請求中的URL把請求發(fā)送給適合的視圖。依照慣例,這個URI是以.do結(jié)尾的。例如,指向Secret頁面請求的URI是:http://domain/appName/viewSecret.do,而指向Longin頁面中的URL是http://domain/appName/login.do。(當(dāng)然,在URI后面也可以帶有其他信息)
  
  假如你編寫過servlet或者JSP應(yīng)用程序,你可能猜想在部署描述符當(dāng)中使用了servlet映射,以便將請求發(fā)送到ActionServlet實(shí)例中去。沒錯,Struts是另一種版本的servlet/JSP程序。程序中的描述符顯示在列表1中。這些代碼說明了以下三點(diǎn):
  
   在action servlet配置部分,org.apache.struts.action.ActionServlet類的實(shí)例被稱為action。
  
   所有以.do結(jié)尾的URL均被映射到action servlet中。
  
   Login.jsp是一個welcome file,它是在URL不包含資源名稱時(換言之,當(dāng)URL屬于http://domain/myApp form時)被調(diào)用的默認(rèn)文件。
  
  此外,列表1中的部署描述符沒有什么非凡的用法,它只是簡單地說明Struts應(yīng)用程序和一般的servlet應(yīng)用程序很相似。
  
  應(yīng)用程序中對資源的請求被發(fā)送到ActionServlet中去,然后由它將控制權(quán)轉(zhuǎn)給其他對象,這些對象稱為action objects。我會在這個系列的第二部分中講解action 對象和其他一些應(yīng)用程序。
  
  現(xiàn)在你知道了如何安裝和配置Struts,而且你也弄懂了注冊程序項(xiàng)目規(guī)范和部署描述符,那么你可以點(diǎn)擊此處下載全部程序。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵港市| 四会市| 康马县| 延长县| 上杭县| 葫芦岛市| 南投市| 繁昌县| 青浦区| 改则县| 安丘市| 特克斯县| 蛟河市| 浦东新区| 巨野县| 余庆县| 新疆| 玉树县| 阜南县| 商城县| 理塘县| 澄迈县| 攀枝花市| 芜湖县| 丹凤县| 靖边县| 雅安市| 赤峰市| 和顺县| 固原市| 灌云县| 黎城县| 新津县| 东港市| 遂溪县| 田东县| 衡山县| 梧州市| 炎陵县| 张家港市| 杭州市|