浅谈Jsp、Freemarker、Velocity区别

Java领域,表现层技术主要有三种:jsp、freemarker、velocity。 jsp是大家最熟悉的技术 优点: 1、功能强大,可以写java代码 2、支持jsp标签(jsp tag) 3、支持表达式语言(el) 4、官方标准,用户群广,丰富的第三方jsp标签库 5、性能良好。jsp编译成class文件执行,有很好的性能表现 缺点: jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。 velocity是较早出现的用于代替jsp的模板语言 优点: 1、不能编写java代码,可以实现严格的mvc分离 2、性能良好,据说比jsp性能还要好些 3、使用表达式语言,据说jsp的表达式语言就是学velocity的 缺点: 1、不是官方标准 2、用户群体和第三方标签库没有jsp多。 3、对jsp标签支持不够好…

Continue Reading →

模板引擎 FreeMarker

概念 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。它是为Java程序员提供的一个开发包。它不是面向最终用户的,而是为程序员提供的一款可以嵌入他们所开发产品的应用程序。 介绍 那么,FreeMarker是一款怎样的工具呢?FreeMarker实际上是被设计用来生成HTML Web页面,尤其是通过实现了基于MVC模式的Java Servlet应用程序。使用MVC模式的动态页面的设计构思使得你可以将前端设计师从程序员中分离出来。所有人各司其职,发挥其最擅长的一面。 网页设计师可以改写页面的显示效果而不受程序员编译代码的影响,因为应该程序的逻辑和页面设计已经被分开了。页面模板代码不会收到复杂程序代码的影响。这种分离的思想即便对一个程序员和页面设计师是同一个人的项目来说也都是非常有用的,因为分离使得代码保持简洁而且易于维护。 尽管FreeMarker也拥有一些编程能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)。 FreeMarker不是一个Web应用框架,而适合作为Web应用框架的一个组件,但是FreeMarker引擎本身并不知道HTTP协议或Java Servlet的存在。它仅仅来生成文本内容。既然是这样,它也非常适用于非Web应用程序的开发环境。知识要注意的是,我们使用FreeMarker作为视图层的组件,是为了给诸如Struts这样的Model2应用框架提供现成的解决方案,你也可以在模板中使用JSP标记库。 特性 通用目标 易于嵌入到你的产品中,轻量级,不需要Servlet环境 能够生成各种文本:HTML、XML、RTF、Java源代码等等 插件式模板载入器,可以从任何源载入模板,如本地文件、数据库等等 你可按自己所需生成文本,保存到本地文件,作为Email发送,从Web应用程序发送它返回给Web浏览器 强大的模板语言 在模板中创建和改变变量 命名的宏,可以具有位置参数和嵌套内容 几乎在任何地方都可以使用复杂表达式来指定值…

Continue Reading →