說干就干!因?yàn)樽约阂郧耙呀?jīng)看過一點(diǎn)struts,并且做過一個(gè)小例子(記得以前好像有個(gè)wizard,就是教你一步步用struts


先把struts做個(gè)Introduction吧,正好在介紹的同時(shí)也給自己一個(gè)整理的機(jī)會(huì),看了一天了,整理一下思路吧!
首先講到struts,就不能不提Model 2,講到Model 2就不能不提到Model 1(

關(guān)于servlet的細(xì)節(jié)我就不具體提了,我也有待學(xué)習(xí),這里之所以提到servlet,是因?yàn)閟truts中的一個(gè)核心部件就是一個(gè)servlet,所以在這里簡(jiǎn)單提一下servlet,以供讀者檢查自己是否應(yīng)該先去了解一下servlet。Model 1簡(jiǎn)單講就是只用JSP,而不用servlet,這里的用與不用,僅是對(duì)web開發(fā)人員而言,因?yàn)镴SP最終還是會(huì)被translate為servlet(這里用translate是遵照官方用詞,國(guó)內(nèi)很多書翻為編譯,個(gè)人認(rèn)為不是很恰當(dāng))。其實(shí)出現(xiàn)Model 1的原因也很簡(jiǎn)單,因?yàn)橛胹ervlet來構(gòu)造一個(gè)網(wǎng)頁(yè)不勝其煩,一堆的out.pringln(...)讓人整個(gè)感覺是手工構(gòu)造一個(gè)網(wǎng)頁(yè),在這個(gè)所見即所得的今天,我們可能永遠(yuǎn)無法想象它的繁瑣性!于是出現(xiàn)了JSP,把那些工作交給了web container,我們只需用所見即所得的tool構(gòu)造web,然后在web中適當(dāng)?shù)牡胤郊尤雑ava代碼即可。好,點(diǎn)到為止,再具體就是jsp的內(nèi)容了。但后來人們發(fā)現(xiàn),完全拋棄servlet并不是一個(gè)好的idea,其中的一個(gè)關(guān)鍵問題就是content與presentation混雜在一起,非常不利于維護(hù)和修改。于是人們又提出了結(jié)合jsp與servlet來開發(fā)web,這就是Model 2,它本質(zhì)上是經(jīng)典MVC模式的一個(gè)變種。這里推薦一篇文章Understanding JavaServer Pages Model 2 architecture ,專門介紹Model2的,希望對(duì)大家有所幫助,這也是struts官方網(wǎng)站上推薦的一篇文章!由于我們的主題是struts,所以我們就不細(xì)談這篇文章了。
當(dāng)然我也希望讀者對(duì)MVC模式有所了解,如果否,請(qǐng)看MVC的源頭。了解一下它吧,一個(gè)很好的東東!
好,準(zhǔn)備東西講完了,我們下面開始看struts!
struts從結(jié)構(gòu)上講是符合Model2的,先簡(jiǎn)單介紹一下它的情況,它的目的就是要解決Model 1中的flow control的問題,并使得內(nèi)容(Model)與表現(xiàn)(View)徹底分離。Struts是在2000年5月由Craig R. McClanahan發(fā)起的。并在2001年7月發(fā)布了1.0版。(休息一下)