日期:2014-05-19 浏览次数:20743 次
1. <html> 2. <head> 3. <title>freemark example</title> 4. </head> 5. <body>hello ${user}!</body> 6. </html>
1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2. <html> 3. <head> 4. <meta http-equiv="Content-Type" content="text/html; charset=utf8"> 5. <title>Insert title here</title> 6. </head> 7. <body> 8. <hr> 9. <a href="test">调用hello模板</a> 10. </body> 11. </html>
1. package org.eagle; 2. 3. import java.io.*; 4. import java.util.*; 5. 6. import javax.servlet.ServletException; 7. import javax.servlet.http.*; 8. 9. import freemarker.template.Configuration; 10. import freemarker.template.Template; 11. import freemarker.template.TemplateException; 12. 13. public class Hello extends HttpServlet { 14. private Configuration cfg; 15. 16. public void init() { 17. // 初始化FreeMarker配置 18. // 创建一个Configuration实例 19. cfg = new Configuration(); 20. // 设置FreeMarker的模版文件位置 21. cfg.setServletContextForTemplateLoading(getServletContext(), 22. "templates"); 23. } 24. 25. public void doGet(HttpServletRequest request, HttpServletResponse response) 26. throws ServletException, IOException { 27. // 建立数据模型 28. Map root = new HashMap(); 29. // 放入对应数据key value 30. root.put("user", "zdz"); 31. // 取得模版文件 32. Template t = cfg.getTemplate("hello.ftl"); 33. // 开始准备生成输出 34. // 使用模版文件的charset作为本页面的charset 35. // 使用text/html MIME-type 36. response.setContentType("text/html; charset=" + t.getEncoding()); 37. PrintWriter out = response.getWriter(); 38. 39. // 合并数据模型和模版,并将结果输出到out中 40. try { 41. t.process(root, out);// 用模板来开发servlet可以只在代码里面加入动态的数据 42. } catch (TemplateException e) { 43. throw new ServletException("处理Template模版中出现错误", e); 44. } 45. } 46. }
1. <servlet> 2. <servlet-name>Hello</servlet-name> 3. <servlet-class>org.eagle.Hello</servlet-class> 4. </servlet> 5. <servlet-mapping> 6. <servlet-name>Hello</servlet-name> 7. <url-pattern>/test</url-pattern> 8. </servlet-mapping>