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