現(xiàn)在更多的網(wǎng)站制作采用一種 MVC 模式,也就是將網(wǎng)站制作工作分工,分別為M(Model, 模型),V(View 視圖),C(Controller 控制器).
M(Model, 模型)也就是后臺(tái)的事務(wù)邏輯,真正處理事務(wù)的代碼,商業(yè)邏輯等等。他們是整個(gè)網(wǎng)站最重要的工作部分,通常這部分代碼相對(duì)來說比較穩(wěn)定,不經(jīng)常變動(dòng),就是有所變動(dòng)也不會(huì)對(duì)前端的頁面有什么影響。
V(View 視圖): 也就是網(wǎng)頁的顯示部分,這個(gè)部分接受來自后臺(tái)程序的結(jié)果或數(shù)據(jù),進(jìn)行顯示,但是這個(gè)部分通常是變化比較大的部分,比如網(wǎng)站的界面更新是經(jīng)常要要作的事情,每隔一段時(shí)間更新網(wǎng)頁風(fēng)格就會(huì)造成 View 視圖部分的大量更改工作。
C(Controller 控制器). 在視圖和模型之間傳遞控制,并根據(jù)要求調(diào)用相應(yīng)的視圖顯示模型返回的數(shù)據(jù),主要負(fù)責(zé)調(diào)度工作。
這種職責(zé)的分工到底有什么好處呢,它簡化了軟件開發(fā)過程中所有相關(guān)人員的工作, 使得不同的部分的修改通常不會(huì)影響的其他部分的工作,比如,我修改了后臺(tái)某些程序的算法,并不影響前臺(tái)的頁面顯示,前臺(tái)頁面修改不影響后臺(tái)程序的開發(fā)。這種分工合作比起 jsp 混淆代碼邏輯和顯示層的做法要好的多。
所以越來越多的國外程序員在不斷提出替代 jsp 的方案,在眾多方案中, 一種基于 java 模板引擎的技術(shù)脫穎而出,最為著名的是 Velocity 和 Webmacro 兩種模板技術(shù)。
模板引擎的設(shè)計(jì)思想最早是有 webmacro 提出的, 后來應(yīng)用在一個(gè)著名的搜索引擎 www.altavista.com 上, 這種思想漸漸被 Apache 開發(fā)小組所采用,并作為一個(gè)子項(xiàng)目被提出來,這就是現(xiàn)在的 Velocity。模板引擎與MVC中視圖這一部分的關(guān)系更為密切。它是經(jīng)常作為一種 jsp 的替代技術(shù)出現(xiàn)在國外的一些論壇上的。但是 Velocity 可以應(yīng)用在任何需要格式化數(shù)據(jù)顯示的 java 程序中。
那么 Velocity 到底是什么呢?它的官方解釋是: "Velocity 是一種基于 java 的模板引擎,它允許任何人使用簡單而強(qiáng)大的模板語言來引用定義在 java 代碼中的對(duì)象"
你可能因?yàn)橄旅鎺追N原因而使用 Velocity: 1:它很容易集成在各種各樣的程序領(lǐng)域中。 2:它為網(wǎng)頁制作人員提供了一種清晰而又簡單的語法 3:因?yàn)槟0搴痛a是分離的,所以你可以分別獨(dú)立的開發(fā)和維護(hù)它們。 4:Velocity 引擎可以很容易的集成到一些 Java 運(yùn)行環(huán)境,特別是 Servlet. 5:Velocity 使得模板可以訪問任何環(huán)境對(duì)象中的共有方法。
Velocity 的強(qiáng)大之處在于它嚴(yán)格的區(qū)分程序開發(fā)功能的職責(zé)劃分。 它限制模板可能訪問的對(duì)象(也就是后臺(tái)程序允許它得到的對(duì)象)來實(shí)現(xiàn)這一點(diǎn)。這意味著,網(wǎng)頁設(shè)計(jì)人員可以只把精力放在數(shù)據(jù)的顯示部分(View 視圖)而程序員則只要關(guān)注如何寫好程序的控制層(Controller,控制器)和商業(yè)邏輯和數(shù)據(jù)管理(模型 Model), 這就是 MVC 開發(fā)模式。MVC 現(xiàn)在已經(jīng)是廣泛接受的一種開發(fā)模式,它簡化了開發(fā)和日益復(fù)雜的應(yīng)用和維護(hù)工作。
Velocity 最擅長做哪些方面的工作呢? 1: 基于 servlet 的網(wǎng)站制作 2: Java 和 Sql 代碼生成 3: XML 處理和轉(zhuǎn)換 4: 文字處理,比如生成 TRF 文件。
不過 Velocity 用的最多的還是在基于 Java servlet 的網(wǎng)頁程序中作生成網(wǎng)頁的引擎,以替代 JSP 等技術(shù)。 除了比較容易使用外, 它提供了強(qiáng)大的模板語言以顯示和操作數(shù)據(jù),但是不是生成數(shù)據(jù),這點(diǎn)很重要, 因?yàn)檫@個(gè)工作應(yīng)該是程序邏輯的部分。 Velocity 非常適合在 J2EE (Java 2 Platform, Enterprise Edition) 的網(wǎng)站開發(fā)中充當(dāng)替代 jsp 做輸出頁面的技術(shù)工作,雖然 JSP 包含在 j2ee 的規(guī)范中,其實(shí) j2ee 本身并不需要 jsp .
出處:牧羊人手記
責(zé)任編輯:藍(lán)色
上一頁 引言 下一頁 Velocity 如何工作?
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|