日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Freemarker静态化页面的使用

發布時間:2024/7/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Freemarker静态化页面的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Freemarker 是一種基于模板的,用來生成輸出文本的通用工具,所以我們必須要定制符合自己業務的模板,然后生成自己的文本(html頁面,string字符串,xml文本等等)。Freemarker是通過freemarker.template.Configuration這個對象對模板進行加載的(它也可以處理創建和緩存預解析模板的工作),然后我們通過getTmeplate方法獲取你想要的模板,準備模板數據,并通過process()將模板數據填充到輸入流中,具體如下:

定義模板

準備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");//設置模板的編碼格式configuration.setDefaultEncoding("utf-8");//加載模板文件,獲取模板對象 ftl文件名Template template = configuration.getTemplate("news.ftl"); //加載數據模型Map<String,Object> map = new HashMap<>();map.put("title","新聞");//獲取項目所在根目錄String basePath = req.getServletContext().getRealPath("/");//設置頁面存放路徑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());//將模型數據填充到模板中template.process(map,writer);writer.flush();writer.close();} }

運行完成可以到指定目錄查找該文件是否存在,頁面靜態化針對不經常變化的頁面實現,當訪問某一詳情頁面時,如果本地存在該詳情頁面則直接訪問本地,否則訪問數據庫獲取數據生成頁面,使用靜態化頁面大大提高了訪問效率。

總結

以上是生活随笔為你收集整理的Freemarker静态化页面的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。