<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我心飛翔

    Java技術(shù)交流

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      9 Posts :: 16 Stories :: 4 Comments :: 0 Trackbacks

      由于Struts框架在全球的廣泛使用,學(xué)習(xí)它的人也非常之多,但是大部分人花費(fèi)了太多不必要的時(shí)間和精力在一些不太重要的地方,導(dǎo)致學(xué)習(xí)代價(jià)高昂,成效也不是很好。我這里根據(jù)多年培訓(xùn)經(jīng)驗(yàn)的總結(jié),精心設(shè)計(jì)了一套學(xué)習(xí)Struts框架的曲線,讓大伙學(xué)習(xí)Struts框架既快且準(zhǔn),節(jié)省大伙寶貴的時(shí)間,一定會(huì)對(duì)各位學(xué)習(xí)者大有幫助。

      大家知道,Struts是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)開(kāi)源項(xiàng)目,它采用MVC設(shè)計(jì)模式,是一個(gè)基于Sun J2EE平臺(tái)的WEB表現(xiàn)層框架。這里有幾個(gè)概念值得大家關(guān)注:開(kāi)源,MVC,J2EE,WEB表現(xiàn)層,框架。我來(lái)逐一解釋。

      開(kāi)源:不用多說(shuō),源代碼可以讓你一行一行仔細(xì)分析,深入了解其內(nèi)部實(shí)現(xiàn)機(jī)制。

      MVC:它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。MVC享有“全球第一設(shè)計(jì)模式”的美譽(yù),是當(dāng)前很流行的一種設(shè)計(jì)理念和思想,你要學(xué)好Struts,必要要讓這種思想深入骨髓。(我在另一篇文章中對(duì)MVC進(jìn)行過(guò)闡述,關(guān)于MVC的流程及例子請(qǐng)參閱拙作:

      J2EE:J2EE是使用Java技術(shù)開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的一種事實(shí)上的工業(yè)標(biāo)準(zhǔn)。J2EE將組成一個(gè)完整企業(yè)級(jí)應(yīng)用的不同部分納入不同的容器(Container),每個(gè)容器中都包含若干組件(這些組件是需要部署在相應(yīng)容器中的),同時(shí)各種組件都能使用各種J2EE Service/API。其中最常用的容器就是WEB容器(就是我們常說(shuō)的WEB服務(wù)器),里面最核心的兩個(gè)組件就是JSP和SERVLET。而Struts就是基于這兩種技術(shù),依賴(lài)于WEB容器。

      WEB表現(xiàn)層:我們常說(shuō)的J2EE四層體系架構(gòu):WEB表現(xiàn)層,業(yè)務(wù)邏輯層,持久層,數(shù)據(jù)庫(kù)層。這是一種邏輯劃分。WEB表現(xiàn)層的特點(diǎn)就是依靠WEB服務(wù)器,直接跟客戶端(一般是WEB瀏覽器)打交道。Struts處于WEB表現(xiàn)層,主要就是接受并處理用戶請(qǐng)求,并將處理結(jié)果響應(yīng)給用戶。

      框架:通俗地講,框架就是一個(gè)“半成品”,它做了一些通用的東西讓你去配置和擴(kuò)展。框架的強(qiáng)大之處不是說(shuō)它能讓你做什么,而是它不能讓你做什么!它使混亂的東西變得結(jié)構(gòu)化。我們來(lái)打個(gè)比方。框架就像是一間有很多屋梁的房子,當(dāng)你需要擴(kuò)建房子的時(shí)候,譬如增加新的房間、窗戶和過(guò)道或者在臥室增加一個(gè)壁爐,由于屋梁的限制,你并沒(méi)有什么其他的選擇。雖然較少的屋梁會(huì)讓你有更多的選擇,但是當(dāng)臺(tái)風(fēng)來(lái)襲或者發(fā)生地震的時(shí)候,你讓家人住在這樣一間只有屋頂?shù)姆孔永铮峙虏粫?huì)覺(jué)得安全吧。總之,框架是在結(jié)構(gòu)和創(chuàng)造力之間的一個(gè)精確的天平。

      好了。這里假設(shè)大家已經(jīng)理解了上述概念,并會(huì)用JSP/SERVLET做一些普通的WEB應(yīng)用程序。現(xiàn)在就讓我們來(lái)看看如何學(xué)習(xí)Struts框架吧。這里我以Struts 1.2版本為例。(Struts 2.0的實(shí)現(xiàn)跟以前的版本有很大不同,我以后會(huì)講到。)讓我們出發(fā)吧!

      首先,你要照書(shū)本或者網(wǎng)上的例子跑一個(gè)最簡(jiǎn)單的Struts應(yīng)用,就是在客戶端顯示一個(gè)HELLOWORLD的那種,這叫先睹為快。在這里你開(kāi)始接觸到做Struts應(yīng)用需要的東西:Struts的JAR包,核心控制器ActionServlet在web.xml上的配置,針對(duì)具體用戶請(qǐng)求URL的Action的編寫(xiě)以及Struts應(yīng)用的核心配置文件Struts-config.xml。做完后停下來(lái)思考一下。

      然后,你開(kāi)始跑一個(gè)稍微大點(diǎn)的用戶登陸的應(yīng)用,成功就跳轉(zhuǎn)到我們的主頁(yè)面,失敗就繼續(xù)回到登陸頁(yè)面。我們引入ActionForm組件和對(duì)后臺(tái)數(shù)據(jù)庫(kù)的操作。這個(gè)時(shí)候MVC發(fā)揮作用了。ActionServlet和自己編寫(xiě)的Action分別充當(dāng)前,后端控制器組件,DAO/DTO充當(dāng)了模型組件,JSP充當(dāng)視圖組件。Struts-config.xml也變的飽滿起來(lái),上面開(kāi)始多了些配置datasources,form-beans,action-mappings。做完后到網(wǎng)上找一些好的參考資料或者利用自己經(jīng)典的Struts的案頭書(shū)(最好是有圖解),開(kāi)始認(rèn)真琢磨Struts的運(yùn)行原理和執(zhí)行流程,特別要好生體會(huì)ActionForm組件的作用和Struts-config.xml這個(gè)核心配置文件每一處用到的配置。這個(gè)時(shí)候,你應(yīng)該開(kāi)始有些領(lǐng)悟:我們自己寫(xiě)的Action還有ActionForm類(lèi)一定要繼承框架已有的Action和ActionForm,寫(xiě)完了之后還必須得將它們配置到Struts-config.xml中去。

      接著,你已經(jīng)對(duì)Struts框架有了大致的了解,可能開(kāi)始對(duì)Struts的其他主題感興趣了,OK,現(xiàn)在擴(kuò)充你的登陸應(yīng)用吧。先加上驗(yàn)證,不然你的系統(tǒng)會(huì)不堪一擊。驗(yàn)證分為客戶端驗(yàn)證和服務(wù)器端驗(yàn)證。服務(wù)器端的驗(yàn)證我們可以在ActionForm里面的validate()方法里做,也可以在隨后的Action類(lèi)的execute()方法里做,甚至可以使用驗(yàn)證框架。這里大家要把重點(diǎn)方在驗(yàn)證框架的學(xué)習(xí)上。做好后再加上資源國(guó)際化I18N,針對(duì)不同區(qū)域不同語(yǔ)言的客戶提供不同語(yǔ)言版本的頁(yè)面顯示。我們開(kāi)始寫(xiě)資源屬性文件,開(kāi)始在Struts-config.xml里面配置,開(kāi)始使用Struts自帶的標(biāo)簽,等。這個(gè)里面涉及的知識(shí)點(diǎn)都很多,需要大家耐心細(xì)致地學(xué)習(xí)。大家在跑這個(gè)應(yīng)用的時(shí)候會(huì)發(fā)現(xiàn)各種各樣的異常和問(wèn)題。不要害怕,這些錯(cuò)誤都是我們的好朋友,我們要把它們通通都記錄下來(lái),并堅(jiān)韌地排除掉它們。這里要記住:盡量避免重復(fù)犯錯(cuò),不要在同一個(gè)地方跌倒兩次。


      做完后,認(rèn)真總結(jié)和思考

      再接著,你把上面的都基本消化了,但是總隱隱覺(jué)得不夠系統(tǒng)和完整,你就開(kāi)始做幾個(gè)CRUD的應(yīng)用,完成普通的增刪查改的工作。在做這些應(yīng)用的過(guò)程中,你要認(rèn)真總結(jié)核心配置文件Struts-config.xml里面的8個(gè)重要節(jié)點(diǎn)元素的配置以及它們的順序,每個(gè)節(jié)點(diǎn)的重要屬性,特別是里的子節(jié)點(diǎn)的屬性是重中之重,一定要好好理解并靈活運(yùn)用。

      你也要開(kāi)始系統(tǒng)地學(xué)習(xí)Struts里面的標(biāo)簽。但這個(gè)時(shí)候千萬(wàn)不要追求大而全,只學(xué)習(xí)幾種常用的標(biāo)簽就可以了,重點(diǎn)放在html,bean,還有l(wèi)ogic標(biāo)簽上。這時(shí)候還有些小知識(shí)點(diǎn)你也許要用到,譬如:文件上傳控件,防止信息重復(fù)提交 ,自定義標(biāo)簽,cookie的使用等等。這就是個(gè)相對(duì)比較耗時(shí)間和精力的階段了,你要做的就是不斷地參考,不斷地思考,不斷地總結(jié),最好還能和志同道合的人不斷地爭(zhēng)論。

      慢慢地,你對(duì)Struts框架有了一個(gè)全局性的宏觀把握,用它來(lái)完成一些小模塊的開(kāi)發(fā)已經(jīng)沒(méi)有太大問(wèn)題,你已經(jīng)開(kāi)始志得意滿了:Struts不過(guò)如此嘛!如果你到了這一步,我首先要恭喜你,你接近成功了。但我也要小心地提醒你:Struts里面還有很多東西值得挖掘!你不妨多問(wèn)一下自己,軟件有一個(gè)人開(kāi)發(fā)的嗎?頁(yè)面我使用了良好的布局嗎?頁(yè)面導(dǎo)航都是那么簡(jiǎn)單嗎?我的所有做法就不能有更簡(jiǎn)單的實(shí)現(xiàn)了嗎?我對(duì)學(xué)習(xí)Struts框架的好處了如指掌了嗎?好的,如果你想通了,帶著這些問(wèn)題,你就會(huì)重新披掛上陣,開(kāi)始學(xué)習(xí)Struts的多模塊開(kāi)發(fā),開(kāi)始學(xué)習(xí)tiles框架,開(kāi)始認(rèn)真研讀Struts的源代碼,開(kāi)始學(xué)習(xí)一些更簡(jiǎn)單有效的Action組件類(lèi)和ActionForm組件類(lèi)……,真應(yīng)了一句古語(yǔ):吾生也有涯,知也無(wú)涯!最后呢,大家可能會(huì)悟出一些道理:譬如Struts框架基本的好處就是用配置代替編碼,它是一個(gè)半成品,是讓我們擴(kuò)展和配置的等等。

      上面我粗略地勾勒了一下學(xué)習(xí)Struts的曲線。歸納一下:學(xué)習(xí)框架需要循序漸進(jìn),實(shí)例驅(qū)動(dòng),思考總結(jié)。實(shí)際上,我在做培訓(xùn)的過(guò)程中發(fā)現(xiàn),如果我們?cè)趯W(xué)習(xí)Struts之前,自己動(dòng)手寫(xiě)過(guò)一個(gè)簡(jiǎn)易的MVC框架,學(xué)習(xí)Struts將會(huì)非常輕松,大概只需要五天的時(shí)間,而且可以學(xué)的非常好。大家不要認(rèn)為框架就是很龐大很復(fù)雜的怪獸,自己絕對(duì)無(wú)法寫(xiě)出來(lái)。其實(shí),無(wú)非就是將我們所理解的樸素思想用代碼實(shí)現(xiàn)出來(lái)罷了。好了,時(shí)間關(guān)系,今天就寫(xiě)到這里,祝愿大家學(xué)的開(kāi)心!


    標(biāo)簽: 軟件工程師  java培訓(xùn)  軟件培訓(xùn)  Java培訓(xùn)班  軟件編程  軟件開(kāi)發(fā)培訓(xùn)  軟件工程師培訓(xùn)
    posted on 2009-08-05 11:58 飛翔的JAVA 閱讀(50) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 77777午夜亚洲| 亚洲免费在线播放| 亚洲中文字幕一二三四区| 亚洲一区二区在线免费观看| 亚洲国产精品一区二区成人片国内 | 亚洲av第一网站久章草| 国产乱码免费卡1卡二卡3卡| 久久亚洲国产精品成人AV秋霞| 午夜精品免费在线观看| 亚洲国产精品无码久久一线| 99在线免费观看| 日本亚洲成高清一区二区三区| 国内精品99亚洲免费高清| 亚洲国产精品一区二区久久hs| 九九美女网站免费| 在线观看人成网站深夜免费| 33333在线亚洲| 在线免费一区二区| 鲁啊鲁在线视频免费播放| 亚洲一级毛片免费观看| 亚洲精品成人图区| 91免费在线视频| 亚洲av片劲爆在线观看| 51视频精品全部免费最新| 亚洲欧洲日韩国产一区二区三区| 男女免费观看在线爽爽爽视频 | 亚洲综合久久一本伊伊区| 搡女人真爽免费视频大全| 亚洲欧美在线x视频| 久久久久亚洲爆乳少妇无| 高清一区二区三区免费视频| 亚洲性猛交xx乱| 国产精品成人免费综合| 一级毛片试看60分钟免费播放| 亚洲精品无码Av人在线观看国产 | 亚洲美女在线国产| 99免费观看视频| 亚洲欧美日韩中文字幕在线一区| 亚洲国产精品日韩| 最近中文字幕mv免费高清在线 | 中文亚洲AV片不卡在线观看|