Freemarker静态化页面的使用
生活随笔
收集整理的這篇文章主要介紹了
Freemarker静态化页面的使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Freemarker 是一種基于模板的,用來生成輸出文本的通用工具,所以我們必須要定制符合自己業(yè)務(wù)的模板,然后生成自己的文本(html頁面,string字符串,xml文本等等)。Freemarker是通過freemarker.template.Configuration這個對象對模板進行加載的(它也可以處理創(chuàng)建和緩存預(yù)解析模板的工作),然后我們通過getTmeplate方法獲取你想要的模板,準備模板數(shù)據(jù),并通過process()將模板數(shù)據(jù)填充到輸入流中,具體如下:
定義模板
準備ftl文件:news.ftl
<html> <title>${title!}</title> <meta charset="uft-8"> <head></head> <body> <title>${title!}</title> </body> </html>加載模板
可以是配置文件或者在具體需要的地方寫入
import freemarker.template.Configuration; public class Test extends HttpServlet{@overrideprotected void service(HttpServlerRequest req,HttpServletResponse resp) throws ServletException,IOException{@AutowritedConfiguration configuration; //模板配置對象//加載文件路徑configuraiton.setServletContextTemplateLoading(getServletContext(),"/template");//設(shè)置模板的編碼格式configuration.setDefaultEncoding("utf-8");//加載模板文件,獲取模板對象 ftl文件名Template template = configuration.getTemplate("news.ftl"); //加載數(shù)據(jù)模型Map<String,Object> map = new HashMap<>();map.put("title","新聞");//獲取項目所在根目錄String basePath = req.getServletContext().getRealPath("/");//設(shè)置頁面存放路徑File htmlFile = new File(basePath+"/ftl");//判斷目錄是否存在if(!htmlFile.exists()){htmlFile.mkdir();}//獲取文件名 實際運用中盡量使用唯一標識進行命名,如:idString fileName = System.currentTimeMills()+".html";File file = new File(htmlFile,fileName);//獲取文件輸出流FileWriter writer = new FileWriter(file);//StringWriter writer = new StringWriter();//System.out.println(writer.toString());//將模型數(shù)據(jù)填充到模板中template.process(map,writer);writer.flush();writer.close();} }運行完成可以到指定目錄查找該文件是否存在,頁面靜態(tài)化針對不經(jīng)常變化的頁面實現(xiàn),當訪問某一詳情頁面時,如果本地存在該詳情頁面則直接訪問本地,否則訪問數(shù)據(jù)庫獲取數(shù)據(jù)生成頁面,使用靜態(tài)化頁面大大提高了訪問效率。
總結(jié)
以上是生活随笔為你收集整理的Freemarker静态化页面的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1030 Travel Plan(甲级)
- 下一篇: 计算机考研落榜了怎么办,考研落榜了怎么办