前提条件:
在WEB-INF下建立templates文件夹,存放模板文件
首先建立index.tpl文件
<html> <body> ${message} </body> </html>
下面是加载freemarker进行模板渲染输出
package main; import java.io.IOException; import java.io.Writer; import java.util.HashMap; import java.util.Locale; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; /** * Servlet implementation class Hello */ @WebServlet("/Hello") public class Hello extends HttpServlet { private static final long serialVersionUID = 1L; private Configuration cfg = null; @Override public void init(){ //初始化freemarker环境 cfg = new Configuration(); //加载模板 cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates"); //设置模板更新时间,本地调试时设置为0 cfg.setTemplateUpdateDelay(0); //设置默认输出字符集 cfg.setOutputEncoding("UTF-8"); } public Hello() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Template t = cfg.getTemplate("index.tpl"); response.setContentType("text/html; charset=" + cfg.getOutputEncoding()); Writer out = response.getWriter(); Map root = new HashMap(); root.put("message", "hello world!"); try { t.process(root, out); } catch (TemplateException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }