freemarker

什么是freemarker

java开发的模板引擎,它基于模板来生成静态网页

freemarker用来做什么

基于模板来生成静态网页
freemarker的运行不依赖web容器,可以在java工程中运行

什么是静态网页

静态网页动态网页
htm、html、shtml、xmlasp、jsp、php、perl、cgi
不涉及数据库交互需要数据库交互
内容固定(除非修改源代码)不同的用户请求,时间或者环境生成不同的内容
访问url固定,可以直接双击打开访问url中?后内容不固定,不能直接双击打开
freemarker+nginx优化实现jsp+缓存优化实现

freemarker的使用时机

为了防止给用户响应不全或错误信息页面
后台数据修改后,用户第一次访问前

freemarker使用方法

第一步:准备工作

把freemarker的jar包添加到工程中

第二步:创建模板对象
// 创建一个Configuration对象
Configuration configuration = new Configuration(Configuration.getVersion());
//告诉config对象模板所在文件夹的路径,文件夹名称为ftl
configuration.setDirectoryForTemplateLoading(new File("D:\\test\\taotao-portal\\src\\main\\webapp\\WEB-INF\\ftl"));
//设置config的默认字符集
configuration.setDefaultEncoding("utf-8");
//从config对象中获得模板对象。模板名称为first.ftl
Template template = configuration.getTemplate("first.ftl");
第三步:准备模板数据
//创建模板需要的数据集。可以是一个map对象也可以是一个pojo,把模板需要的数据都放入数据集。
Map root = new HashMap<>();
root.put("hello", "hello freemarker");
第四步:在模板对象中用EL表达式读取数据
第五步:生成静态网页
//指定生成的静态网页的保存的路径及文件名
Writer out = new FileWriter(new File("D:\\IdeaProjects\\html\\hello.html"));
//调用模板对象的process方法生成静态文件。需要两个参数数据集和writer对象。
template.process(root, out);
//关闭writer对象。
out.flush();
out.close();

项目中使用freemarker

配置freemarker的项目只用来生成静态页面
先运行该项目将静态页面生成后存储到nginx服务器上
客户请求nginx服务器

第一步:准备工作(添加相关依赖)
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
	<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.23</version>
</dependency>
第二步:设置spring配置
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
	//对象模板所在文件夹的路径
	<property name="templateLoaderPath" value="/WEB-INF/ftl/" />
	//默认字符集
	<property name="defaultEncoding" value="UTF-8" />
</bean>
第三步:从数据库中读取模板数据
第四步:在模板对象中用EL表达式读取数据
第五步:生成静态网页
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值