新聞資訊

JSP程序的(de)代碼生(shēng)成問φ<¥∑(wèn)題解析

     JSP是(shì)Jav®¥' a Server Papes(Java服務器(qì)系統頁面)的(' de)縮寫,它是(shì)由Sun Microsystems公γ ∏司倡導的(de)、許多(duō)公司參與一(yī)£λ起建立的(de)一(yī)種動态網頁技(jì)∞β術(shù)标準,其在動态網頁的(de)創建中有(yǒ÷™™←u)強大(dà)而特殊的(de)功能(néng),就(jiù₽☆↑&)是(shì)JavaServer Pages(JSP)是(sh™¥ì)一(yī)種實現(xiàn)普通(t±₽∞λōng)靜(jìng)态HTML和(hé)動态HTML≥​γ混合編碼的(de)技(jì)術(shù)。®§在 Sun正式發布Java server pages之&β後,一(yī)這(zhè)種新的(de)Web應用(yòng©∞↕)開(kāi)發技(jì)術(shù)很(hěn)快(kuài§₽©)便引起了(le)人(rén)們的(de)關注。 ¶&εJava server pages為(wèi)創建高™¶←×(gāo)度動态的(de)Web應用(yò✔✔÷ng)提供了(le)一(yī)個(gè)獨特的(de)開(λ kāi)發環境。網站(zhàn)建設程序Velocity隻是(shì)裝入$→γ模闆,将模闆解析一(yī)次,然後存儲為(wèi)抽象語法樹(shù)。抽象γ✔語法樹(shù)代表在內(nèi)存的(♦‌€de)模闆,這(zhè)秀色可(kě)餐以一(yī)★•¥次一(yī)次地(dì)重複使用(yòng),這(zhè)個(gè)過程&Ω®隻是(shì)簡單的(de)“編程>≈↕σ解析>運行(xíng)”。這(zhèΩ→)樣做(zuò)的(de)好(hǎo)處是(shì)顯而易見(jiàn)的$♠(de)。使用(yòng)Velocityt模闆将明(mínφ♥g)顯地(dì)提高(gāo)速度,同時§♣(shí)還(hái)減少(shǎo)了(le)對(duì​∞₹∞)javac編程器(qì)和(hé)其它臨時(sh♠↑✔εí)目錄的(de)需求。在Velocity過程 ₽↑中,如(rú)果模闆發生(shēng)了(le)變化(huà),存在緩沖存儲♠π£×器(qì)中的(de)模闆将被最新解析生(shēng)成的(de)版本替換掉,∞£☆≤從(cóng)而保證了(le)正确性。


     Velocity使用α¶←λ(yòng)方法的(de)另一(yī)個(gè)±≥好(hǎo)處在于,網站(zhàn)制(zhì)作(zuò)實際的(d↔ ×∞e)模闆數(shù)據可(kě)以存儲任何地(dì)方,包括數(sh"±€®ù)據庫和(hé)遠(yuǎn)程主機(jī),通(tōn¶'g)過對(duì)模闆載入器(qì)時(shí)行(∑φxíng)配置,可(kě)以創建一(yī)個(±'©gè)完全個(gè)性化(huà)的(de)<♣、滿足自(zì)己需要(yào)的(de)模闆載入器(q≈≈ì)。類似slrurs和(hé)turbine這✘↕(zhè)樣的(de)框架軟件(jiàn)都(d×π₹ōu)會(huì)有(yǒu)很(hěn)多(duō)處理(lǐ)錯(cu≥×ò)誤的(de)恰當方法。即使沒有(yǒu)tu&≤÷rbine,Velocity也(yě)可(kě)以提供很(hěn)多(duō)←¥₹種處理(lǐ)的(de)方法以,但(dàn)是(shì),™$÷由于Struts建立在JSP的(de)基礎上(shàng),它也(y↓ ě)繼承了(le)一(yī)些(xiē)與JSP相(xiàng)關的(d​<​e)問(wèn)題。在下(xià)一(yī)節中,我們γ™将時(shí)行(xíng)詳細討(tǎ≥¥∞↑o)論。合肥網站(zhàn)建設公司


    ♣ ♠JSP生(shēng)成的(de)代碼存在一(yī)個(gè)主要(yàoπ₩©®)的(de)問(wèn)題,網站(zhàn)設計©£ φ(jì)程序JSP在向輸出流端口寫數(shù)據時(shí)發生(♦≠γ™shēng)了(le)異常錯(cuò)誤,JSP沒有(×∑yǒu)辦法捕捉它,除非手工(gōng)定義特定的(de)錯§"≠₽(cuò)誤句柄。這(zhè)些(xiē)都(dōu)可(kě)能(néng∏α<✘)導緻異常錯(cuò)誤的(de)出現(xiàn)。 JSP在 Ω‌設計(jì)方面還(hái)存在一(yī)個(gè)問(wèn)題,就(jiù§☆×)是(shì)在JSP頁中,JSP隻能(néng)捕Ωσ★捉到(dào)exception類型的(d‌∑e)錯(cuò)誤。如(rú)果在JSP$£♣頁的(de)代碼中出現(xiàn)了(le)另外(→πwài)一(yī)種錯(cuò)誤,如(rε≈σú)out of memory error(內(nèi)存不(bù)足錯→​(cuò)誤),就(jiù)會(huì)出現(xiàn)網頁的(de)錯(₽α‌↑cuò)亂。因為(wèi)它是(shì)基↑ ↔于throw able類型的(de)錯(cuò)誤,而不(b₽‍§<ù)是(shì)exception類型的(de),因此在&​←JSP頁中捕捉這(zhè)種錯(cuò)誤是(shα'≥ì)非常困難的(de)。