jsp、freemarker、velocity、thymeleaf模板引擎优缺点
1、概述
在java领域,表现层技术主要有三种,
(1)jsp;
(2)freemarker;
(3)velocity;
(4)thymeleaf;
2、jsp
优点:
1、功能强⼤,可以写java代码
2、⽀持jsp标签(jsp tag)
3、⽀持表达式语⾔(el)
4、官⽅标准,⽤户⼴,丰富的第三⽅jsp标签库
5、性能良好。jsp编译成class⽂件执⾏,有很好的性能表现
缺点:
jsp没有明显缺点,⾮要挑点⾻头那就是,由于可以编写java代码,如使⽤不当容易破坏mvc结构。
3、freemarker
FreeMarker是⼀个⽤Java语⾔编写的模板引擎,它基于模板来⽣成⽂本输出。FreeMarker与Web容器⽆关,即在Web运⾏时,它并不知道Servlet或HTTP。它不仅可以⽤作表现层的实现技术,⽽且还可以⽤于⽣成XML,JSP或Java 等。
⽬前企业中:主要⽤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标签
thymeleaf用法
5、可以实现严格的mvc分离
4、velocity
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能良好,据说⽐jsp性能还要好些
3、使⽤表达式语⾔,据说jsp的表达式语⾔就是学velocity的
缺点:
1、不是官⽅标准
2、⽤户体和第三⽅标签库没有jsp多。
3、对jsp标签⽀持不够好
5、thymeleaf
Thymeleaf是个XML/XHTML/HTML5模板引擎,可以⽤于Web与⾮Web应⽤。
Thymeleaf的主要⽬标在于提供⼀种可被浏览器正确显⽰的、格式良好的模板创建⽅式,因此也可以⽤作静态建模。你可以使⽤它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(⽂档对象模型)上执⾏预先制定好的逻辑。Thymeleaf的可扩展性也⾮常棒。你可以使⽤它定义⾃⼰的模板属性集合,这样就可以计算⾃定义表达式并使⽤⾃定义逻辑。这意味着Thymeleaf还可以作为模板引擎框架。
thymeleaf优点:静态html嵌⼊标签属性,浏览器可以直接打开模板⽂件,便于前后端联调。springboot官⽅推荐⽅案。thymeleaf缺点:模板必须符合xml规范,就这⼀点就可以判死刑!太不⽅便了!js脚本必须加⼊/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。