模板引擎的对比(thymeleaf、freemarker、jsp)

1.Thymeleaf

    特性

      1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

      2.Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

      3. Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

      (目前主流的模板引擎之一,Spring Boot推荐)

    优点:语法简洁,功能强大。

    缺点:性能差。

    使用(SpringBoot+IDEA):

2.FeeMaker

    特性:

      在所有采用网页静态化手段的网站中,FreeMarker使用的比例大大的超过了其他的一些技术。HTML静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以使用FreeMarker将HTML静态化。比如一些网站的公用设置信息,这些信息基本都是可以通过后台来管理并存储在数据库中,这些信息其实会大量的被前台程序调用,每一次调用都会去查询一次数据库,但是这些信息的更新频率又会很小,因此也可以考虑将这部分内容进行后台更新的时候进行静态化,这样就避免了大量的数据库访问请求,提高了网站的性能。

      (目前主流的模板引擎之一)

 

    优点:

      FreeMarker的一个优点在于不能轻易突破模板语言开始编写Java代码,因此降低了领域逻辑漏进视图层的危险几率,也提高了网站的性能。

    缺点:

      需要一点附加配置来将其平稳地集成到应用程序中,一些IDE可能并不完全支持它,当然还有开发者或设计者也许需要学习一门陌生的模板语言。

 

3.JSP

    虽然是一款功能比较强大的模板引擎,并被广大开发者熟悉,但它前后端耦合比较高。比如说前端的html页面还要手动修改成jsp页面,大大加重了工作量,而且动态和静态资源也是耦合性太高。

其次是JSP页面的效率没有HTML高,因为JSP是同步加载。而且JSP需要tomcat,但又不支持nginx等,已经跟不上时代的潮流

性能对比:

模板引擎的对比(thymeleaf、freemarker、jsp)_第1张图片

模板引擎的对比(thymeleaf、freemarker、jsp)_第2张图片 

模板引擎的对比(thymeleaf、freemarker、jsp)_第3张图片 

 发现Thymeleaf性能还是差了一大截的。

spring boot推荐支持,可能因为spring boot是快速开发,而thymeleaf又是原型即页面,所以从理念是接近的,只能这么想了

转载为:https://www.cnblogs.com/ywb-articles/p/10627398.html

              https://www.cnblogs.com/kayen/p/6839830.html

你可能感兴趣的:(面试题)