这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
了解FreeMarker
FreeMarker是一个模板引擎,是一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
核心 template + date-mode = output 。
- 彻底的分离表现层和业务逻辑
- 性能好,提高了开发效率
- 使得开发过程中的人员分工更加明确
- 学习成本低
- 支持表达式、宏定义(类似jsp标签)
FreeMarker的基本语法
- 标量 : 标量是最基本,最简单的数值类型
字符串:表示简单的文本
数字:整数和非整数是不区分的,只有单一的数字类型
布尔值:布尔值代表了逻辑上的对或错(是或否)
日期/时间(日期,时间或日期时间):日期变量可以存储和日期/时间相关的数据
- 容器 :
哈希表:类似于Java中的HashMap,不记录内部元素的顺序,仅仅通过名称来访问数据
序列:类似于Java中的集合List,可以通过下标进行访问,从0开始
集合:从模板设计者角度来看,集合是有限制的序列,不能获取集合的大小,也不能通过索引取出集合中的子变量,但是它们仍然可以通过list指令来遍历。
- 子程序 :
方法和函数
用户自定义指令
FreeMarker的快速入门
什么是页面静态化
- 静态页面
- 静态网页的内容稳定,页面加载速度快。
- 静态网页的没有数据库支持,在网站制作和维护方面的工作量较大。
- 静态网页的交互性差,有很大的局限性。
- 页面静态化适用场景
- 高并发、要求用户响应速度快。
- 适用于大规模且数据变化不太频繁的页面
- 动态页面
- 交互性好。
- 动态网页的信息都需要从数据库中读取,每打开一个一面就需要去获取一次数据库,如果访问人数很多,也就会对服务器增加很大的荷载,从而影响这个网站的运行速度。
快速入门
构建一个maven项目(使用默认模板)
导入FreeMarker的依赖(打开maven仓库去选择使用人数最多的版本)
在maven项目的resource目录下构建一个templates的目录
在templates目录下构建一个welcome的ftl文件并且书写简单的模板内容
在src下新建一个package,并且书写加载ftl并且转换其他文件的类
step1、构建配置类
step2、设置模板存放路径
step3、构建数据模型
step4、加载模板文件
step5、生成Writer输出流
step6、输出文件
step7、关流