首先到freemark官方网站里面去下载源程序和jar包,里面有demo程序和文档。
这个具体怎么操作我就不讲了。
下面是源程序的包的内容
下面是程序基本情况
下面来看一下servlet
package example; import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import freemarker.template.*; public class HelloServlet extends HttpServlet { private Configuration cfg; public void init() { // Prepare the FreeMarker configuration; // - Load templates from the WEB-INF/templates directory of the Web app. cfg = Configuration.getDefaultConfiguration(); cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates"); } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 给模板里面设置内容 Map root = new HashMap(); root.put("message", "Hello World!"); //拿到模板对象 Template t = cfg.getTemplate("test.ftl"); Writer out = new BufferedWriter(new OutputStreamWriter(resp.getOutputStream(), t.getEncoding())); resp.setContentType("text/html; charset=" + t.getEncoding()); try { t.process(root, out); out.flush(); } catch (TemplateException e) { throw new ServletException("Error while processing FreeMarker template", e); } } }
下面是web.xml的配置
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>FreeMarker Example Web Application 1</display-name> <servlet> <servlet-name>hello</servlet-name> <servlet-class>example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>help.html</welcome-file> </welcome-file-list> </web-app>
下面模板文件里面的内容,下面的${message}与servlet里面的root.put("message", "Hello World!");
相对应。
<html> <head> <title>FreeMarker Example Web Application 1</title> </head> <body> ${message} </body> </html>
下面是页面展示效果
本程序只是一个demo程序,学习一下,目前很多网站系统都要用模板技术