FreeMarker 是一個模版引擎,一個基於文本的模板輸出工具(產生任意的HTML表單代碼)。它是一個Java package,面向Java程式員的class library。它本身並不是針對終端使用者的應用,而是允許程式員將其嵌入到他們的產品中。
FreeMarker被設計用來產生HTML Web頁面,特別是基於MVC(Model View Controller)模式的應用程式。使用 MVC 模式作為動態WEB頁面的想法,是為了分隔頁面設計者 (HTML 設計者) 和程式員。.每個人做自己擅長的那一部分。設計者可以不通過程式員的改變或修改代碼來改變網頁的樣子,因為應用邏輯(Java程式)和頁面設計(FreeMarker 模版)是分開的。模板不會被複雜繁瑣的程式架構所破壞。即使當一個項目的程式員和HIMTL頁面的製作者是同一個人時,這種分隔也是很有用,因為這樣有助於保持應用的清晰並易於維護。儘管FreeMarker有一些編程的能力,但它並不是一個象PHP那樣的成熟的程式設計語言。與Java不同的是,Java程式準備用來顯示的資料(如SQL queries),而Freemarker僅是產生文本頁,這個文本頁顯示用於模板的預備資料。FreeMarker 不是一個Web應用程式框架,而更適合充當Web應用程式框架裡的一個組件的角色,但FreeMarker引擎本身對HTTP或servlets並不關心,它僅僅是產生文本。在非Web應用環境中它同樣能夠展示完美的用途。然而值得注意的是:我們為使用FreeMarker提供了方便的解決方案,作為Model2架構(如Struts)的視圖組件,你也可以在模版中使用JSP標籤。FreeMarker是免費的,有BSD-style license。它是由OSI認證的開源軟體。
注釋:1.什麼是Servlet
Servlet是用Java編寫的Server端程式,它與協議和平台無關。Servlet運行於Java-enabled Web Server中。Java Servlet可以動態地擴充Server的能力,並採用請求-響應模式提供Web服務。
最早支援Servlet技術的是JavaSoft的Java Web Server。此後,一些其它的基於Java的Web Server開始支援標準的Servlet API。Servlet的主要功能在於互動式地瀏覽和修改資料,產生動態Web內容。