JSP程序的代碼生成問題解析
JSP是Java Server Papes(Java服務(wù)器系統(tǒng)頁面)的縮寫,它是由Sun Microsystems公司倡導(dǎo)的、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),其在動態(tài)網(wǎng)頁的創(chuàng)建中有強大而特殊的功能,就是JavaServer Pages(JSP)是一種實現(xiàn)普通靜態(tài)HTML和動態(tài)HTML混合編碼的技術(shù)。在 Sun正式發(fā)布Java server pages之后,一這種新的Web應(yīng)用開發(fā)技術(shù)很快便引起了人們的關(guān)注。Java server pages為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨特的開發(fā)環(huán)境。網(wǎng)站建設(shè)程序Velocity只是裝入模板,將模板解析一次,然后存儲為抽象語法樹。抽象語法樹代表在內(nèi)存的模板,這秀色可餐以一次一次地重復(fù)使用,這個過程只是簡單的“編程>解析>運行”。這樣做的好處是顯而易見的。使用Velocityt模板將明顯地提高速度,同時還減少了對javac編程器和其它臨時目錄的需求。在Velocity過程中,如果模板發(fā)生了變化,存在緩沖存儲器中的模板將被最新解析生成的版本替換掉,從而保證了正確性。
Velocity使用方法的另一個好處在于,網(wǎng)站制作實際的模板數(shù)據(jù)可以存儲任何地方,包括數(shù)據(jù)庫和遠(yuǎn)程主機,通過對模板載入器時行配置,可以創(chuàng)建一個完全個性化的、滿足自己需要的模板載入器。類似slrurs和turbine這樣的框架軟件都會有很多處理錯誤的恰當(dāng)方法。即使沒有turbine,Velocity也可以提供很多種處理的方法以,但是,由于Struts建立在JSP的基礎(chǔ)上,它也繼承了一些與JSP相關(guān)的問題。在下一節(jié)中,我們將時行詳細(xì)討論。合肥網(wǎng)站建設(shè)公司
JSP生成的代碼存在一個主要的問題,網(wǎng)站設(shè)計程序JSP在向輸出流端口寫數(shù)據(jù)時發(fā)生了異常錯誤,JSP沒有辦法捕捉它,除非手工定義特定的錯誤句柄。這些都可能導(dǎo)致異常錯誤的出現(xiàn)。 JSP在設(shè)計方面還存在一個問題,就是在JSP頁中,JSP只能捕捉到exception類型的錯誤。如果在JSP頁的代碼中出現(xiàn)了另外一種錯誤,如out of memory error(內(nèi)存不足錯誤),就會出現(xiàn)網(wǎng)頁的錯亂。因為它是基于throw able類型的錯誤,而不是exception類型的,因此在JSP頁中捕捉這種錯誤是非常困難的。