FreeMarker比JSP好在什么地方

(一)FreeMarker(根据提供的数据和创建好的模板,去自动的创建html静态页面(基于模板来生成文本输出)

        FreeMarker是一款模板引擎 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文

件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件

       模板编写为FreeMarker Template Language (FTL),在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于

要展示什么数据(而FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,并没有被绑定到

Servlet或HTML或任意Web相关的东西上,也可以用于非Web应用环境中)这种方式通常被称为 MVC (模型、视图、控制器) 模

式,对于动态网页来说,是一种特别流行的模式(帮助从开发人员中分离出网页设计师(HTML设计师),即设计师无需面对模板中

的复杂逻辑, 在没有程序员来修改或重新编译代码时,也可以修改页面的样式)

       放在电商项目中的话,比如说商品详情页面,为了减少数据库的压力,提高用户体验度,我们想到了如果直接把商品详情页

面准备好,那么久不需要在去数据库查找,节约了大量的资源(freemarker就是起到了这么一个作用,每增加一个商品就自动生

成一个静态页面,保存到web层中)

 

(二)表现层技术比较(在java领域,表现层技术主要有三种:jsp、freemarker、velocity

    1、jsp是大家最熟悉的技术

       (1)优点:1、功能强大,可以写java代码、2、支持jsp标签(jsp tag)、3、支持表达式语言(el)、4、官方标准,用户

群广,丰富的第三方jsp标签库、5、性能良好。jsp编译成class文件执行,有很好的性能表现

       (2)缺点:jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构

    2、velocity是较早出现的用于代替jsp的模板语言

        (1)优点:1、不能编写java代码,可以实现严格的mvc分离、2、性能良好,据说比jsp性能还要好些、3、使用表达式语

言,据说jsp的表达式语言就是学velocity的

       (1)缺点:1、不是官方标准、2、用户群体和第三方标签库没有jsp多、3、对jsp标签支持不够好

     3、freemarker

       (1)优点:1、不能编写java代码,可以实现严格的mvc分离、2、性能非常不错、3、对jsp标签支持良好、4、内置大量常

用功能,使用非常方便、5、宏定义(类似jsp标签)非常方便、6、使用表达式语言

        (2)缺点:1、不是官方标准、2、用户群体和第三方标签库没有jsp多

     选择freemarker的原因:

         1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但

是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。

         2、宏定义比jsp tag方便

         3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便

         4、支持jsp标签

         5、可以实现严格的mvc分离

你可能感兴趣的:(Java,EE)