FreeMarker的介绍以及简单使用

本文探讨了网页静态化技术及其应用场景,如新闻门户和电商网站。对比了缓存技术,详细介绍了FreeMarker模板引擎的使用,包括配置、数据处理及生成静态页面的过程。

一、网页静态化

 

  • 什么是网页静态化技术:
    • 随着用户访问量以及数据量的增大,网页静态化技术方案如今越来越流行。
    • 什么是网页静态化技术呢?简单来说就是将网页以纯静态方式的形式展现。
  • 网页静态化技术缓存技术的比较:
    • 共同点:都可以减小数据库的访问压力。
    • 区别:
    1. 缓存技术适用于小规模的数据。以及一些经常变动的数据。
    2. 网页静态化技术适用于大规模但是变化不太频繁的数据。
  • 网页静态化技术的应用场景:
    1. 新闻门户网站的文章类型频道一般都用到了网页静态化技术。点击新闻直接会跳到静态化的页面。
    2. 电商网站的商品详情页也十分常用,我们在存储商品的时候会生成静态化页面,点击商品详情,会直接跳到生成的商品详情的静态化页面。
    3. 此外网页静态化技术可以结合Nginx这种高性能web服务器来提高并发访问量。

二、什么是FreeMarker

  • FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出【相当于照片底片,有了底片可以洗出无数张照片】。
  • FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。
  • 它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

三、FreeMarker的使用

  • 添加FreeMarker的jar包到工程中
<!--Freemarker的jar包-->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.28</version>
</dependency>

 

四、原理

五、最简单的FreeMarker测试

  • FreeMarkerTest.java

 

package cn.e3mall.freemarker;

import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

/**
 * @author Mr.Li
 * @version 1.0
 * @Description:
 * @Modified By:
 * @date 2018/12/15 20:08
 */
public class FreeMarkerTest {

    @Test
    public void testFreeMarker() throws Exception{
        //创建一个模板文件
        //创建一个Configuration对象,并设置当前FreeMarker的版本号
        Configuration configuration=new Configuration(Configuration.getVersion());
        //设置模板文件保存的目录
        configuration.setDirectoryForTemplateLoading(new File("F:\\IDEA\\WestosShopping\\e3-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
        //模板文件的编码格式,一般是UTF-8
        configuration.setDefaultEncoding("utf-8");
        //加载模板文件,创建一个模板对象
        Template template = configuration.getTemplate("hello.ftl");
        //创建一个数据集,可以使Pojo也可以是Map,推荐使用Map
        Map data=new HashMap<>();
        data.put("hello","hello FreeMarker ! ! !");
        //创建一个Writer对象,指定输出文件的路径以及文件名
        Writer out=new FileWriter(new File("F:\\JavaEE32\\freemarker\\hello.txt"));
        //生成静态页面
        template.process(data,out);
        //关闭流
        out.close();
    }
}
  • hello.ftl
${hello}
  • 结果
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值