什么是页面静态化

将动态页面转化成静态的html,降低与数据库的交互次数,提高页面的访问速度。就是服务器在请求来之前把已经固定好的东西先编译好了,等请求来了再动态的填数据,不要等请求来了什么都没做忙得半死。

为什么要使用网页静态化技术

网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力。而网页静态化比较适合大规模且相对变化不太频繁的数据。另外网页静态化还有利于SEO(搜索引擎优化)。将网页以纯静态化的形式展现,就可以使用Nginx这样的高性能的web服务器来部署。Nginx可以承载5万的并发,而Tomcat只有几百。

利用第三方提供的模板引擎,生成对应的html,常见的模板引擎有:thymeleaf、freemarker、velocity。

什么是FreeMarker

freemarker是apache的一个开源的模板引擎,它基于模板来生成文本输出。freemaker模板引擎可以通过模板和数据生成静态化页面。

FreeMarker的优点

1. 提前根据模板和数据生成静态化页面通过io流将页面写入到硬盘上, 访问的时候直接访问。就不用访问数据库了, 可以大大提高数据库的高并发读取性能,使数据库访问量降低.。

2. 由于页面是提前生成好的, 所以访问速度快, 客户体验好。

3. 由于html不需要tomcat解析浏览器可以直接访问, 所以给tomcat降低高并发访问压力。

FreeMarker使用场景

1.新闻网站新闻页面通过freemarker提前生成好

2.电商网站商品详情页面通过freemarker提前生成好

其原则是:页面有固定的样式, 并且一次生成多次读取,尽量少的改动数据

FreeMarker运行过程

原理图;

模板:

1.模板在freemarker中是以.ftl为后缀名的文件, 在模板中可以使用html标签, css, js,图片等静态资源。

2.模板中可以使用el表达式获取数据, 但是无法使用jstl标签来判断和循环, 所以模板引擎会有自己的一套标签库供我们使用.

数据:

数据一般存储在关系型数据库或者redis或者mongodb中获取.

HTML和ftl的关系相关推荐

  1. 帮你理清 SpringBoot 与 SpringMVC 的关系

    spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc.spring mvc 只是spring 处理web层请求的一个模块. ...

  2. 教你理清SpringBoot与SpringMVC的关系

    spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc.spring mvc 是只是spring 处理web层请求的一个模块 ...

  3. Flying-Saucer使用HTML或者FTL(Freemarker模板)生成PDF

    PDF导出工具有itext,但是itext对中文支持不好,还有样式CSS支持也不好,使用IReport比较复杂,上手不太容易,怎么办? 幸好有Flying-Saucer这个项目,帮助我们解决了以上问题 ...

  4. Nand Flash管理算法介绍之FTL简介

    和传统磁盘相比,Nand Flash存储设备存储延迟低.功耗低.更高的存储密度.抗震型号更好和噪声低.但是,由于Nand Flash的特性影响(读写擦的单位不一致,每个块有P/E次数限制),Nand ...

  5. freemarker/ftl模板/导出doc 单元格合并注意事项

    在现有模板上添加新表格数据      word 导出 2003版xml 和默认版本xml  是有区别的,如果已经创建好的ftl模板文件,后期维护添加图表,则必须使用同样版本的xml进行模板数据的追加. ...

  6. freemarker/ftl模板/导出doc 单元格合并注意事项(一)

    在现有模板上添加新表格数据      word 导出 2003版xml 和默认版本xml  是有区别的,如果已经创建好的ftl模板文件,后期维护添加图表,则必须使用同样版本的xml进行模板数据的追加. ...

  7. 神秘的Flash Translation Layer (FTL)

    转自:http://blog.51cto.com/alanwu/1427101 如果仅仅是SSD的使用者,一定不会在意在SSD内部居然还存在一个复杂的软件层Flash Translation Laye ...

  8. ssm+shiro+freemarker。关键字:ftl。(作为了解即可,主要了解ssm+shiro+jsp标签这篇笔记)

    本案例和ssm+shiro+jsp标签这篇文章几乎没差别,差别主要在于spring.xml文件中controller跳转的前后缀的区别以及使用的页面的不同,这个案例页面是ftl,那个案例是jsp页面, ...

  9. 神秘的Flash Translation Layer (FTL)(转载有用)

    如果仅仅是SSD的使用者,一定不会在意在SSD内部居然还存在一个复杂的软件层Flash Translation Layer(FTL).其实就是这个FTL才是SSD固态硬盘的软件核心技术.正因为有了FT ...

最新文章

  1. enumeration学习
  2. python搭建博客系统_用Pelican快速搭建极简静态博客系统
  3. Vieri离开国际米兰
  4. operator new,new operator,placement new的区别
  5. 打印工资条怎么做到每个人都有表头明细_现在还在用订书钉装订工资条,算是一种落后吗?你的公司怎么发?...
  6. Taurus入门,这么神奇的性能测试工具不能不知道
  7. 全局负载均衡通俗介绍_“集群和负载均衡”等的通俗解释
  8. 码农跳槽指南:如何在新公司建立自己的“支配地位”?
  9. JavaScript 丨 你不知道的arguments
  10. MAC 安装JDK(附JDK下载地址)
  11. 基于JAVA的超市管理系统计算机毕业论文
  12. 追赶法求解方程组(C语言)
  13. 【整理】详解Python中re.sub
  14. MATLAB 剔除异常点
  15. 数列 COGS1048:[Citric S2] 一道防AK好题
  16. 微服务(Microservice)那点事
  17. android外星人游戏,外星人全面战争
  18. 如何从入门到专业的程序员
  19. RationalDMIS 2020直线度评价
  20. 意大利菜--斐波那契汤。具体做法是把昨天的和前天剩下的汤加热后混合,得到就是今天新鲜的“斐波那契汤”

热门文章

  1. node.js实现图片裁剪+获取图片大小+加logo水印
  2. 算法小讲堂之哈希表|散列表|考研笔记
  3. ArcGIS基础:等高线数据生成栅格DEM数据
  4. 公众号改名了,聊聊我的思考
  5. opencv图像处理—项目实战:答题卡识别判卷
  6. 零空间、点积与对偶性
  7. 第九章-项目人力资源管理
  8. javascript网页自动填表_javascript 自动填写表单
  9. 腾讯高工保姆级“Java成长手册”,层层递进,全是精华!Github上都没有!
  10. 虚拟化查看服务器sn,linux 查看服务器sn号