什么是页面静态化
将动态页面转化成静态的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中获取.

作者:俊采星驰
链接:https://www.zhihu.com/question/271772094/answer/1857828758
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

ftl和html的区别?相关推荐

  1. ftl不存在为真_LTL和FTL货运之间有什么区别?

    作为北美地区最常用的两种运输选择,"全卡车运输"(FTL)和"卡车运输少于"(LTL)一直被国内所听闻,今天介绍下. 零担LTL(不到卡车) 零担运输的意思是少 ...

  2. web.xml 配置中classpath: 与classpath*:的区别

    首先 classpath是指 WEB-INF文件夹下的classes目录 (1)什么事classes目录?classes就是:  1.存放各种资源配置文件 eg.init.properties log ...

  3. freemarker ftl模板_效率提升百分之四十,AS模板也太好用了吧

    点击蓝字 轻松关注 CV 工程师你好,以下内容会让你感觉到不适,慎入! 在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一 ...

  4. web.xml配置中classpath:与classpath*:的区别

    classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties stru ...

  5. 4、Spring配置中的classpath:与classpath*:的区别

    2019独角兽企业重金招聘Python工程师标准>>> 一.概念解释及使用场景: classpath是指WEB-INF文件夹下的classes目录. 通常我们一般使用这种写法实在we ...

  6. 计算机中c盘和硬盘有什么关系,都是硬盘分区 C盘和D盘到底有什么区别?

    为什么硬盘从C盘开始? 早期电脑中软驱占用了A.B两个盘符,所以硬盘的盘符就从C开始.C盘.D盘这些都是DOS和Windows延续下来的概念,是为了方便文件的管理,在Linux系统中并没有" ...

  7. RAM、ROM、emmc、iNand、SD卡、mmc 与 Nandflash 的区别

    目录 1.emmc 和 Nandflsah 的区别 2.emmc.SD卡.TF 卡 与 MMC卡的区别 3.Flash 与 EEPROM 的区别 首先来一个大的分类: 这里有一个历史的遗留问题: RO ...

  8. freemarker(FTL)常见语法大全

    FreeMarker的插值有如下两种类型: 1,通用插值${expr}; 2,数字格式化插值:#{expr}或#{expr;format}  通用插值: ${book.name?if_exists } ...

  9. mtd block device和block device区别,MTD设备的一般不宜挂载fat,ext2,ext3等文件系统原因

    文章系转载:https://dolaameng328.iteye.com/blog/1502547 本文添加自己理解: 1.可以解释为什么MTD设备的一般不宜挂载fat,ext2,ext3等文件系统- ...

最新文章

  1. 匿名内部类使用的场景之一
  2. 图片远程保存,浏览器直接下载
  3. 普通图片在字模软件中的提取方法
  4. Blender插件初始化范例
  5. CS224N刷题——Assignment3.2_Recurrent neural nets for NER
  6. Java Json xml 格式之间转换(一)
  7. 在学校免费上网。在别处找的
  8. GIS投影、坐标系、坐标系转换
  9. 域名和服务器IP地址有什么关系
  10. 正则表达式(只能操作字符串类型)
  11. firefox插件使用:hackbar
  12. 【数据结构与算法】单链表的插入和删除
  13. android磁盘分区,Android SD卡做磁盘分区图文教程
  14. java apache 日志_了解Apache的访问日志
  15. 对一些时间处理的总结
  16. 2021 年春招面试攻略来了。。。
  17. 家用计算机相比工控机优点,具体分析工控机比一般的PC的优势
  18. 计算机病毒指的是什么及特性,什么是计算机病毒 什么是计算机病毒
  19. PowerPoint2007文本框无法输入中文处理措施
  20. if-else语句判断一个数字是大于等于或小于0【C++】

热门文章

  1. unity3d:ugui 长按按钮
  2. 概率论-事件的概率--公理化定义(统计、古典、几何)
  3. Java map集合实现上一条(篇),下一条(篇)新闻翻篇功能
  4. 演讲:星座决定命运(密码为作者姓名拼音)
  5. 央视新闻30分:开心网流行背后存在的隐忧
  6. [力扣c语言实现]207. 课程表(拓扑排序)
  7. repeat()方法
  8. rocketmq 远程连_RocketMQ-单机版安装及远程连接测试
  9. 参与 2021 第四季度 Flutter 开发者调查
  10. 使用java进行SSL证书的签名与签验