新建一个web项目,在WebContent下(即WEB-INF的上级目录下)建立一个template文件。新建一个test.rj文件
<html>
<head>
<title>测试</title>
</head>
<body>
<span style="color:#FF0000;font-family:微软雅黑;">${user}</span>
</body>
</html>
然后新建一个servlet
package com.xuzengqiang.freemarker.action;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
@SuppressWarnings("all")
public class FreemarkerServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Configuration cfg= new Configuration();
cfg.setServletContextForTemplateLoading(this.getServletContext(),"template");
cfg.setObjectWrapper(new DefaultObjectWrapper());
Map root=new HashMap();
root.put("user","xuzengqiang");
Template temp=cfg.getTemplate("test.rj");
PrintWriter out=response.getWriter();
try
{
temp.process(root, out);
}
catch(Exception e)
{
e.printStackTrace();
}
out.flush();
out.close();
}
}
新建一个页面index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>freemarker测试</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/doFreemarkerServlet">链接</a>
</body>
</html>
在web.xml中配置相应的servlet信息。然后点击链接即可跳转到rj文件生成的页面打印xuzengqiang。