它是一个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 Servlet运行于Java-enabled Web Server中。 Java Servlet 可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。 最早支持Servlet技术的是JavaSoft的Java Web Server 。此后,一些其它的基于Java的Web Server开始支持标准的