freemarker的简单使用案例
Posted jincheng81
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freemarker的简单使用案例相关的知识,希望对你有一定的参考价值。
互联网网站一般首页的访问量大,为提高首页的访问效率,首页的内容都可以实现静态化,在互联网项目中页面常用html。当浏览器访问时,将浏览器的缓存策略和生成静态页面的周期设为一致,可使访问效率大大提升,再同时配合CDN处理图片、js和css等资源,可以在首页访问时,理论完全脱离数据库降低应用压力。
Freemarker 是目前流行的生成静态页面的模板引擎,使用预定义的模板ftl文件生成静态的html。
这样这个html既拥有页面的样式又拥有后台数据,以达到静态化访问的目的。
原理图
目录结构
导入jar包
Servlet中的内容
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map map = new HashMap(); map.put("url", "1.html"); map.put("name", "Free Marker Learning Document"); request.setAttribute("user", "Lucas Su"); request.setAttribute("doc", map); request.setAttribute("sex", "男"); request.getRequestDispatcher("/ftl/test.ftl").forward(request, response); }
ftl文件
<html> <head> <title>Welcome!</title> </head> <body> <h1>Welcome ${user?default(‘‘)}!</h1> <p>This is your document:</p> <a href="${doc.url?default(‘‘)}">${doc.name?default(‘‘)}</a> <p>性别:${sex}</p> </body> </html>
web.xml中的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>FreemarkerTest</display-name> <servlet> <servlet-name>freemarker</servlet-name> <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class> <init-param> <param-name>TemplatePath</param-name> <param-value>/</param-value> <!--表示从上下文路径根目录寻找模板文件 --> </init-param> <init-param> <param-name>NoCache</param-name> <param-value>true</param-value> <!--不使用缓存 --> </init-param> <init-param> <param-name>ContentType</param-name> <param-value>text/html;charset=UTF-8</param-value> <!--响应的数据类型 --> </init-param> <init-param> <param-name>template_update_delay</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>default_encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>number_format</param-name> <param-value>0.########</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>freemarker</servlet-name> <url-pattern>*.ftl</url-pattern><!--所有ftl都经过该servlet --> </servlet-mapping> <servlet> <servlet-name>FMServlet</servlet-name> <servlet-class>Test1.FMServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FMServlet</servlet-name> <url-pattern>/FMServlet.do</url-pattern> </servlet-mapping> </web-app>
以上是关于freemarker的简单使用案例的主要内容,如果未能解决你的问题,请参考以下文章