一、网页静态化
- 什么是网页静态化技术:
- 随着用户访问量以及数据量的增大,网页静态化技术方案如今越来越流行。
- 什么是网页静态化技术呢?简单来说就是将网页以纯静态方式的形式展现。
- 网页静态化技术与缓存技术的比较:
- 缓存技术适用于小规模的数据。以及一些经常变动的数据。
- 网页静态化技术适用于大规模但是变化不太频繁的数据。
- 网页静态化技术的应用场景:
- 新闻门户网站的文章类型频道一般都用到了网页静态化技术。点击新闻直接会跳到静态化的页面。
- 电商网站的商品详情页也十分常用,我们在存储商品的时候会生成静态化页面,点击商品详情,会直接跳到生成的商品详情的静态化页面。
- 此外网页静态化技术可以结合Nginx这种高性能web服务器来提高并发访问量。
二、什么是FreeMarker
- FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出【相当于照片底片,有了底片可以洗出无数张照片】。
- FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。
- 它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
三、FreeMarker的使用
<!--Freemarker的jar包-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
四、原理
五、最简单的FreeMarker测试

- FreeMarkerTest.java
package cn.e3mall.freemarker;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
/**
* @author Mr.Li
* @version 1.0
* @Description:
* @Modified By:
* @date 2018/12/15 20:08
*/
public class FreeMarkerTest {
@Test
public void testFreeMarker() throws Exception{
//创建一个模板文件
//创建一个Configuration对象,并设置当前FreeMarker的版本号
Configuration configuration=new Configuration(Configuration.getVersion());
//设置模板文件保存的目录
configuration.setDirectoryForTemplateLoading(new File("F:\\IDEA\\WestosShopping\\e3-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
//模板文件的编码格式,一般是UTF-8
configuration.setDefaultEncoding("utf-8");
//加载模板文件,创建一个模板对象
Template template = configuration.getTemplate("hello.ftl");
//创建一个数据集,可以使Pojo也可以是Map,推荐使用Map
Map data=new HashMap<>();
data.put("hello","hello FreeMarker ! ! !");
//创建一个Writer对象,指定输出文件的路径以及文件名
Writer out=new FileWriter(new File("F:\\JavaEE32\\freemarker\\hello.txt"));
//生成静态页面
template.process(data,out);
//关闭流
out.close();
}
}
${hello}