Freemarker 实现页面静态化主要步骤:
1.导入相关的 jar 包,我用 servlet 做的,只需要导入一个 freemarker.jar
2.导入 2 个工具类 DirectoryFilter 和 FreeMarkertUtil,DirectoryFilter(它实现了文件过
滤器那个接口 FilenameFilter)这个工具类主要是为了判断是否已经生成了特定的 html
文件的 java 类(用处不大),FreeMarkertUtil 封装 freemarker 用于创建模板和加载模
板。里面还包含了初始化模版的一个方法。
3.把这些工具类和 jar 包导入就正常的写自己的工程。
4,配置 web.xml,load-on-startup 中的数字越小,他的优先级越高。
Web.xml 配置:
<servlet>
<servlet-name>Index</servlet-name>
<servlet-class>com.baidu.servlet.Index</servlet-
class>
<init-param>
<param-name>templateDir</param-name><!-- 模板存放位置,
是基于app 的根目录的 -->
<param-value>/templates</param-value>
</init-param>
<load-on-startup>3</load-on-startup><!-- 为了启动的时候初始
化模板配置 -->
</servlet>
<servlet-mapping>
<servlet-name>Index</servlet-name>
<url-pattern>/Index.do</url-pattern>
</servlet-mapping>
5,在 servlet 中首先要初始化,调用工具类中 init 方法初始模板位置和为了保证模板实
例 唯 一 , 设 置 一 个 html 生 成 之 后 要 放 的 路 径
‘path=reauest.getsession.getservletcontext.getrealpath(“设置一个路径,前面是获取当前
运行文件在服务器的路径”)’,servlet 源码:
package com.baidu.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;