如何实现网页静态化
Posted 小鹿的技术杂谈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现网页静态化相关的知识,希望对你有一定的参考价值。
一.分析
针对商城项目每个商品要对应生成一个html文件,保存在磁盘,访问文件就不一定使用tomcat,可以使用nginx访问。可以使用Freemarker工具实现。
二.Freemarker的使用方法
第一步:添加Freemarker的jar包到工程中。
第二步:Freemarker的运行不依赖外部容器,可以在java工程中使用。创建一个测试方法进行测试。
第三步:创建一个Configuration对象。
第四步:告诉Config对象模板对象存放的路径。
第五步:设置默认的字符集。一般为utf-8。
第六步:从Config对象中获得一个模板对象。需要指定一个模板对象的名字。
第七步:创建模板需要的数据集。可以是一个Map对象,也可以是一个Pojo,把模板需要的数据存入数据集。
第八步:创建一个Writer对象,指定生成的文件保存的路径及文件名。
第九步:调用模板对象的process方法,生成静态文件。需要两个参数,数据集和Writer对象。
第十步:关闭Writer。
三.Freemarker模板的写法
1.取简单的数据类型
使用EL表达式。${hello}
2.包装数据类型
根据ftl模板,创建pojo对象。
3.遍历集合数组
数据集中添加list列表。
4.获取当前迭代的索引
List<Student> list = new ArrayList<Student>();
<#list students as s>
${s_index}
</#list>
5.模板中的判断条件
<#if 判断条件>
<#else>
</#if>
逻辑运算符:== != && ||
6.格式化日期
默认格式:
a. ${cur_time?date}
b.${cur_time?time}
c.${cur_time?datetime}
自定义格式:
${cur_time?string("yyyy/MM/dd HH:mm:ss")}
7.null处理
a.变空字符串 ${val!}
b.给默认值 ${val!"val的默认值"}
8.include
将另外一个页面引入到本页面
四.项目中使用Freemarker
使用Freemarker整合spring。将Configuration交给Spring容器管理。
依赖的jar包:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
1.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>
2.静态文件生成的时间
a.用户第一次访问时生成静态文件。 缺点:高并发的时候容易生成一半出现问题,一般不推荐。
b.添加或者编辑商品时生成静态网页。此时需要发布服务供后台系统调用,当后台添加或者修改商品时调用此服务。
3.发布生成页面的服务
a.获得数据
b.生成静态页面
c.相应生成成功
4.Service
生成静态页面
5.创建Freemarker模板
6.Controller
调用Service生成静态页面
以上是关于如何实现网页静态化的主要内容,如果未能解决你的问题,请参考以下文章