`

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标签支持不够好

freemarker
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能非常不错
3、对jsp标签支持良好
4、内置大量常用功能,使用非常方便
5、宏定义(类似jsp标签)非常方便
6、使用表达式语言
缺点:
1、不是官方标准
2、用户群体和第三方标签库没有jsp多

选择freemarker的原因:
1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离
分享到:
评论
1 楼 raymond2006k 2010-12-12  
个人更偏好 Velocity。

我觉得还有个对比点,就是编程方式。

在严格MVC分离模式下(JSP内禁止编写Java代码),JSP 使用 jstl Tag实现基本的控制流程语句,是用控制Tag嵌套显示Tag。 用Tag做了3-4年编程,(我感觉)很痛苦。

而 Velocity 是编程控制语句更自然,更像 Java。

Freemarker 也是Tag指令, 能像Velocity那样就更好了。

相关推荐

    jsp、freemarker、velocity简介和对比

    本文将重点介绍三种常用的Java Web模板引擎:JSP(Java Server Pages)、Freemarker以及Velocity,并对它们进行深入比较。 #### JSP (Java Server Pages) JSP是一种基于Java技术的服务器端动态网页技术,通过在...

    模板:velocity和freemarker的比较

    在 WebWork2 中,我们可以随意选择使用 Freemarker 或 Velocity 作为 View,模板技术作为 View 的好处是很多,尤其和 JSP 比较起来优点更大。 Velocity 和 Freemarker 都是开源的模板技术,它们都提供了强大的功能...

    大型商城网站springmvc+freemarker+velocity+ibatis

    它提供了请求处理、模型绑定、异常处理等功能,并支持多种视图技术,如JSP、Freemarker和Velocity。 2. **Freemarker**: Freemarker是一个模板引擎,用于生成动态HTML或其他文本格式的输出。在本项目中,...

    ftl与jsp比较

    实在是不明白FreeMarker比JSP好在什么地方,在java领域,表现层技术主要有三种:jsp、freemarker、velocity。

    nutz的freemarker视图插件

    - Nutz的MVC模式中,视图层支持多种模板引擎,包括JSP、Velocity、Freemarker等。 2. **Freemarker**: - Freemarker是一个模板语言,它与Java代码分离,使得开发者可以专注于页面布局和设计,而无需关心业务逻辑...

    FreeMarker概述2008

    FreeMarker是一个开源的模板引擎,主要用于生成HTML Web页面,尤其适用于MVC模式的应用程序。...尽管Velocity等其他工具也有其优点,但FreeMarker的广泛特性和强大功能使其在许多场景下成为更优选择。

    Freemarker 实例,Freemarker 实例

    它与JSP、Velocity等技术相似,但更注重于分离业务逻辑和视图层,使得开发者可以专注于设计模板,而不用关心Java代码的实现。下面将详细介绍Freemarker的核心概念、配置、语法以及常见使用场景。 **1. Freemarker...

    JSP页面静态化

    包括使用freemarker和velocity两种技术来实现静态化。压缩包里面的文件有说明文档,说得很仔细,特别适合入门级别的人参考。还有freemarker和velocity开发所需要的jar包和插件。

    Struts2+FreeMarker部署

    此外,Struts2支持多种视图技术,包括JSP、FreeMarker、Velocity等。 **FreeMarker模板引擎** FreeMarker是一个基于模板的语言,它与Java代码分离,使得开发者可以专注于页面的布局和设计,而不必关心业务逻辑。...

    velocity freemarke 模版 静态化 实现

    Velocity和FreeMarker是两种常用的Java模板引擎,它们可以方便地结合JSP(JavaServer Pages)进行动态网页生成,并实现页面静态化。本文将详细介绍如何使用Velocity和FreeMarker模板实现页面静态化,并提供具体的...

    velocity教程

    Velocity与JSP、FreeMarker等其他模板引擎相比,更注重模板语言的简洁性和安全性。与JSP相比,Velocity不鼓励在模板中编写复杂的Java代码,从而降低了出错的可能性和提高了代码的可读性。 总之,Velocity是一个强大...

    jfinal freemarker mysql

    其次,Freemarker则是一个强大的模板引擎,它与JSP、Velocity等模板引擎类似,但更注重于模板的清晰性和简洁性。Freemarker允许开发者将逻辑与视图分离,提高代码的可读性和维护性。在JFinal框架中,Freemarker被...

    spring mvc与velocity整合

    它支持多种视图技术,如JSP、FreeMarker、Velocity等。 **2. Velocity 概述** Velocity是一个基于Java的模板引擎,它的主要目标是提供一个简洁、高效的模板语言,使开发者可以专注于页面布局和设计,而不用关心底层...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    开发者可以通过注解来简化控制器的编写,同时Spring MVC支持多种视图技术,如JSP、FreeMarker、Velocity等。 **Mybatis**:Mybatis是一个轻量级的持久层框架,它解决了Java开发中的数据库操作问题。Mybatis通过XML...

    Velocity--java的模板引擎

    Velocity与JSP、FreeMarker等其他模板引擎相比,有其独特优势。Velocity的语法简洁,更接近自然语言,且由于它不支持脚本,避免了在模板中引入过多的业务逻辑,使得模板更加纯粹。此外,Velocity的性能也相对较高,...

    Velocity介紹

    **Velocity与Freemarker、Thymeleaf比较** Velocity、Freemarker和Thymeleaf都是Java领域的模板引擎,它们各有特点。Freemarker语法更为复杂,但功能更强大;Thymeleaf强调的是XML友好的语法,更适合静态页面的生成...

    Velocity 入门

    - **FreeMarker**: FreeMarker 是另一个流行的 Java 模板引擎,它的语法比 Velocity 更为复杂,但功能更强大,适合复杂的模板逻辑。 - **JSP**: JSP 也是常见的视图技术,但它的动态代码嵌入到 HTML 中,易引发维护...

    利用freemarker制作的diamante生成器

    它与JSP、Velocity等类似,但更专注于视图层,使得开发者可以将业务逻辑与视图分离,实现MVC设计模式。Freemarker模板语言(.ftl文件)具有丰富的语法,可以用来控制流程、进行条件判断、循环等,非常灵活。 2. **...

    fis3-uap:基于FIS3,封装以JAVA为后端,velocity、JSP、FreeMarker为模板的UAP前端解决方案

    UAP基于FIS3,封装以JAVA为后端,velocity、JSP、FreeMarker为模板的UAP前端解决方案安装npm install fis3 uap -g使用开发 uap release生产 uap release prod

    FreeMarker手册

    比如,它会比较FreeMarker和其他模板引擎(如JSP和Velocity)的不同,并解释为什么FreeMarker对null值和不存在的变量敏感,并提供处理方法。此外,FAQ部分还会解答关于数字格式、小数和分组分隔符号显示问题,以及...

Global site tag (gtag.js) - Google Analytics