從另一個(gè)角度來(lái)看,網(wǎng)站建設(shè)程序Velocity只是裝入模板,將模板解析一次,然后存儲(chǔ)為抽象語(yǔ)法樹(shù)。抽象語(yǔ)法樹(shù)代表在內(nèi)存的模板,這秀色可餐以一次一次地重復(fù)使用,這個(gè)過(guò)程只是簡(jiǎn)單的“編程>解析>運(yùn)行”。這樣做的好處是顯而易見(jiàn)的。使用Velocityt模板將明顯地提高速度,同時(shí)還減少了對(duì)javac編程器和其它臨時(shí)目錄的需求。在Velocity過(guò)程中,如果模板發(fā)生了變化,存在緩沖存儲(chǔ)器中的模板將被最新解析生成的版本替換掉,從而保證了正確性。
Velocity使用方法的另一個(gè)好處在于,網(wǎng)站制作實(shí)際的模板數(shù)據(jù)可以存儲(chǔ)任何地方,包括數(shù)據(jù)庫(kù)和遠(yuǎn)程主機(jī),通過(guò)對(duì)模板載入器時(shí)行配置,可以創(chuàng)建一個(gè)完全個(gè)性化的、滿足自己需要的模板載入器。
類似slrurs和turbine這樣的框架軟件都會(huì)有很多處理錯(cuò)誤的恰當(dāng)方法。即使沒(méi)有turbine,Velocity也可以提供很多種處理的方法以,但是,由于Struts建立在JSP的基礎(chǔ)上,它也繼承了一些與JSP相關(guān)的問(wèn)題。在下一節(jié)中,我們將時(shí)行詳細(xì)討論。
JSP生成的代碼存在一個(gè)主要的問(wèn)題,網(wǎng)站設(shè)計(jì)程序JSP在向輸出流端口寫數(shù)據(jù)時(shí)發(fā)生了異常錯(cuò)誤,JSP沒(méi)有辦法捕捉它,除非手工定義特定的錯(cuò)誤句柄。這些都可能導(dǎo)致異常錯(cuò)誤的出現(xiàn)。
JSP在設(shè)計(jì)方面還存在一個(gè)問(wèn)題,就是在JSP頁(yè)中,JSP只能捕捉到exception類型的錯(cuò)誤。如果在JSP頁(yè)的代碼中出現(xiàn)了另外一種錯(cuò)誤,如out of memory error(內(nèi)存不足錯(cuò)誤),就會(huì)出現(xiàn)網(wǎng)頁(yè)的錯(cuò)亂。因?yàn)樗腔趖hrow able類型的錯(cuò)誤,而不是exception類型的,因此在JSP頁(yè)中捕捉這種錯(cuò)誤是非常困難的。
在連續(xù)地向輸出端口定數(shù)據(jù)時(shí),緩沖也是一個(gè)重要的問(wèn)題。在下面的例子中,這兩行代碼要JSP向緩沖寫12KB的數(shù)據(jù),并且將網(wǎng)站建設(shè)的auto flush參數(shù)打開(kāi)。Struts+JSP可以提供JSP模板作為“視圖”部分,從而實(shí)現(xiàn)了MVC模型,那么代碼中的哪些標(biāo)記應(yīng)該屬于MVC模型中的哪一部分呢?
Velocity使用方法的另一個(gè)好處在于,網(wǎng)站制作實(shí)際的模板數(shù)據(jù)可以存儲(chǔ)任何地方,包括數(shù)據(jù)庫(kù)和遠(yuǎn)程主機(jī),通過(guò)對(duì)模板載入器時(shí)行配置,可以創(chuàng)建一個(gè)完全個(gè)性化的、滿足自己需要的模板載入器。
類似slrurs和turbine這樣的框架軟件都會(huì)有很多處理錯(cuò)誤的恰當(dāng)方法。即使沒(méi)有turbine,Velocity也可以提供很多種處理的方法以,但是,由于Struts建立在JSP的基礎(chǔ)上,它也繼承了一些與JSP相關(guān)的問(wèn)題。在下一節(jié)中,我們將時(shí)行詳細(xì)討論。
JSP生成的代碼存在一個(gè)主要的問(wèn)題,網(wǎng)站設(shè)計(jì)程序JSP在向輸出流端口寫數(shù)據(jù)時(shí)發(fā)生了異常錯(cuò)誤,JSP沒(méi)有辦法捕捉它,除非手工定義特定的錯(cuò)誤句柄。這些都可能導(dǎo)致異常錯(cuò)誤的出現(xiàn)。
JSP在設(shè)計(jì)方面還存在一個(gè)問(wèn)題,就是在JSP頁(yè)中,JSP只能捕捉到exception類型的錯(cuò)誤。如果在JSP頁(yè)的代碼中出現(xiàn)了另外一種錯(cuò)誤,如out of memory error(內(nèi)存不足錯(cuò)誤),就會(huì)出現(xiàn)網(wǎng)頁(yè)的錯(cuò)亂。因?yàn)樗腔趖hrow able類型的錯(cuò)誤,而不是exception類型的,因此在JSP頁(yè)中捕捉這種錯(cuò)誤是非常困難的。
在連續(xù)地向輸出端口定數(shù)據(jù)時(shí),緩沖也是一個(gè)重要的問(wèn)題。在下面的例子中,這兩行代碼要JSP向緩沖寫12KB的數(shù)據(jù),并且將網(wǎng)站建設(shè)的auto flush參數(shù)打開(kāi)。Struts+JSP可以提供JSP模板作為“視圖”部分,從而實(shí)現(xiàn)了MVC模型,那么代碼中的哪些標(biāo)記應(yīng)該屬于MVC模型中的哪一部分呢?