什么是页面静态化呢,为什么需要页面静态化。首先我们先来看看什么是动态页面,什么是静态页面。
-
动态页面和静态页面
1.静态页面是指页面写好之后,页面中展示的内容不会随着时间的推移或者后台数据库操作而发生改变。比如:html
2.动态页面是指页面写好之后,页面中展示的内容可以通过后台数据库的操作而发生改变,比如:jsp -
页面静态化
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
目前企业中:主要用Freemarker做静态页面或是页面展示。
页面静态化是以空间换时间的方式,在添加和修改对象时就生成静态页面,访问时实际访问的是一个静态页面。这样就不用频繁的从数据库查询数据了,减轻数据库服务器的压力。同时,静态页面的加载速度比动态页面更快,可以增强用户的体验。 -
如何使用FreeMarker实现页面静态化
第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对应的版本号。Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
第二步:设置模板文件的默认加载路径
File file = new File(path); configuration.setDirectoryForTemplateLoading(file);
第三步**:设置模板文件使用的字符集。一般就是utf-8
configuration.setDefaultEncoding("utf-8");
第四步:通过configuration对象获取一个模板对象。
Template template = configuration.getTemplate("hello.ftl");
第五步:创建一个模板使用的数据集,可以是对象也可以是Map。一般是Map。
Map dataModel = new HashMap<>();
向数据集中添加数据
dataModel.put("hello", "this is my first freemarker test.");
第六步:创建输出流,创建一个Writer对象,一般创建一个FileWriter对象,指定生成的文件名。
String fileName = System.currentTimeMillis()+suffix; File file2 = new File(file,fileName); out = new FileWriter(file2);
第七步:调用模板对象的process方法输出文件。
template.process(dataModel, out);
第八步:关闭流。
out.close();