新聞資訊

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

     JSP是(shì)Java Server Papes(Ja←va服務器(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ìn≤g)态HTML和(hé)動态HTML混合編碼的(de)技(jì)術(shù)。在 Sun正式發布Java s¶erver pages之後,一(yī)這(zhè)種新的(de)Web應用(yòng)開(kāi)發技(jì)術(s≥hù)很(hěn)快(kuài)便引起了(le)人(rén)們的(de)關注。Java server pages為(wèi)創建高(gāo)度動态的(de)W​eb應用(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íng)顯地(dì)提高(g"āo)速度,同時(shí)還(hái)減少(shǎo)了(le)對(duì)javac編程器(qì)和(hé)其它臨時(shí)目錄的(de)需求。在Veloαcity過程中,如(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ò)實際的(de)模闆數(shù)據可(kě)以存儲任何地(dì)方,包括數(®shù)據庫和(hé)遠(yuǎn)程主機(jī),通(tōng)過對(duì)模闆載入器(qì)時(shí)行(xíng)配置,可(kě)以創建一(yī)個(gè)完全個(g™è)性化(huà)的(de)、滿足自(zì)己需要(yào)的(de)模闆載入器(qì)。類似slru₽rs和(hé)turbine這(zhè)樣的(de)框架軟件(jiàn)都(dōu)會(huì)有(yǒu)很(hěn)多(duō)處理(lǐ)錯(cuò)誤的(de)恰當方法。即使沒有(yǒu)t‌urbine,Velocity也(yě)可(kě)以提供很(hěn)多(duō)種處理(lǐ)的(de)方法以,但(dàn)是(shì),由于Struts建立在JSP的(deγ)基礎上(shàng),它也(yě)繼承了(le)一(yī)些(xiē)與JSP相(xiàng)關的(de)問(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ì)程序JS​P在向輸出流端口寫數(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類型&的(de)錯(cuò)誤。如(rú)果在JSP頁的(de)代碼中出現(xiàn)了(le)另外(wài)一(yī)種錯(cuò)誤,如(rú)out of me×mory error(內(nèi)存不(bù)足錯(cuò)誤),就(jiù)會(huì)出現(xiàn)網頁的(de)錯(cuò)亂。因為(wèi)它是(shì)基于thr≈ow able類型的(de)錯(cuò)誤,而不(bù)是(shì)exception類型的(de),因此在JSP頁中捕捉這(zhè)種錯(cuò)誤是(shì)非常困‌難的(de)。