上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
8.1 模板引擎技术介绍
随着技术的发展,JSP+Servlet的开发方式渐渐无法完全满足业务需求。一个中小型项目全部使用JSP+Servlet进行开发和维护,其成本会很高。至于大型项目,以此开发简直就是一场灾难,其开发成本、迭代成本、维护成本将会更高。
真正的企业应用开发有几个比较重要的关注点:代码复用、标准化、可维护性、开发成本。而JSP+Servlet的封装和抽象程度与框架技术相比毫无优势可言。业务的增长需求也反向驱动着技术的进步,间接催生出很多JSP+Servlet的替代方案和封装度更好的技术框架。以JSP为例,在前端渲染技术选型上,出现了Thymeleaf、FreeMarker、Velocity等模板引擎技术作为替代方案。
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户看到的页面与业务数据分离而产生的一种模板技术。它可以生成特定格式的文档,用于网站的模板引擎就会生产出标准的HTML静态页面内容。在Java Web开发技术栈中,常见的模板引擎有FreeMarker、Velocity、Thymeleaf等。JSP也可以理解为一种模板引擎技术。
模板引擎的工作原理如图8-1所示。
图8-1 模板引擎的工作原理
使用模板引擎技术可以动态加载数据。在开发过程中,开发人员首先需要制作出模板引擎文件(不同的模板引擎技术的规范不同),并在控制器中将模板需要的数据组装好,然后将二者都交给模板引擎,模板引擎会根据数据和模板表达式语法解析并填充其到指定的位置进行页面渲染,最终生成HTML内容响应给客户端。