freemarker的簡單使用案例
阿新 • • 發佈:2018-05-29
ping instance XML attr exception servle ons cache 導入
互聯網網站一般首頁的訪問量大,為提高首頁的訪問效率,首頁的內容都可以實現靜態化,在互聯網項目中頁面常用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的簡單使用案例