专栏首页cwl_Java快速学习FreeMarker-FreeMarker简介

快速学习FreeMarker-FreeMarker简介

2 FreeMarker简介

2.1 什么是FreeMarker

FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。

FreeMarker 的设计实际上是被用来生成 HTML 网页,尤其是通过基于实现了 MVC(ModelView Controller,模型-视图-控制器)模式的 Servlet 应用程序。使用 MVC 模式的动态网页的构思使得你可以将前端设计者(编写 HTML)从程序员中分离出来。所有人各司其职,发挥其擅长的一面。网页设计师可以改写页面的显示效果而不受程序员编译代码的影响,因为应用程序的逻辑(Java 程序)和页面设计(FreeMarker 模板)已经分开了。页面模板代码不会受到复杂的程序代码影响。这种分离的思想即便对一个程序员和页面设计师是同一个人的项目来说都是非常有用的,因为分离使得代码保持简洁而且便于维护。

尽管 FreeMarker 也有编程能力,但它也不是像 PHP 那样的一种全面的编程语言。反而,Java 程序准备的数据来显示(比如 SQL 查询),FreeMarker 仅仅使用模板生成文本页面来呈现已经准备好的数据

FreeMarker 不是 Web 应用框架。它是 Web 应用框架中的一个适用的组件,但是FreeMarker 引擎本身并不知道HTTP 协议或 Servlet。它仅仅来生成文本。即便这样,它也非常适用于非 Web 应用环境的开发

2.2 Freemarker的应用场景

(1)动态页面 基于模板配置和表达式生成页面文件,可以像jsp一样被客户端访问

(2)页面静态化 对于系统中频繁使用数据库进行查询但是内容更新很小的应用,都可以用FreeMarker将网页静态化,这样就避免了大量的数据库访问请求,从而提高网站的性能

(3)代码生成器 可以自动根据后台配置生成页面或者代码

freemarker的特征与亮点

  1. 强大的模板语言:有条件的块,迭代,赋值,字符串和算术运算和格式化,宏和函数,编码等更多的功能;
  2. 多用途且轻量:零依赖,输出任何格式,可以从任何地方加载模板(可插拔),配置选项丰富;
  3. 智能的国际化和本地化:对区域设置和日期/时间格式敏感。
  4. XML处理功能:将dom-s放入到XML数据模型并遍历它们,甚至处理他们的声明
  5. 通用的数据模型:通过可插拔适配器将java对象暴露于模板作为变量树。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 性能优化-MySQL数据库优化

    A、SQL及索引优化 根据需求写出良好的SQL,并创建有效的索引,实现某一种需求可以多种写法,这时候我们就要选择一种效率最高的写法。这个时候就要了解sql...

    cwl_java
  • 数据库PostrageSQL-版本和平台兼容性

    array_nulls (boolean) 这个参数控制数组输入解析器是否把未用引号的NULL识别为一个空数组元素。默认为on,允许输入包含空值的数组值。但是...

    cwl_java
  • 前端基础-文档对象模型 (DOM)

    DOM是JavaScript操作网页的接口,全称为“文档对象模型”(Document Object Model)。 它的作用是将网页转为一个JavaScript...

    cwl_java
  • Kotlin初级(4)- - - 字符串和字符.md

    Hankkin
  • 矩阵值函数的有理逼近算法(CS NA)

    本文讨论了矩阵值函数有理逼近的几种算法,包括插值AAA法、基于近似最小二乘拟合的RKFIT法、向量拟合的RKFIT法和基于块Loewner矩阵低秩逼近的RKFI...

    非过度曝光
  • 松下如何回收废旧家电?机器人一天可处理300台液晶电视

    扔塑料瓶需要分几步,丢垃圾也要看时间,处理旧家电还得花钱……日本资源回收体系虽然复杂,却尽可能地实现了资源利用的最大化。 记者21日应邀参观松下电器产业公司一处...

    机器人网
  • 【PAT甲级】List Grades

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • javascript操作cookie

    在一些系统当中,需要用户去登录,等用户登录后,在这个系统的其他页面也需要能得知是哪个用户登录的,这时就需要向cookie里填入用户的信息,以方便在其他页面获取。...

    无邪Z
  • 从0到1:实现循环神经网络Vanilla RNN(序列分析)

    RNN是深度学习算法的核心构件,为了更好的理解算法,我们从动机、结构,到反向传播和学习策略,逐步分析,然后不借助深度学习框架,实现RNN模型,再应用于时序数据的...

    SIGAI学习与实践平台
  • CoordinatorLayout的使用如此简单

    曾在网上找了一些关于CoordinatorLayout的教程,大部分文章都是把CoordinatorLayout、AppbarLayout、Collapsing...

    非著名程序员

扫码关注云+社区

领取腾讯云代金券