概述:
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。模板引擎不属于特定技术领域,它是跨领域跨平台的概念。在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。
html 页面就是个字符串,模板引擎就是给了你模板引擎自定义的语法,用来对这个字符串进行变量 /表达式的替换最后还是得到 html 的字符串。
前端模板就是这个替换操作在浏览器用 js 执行,比如 react,vue,不过它们不仅仅是模板。后端模板就是替换操作在后端执行。
前端替换叫前端渲染,后端替换叫后端渲染,你也可以后端渲染完生成 html 给前端,前端拿到这个 html 再做一次替换。
html,css,js 都是浏览器的事,所以后端模板引擎和这三者都不存在替代关系。
jsp 也算是模板引擎,和 thymeleaf 就是语法 /性能 /其他功能强弱有无的区别,反正模板引擎做的事基本上都是输入模板+变量,输出 html 字符串,有些加个缓存。
通过 cdn 引入 js,css 绝大部分时候不会导致加载变慢,浏览器会并行下载它们。
传统的页面开发过程中通常采用的HTML + JS技术,而现在大部分网站都采用标签化+ 模块化的设计 。模板引擎其实就是根据这种方式,使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档在原有的HTML页面中来填充数据。最终达到渲染页面的目的。说人话就是,把数据和页面整合在一起的技术。
模板是为了将显示与数据分离,模板技术多种多样,但其本质都是将模板文件和数据通过模板引擎生成最终的 HTML代码。
总结:
模板引擎有哪些:jsp、Velocity、FreeMarker、Thymleaf、Beetl、Enjoy。
jsp:是spring boot 官方是不推荐的,原因有三:在tomcat上,jsp不能在嵌套的tomcat容器解析即不能在打包成可执行的jar的情况下解析;Jetty 嵌套的容器不支持jsp;Undertow。
velocity:是较早出现的用于代替jsp的模板语言。官网:http://velocity.apache.org/
FreeMarker:是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等,在spring4.0中推荐使用thymeleaf来做前端模版引擎。官网:https://freemarker.apache.org/
Thymeleaf :是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。官网:https://www.thymeleaf.org/
Beetl:国产模板引擎,Beetl 类似 Javascript 语法和习俗,只要半小时就能通过半学半猜完全掌握用法。官方号称速度非常的快:Beetl 远超过主流 java 模板引擎性能(引擎性能5-6倍与 freemaker,2倍于JSP)。官网:http://ibeetl.com/
Enjoy:JFinal 极速开发框架出品的模板引擎,没大了解,有兴趣自己看下。官网:http://www.jfinal.com/
参考https://www.jianshu.com/p/974604f404bd