jsp、freemarker、velocity、thymeleaf页面方案分析

2023-11-10

1、概述
在java领域,表现层技术主要有三种,
(1)jsp;
(2)freemarker;
(3)velocity;
(4)thymeleaf;

2、jsp
优点:
1、功能强大,可以写java代码
2、支持jsp标签(jsp tag)
3、支持表达式语言(el)
4、官方标准,用户群广,丰富的第三方jsp标签库
5、性能良好。jsp编译成class文件执行,有很好的性能表现
缺点:
jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。

3、freemarker
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

目前企业中:主要用Freemarker做静态页面或是页面展示
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能非常不错
3、对jsp标签支持良好
4、内置大量常用功能,使用非常方便
5、宏定义(类似jsp标签)非常方便
6、使用表达式语言
缺点:
1、不是官方标准
2、用户群体和第三方标签库没有jsp多

选择freemarker的原因:
1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离

4、velocity
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能良好,据说比jsp性能还要好些
3、使用表达式语言,据说jsp的表达式语言就是学velocity的
缺点:
1、不是官方标准
2、用户群体和第三方标签库没有jsp多。
3、对jsp标签支持不够好

5、thymeleaf
Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用。

Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。Thymeleaf的可扩展性也非常棒。你可以使用它定义自己的模板属性集合,这样就可以计算自定义表达式并使用自定义逻辑。这意味着Thymeleaf还可以作为模板引擎框架。

thymeleaf优点:静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。springboot官方推荐方案。thymeleaf缺点:模板必须符合xml规范,就这一点就可以判死刑!太不方便了!js脚本必须加入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsp、freemarker、velocity、thymeleaf页面方案分析 的相关文章

随机推荐

  • The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class fi

    今天在家编写代码的时候 提示如下错误信息 The type java util Map Entry cannot be resolved It is indirectly referenced from required class fil
  • 【Python】如何根据时间序列数据提取星期几的信息?(如2023-04-05提取为Wednesday)

    一 问题描述 在Python中 可以使用datetime模块来处理日期和时间数据 并从中提取星期几 以下是一个示例代码 import datetime 定义一个日期字符串 date string 2023 04 05 将日期字符串转换为日期
  • 关键路径求法

    关键路径概念 在无回路的有向网络中 假设只有一个入度为0的顶点 称为源点 和一个出度为0的顶点 称为汇点 则从源点到汇点之间的最长的路径称为关键路径 AOE网 无回路有向网络可以用来表示一个包含多项活动的工程计划 有向边表示一项活动 边上的
  • 请教100位行业专家后,我总结出第三方支付“断直连”的8大疑问!

    2018年4月11日 央行行长易纲在博鳌亚洲论坛上表示 中国的第三方支付是走在世界前列的 但行业在发展过程中也出现了一些风险 如何在有效防范风险的同时鼓励竞争 鼓励创新 这是一个挺难解的题目 要做好平衡 断直连 监管细则已经落地 市场格局和
  • mysql 配置多个数据库连接_SpringBoot和Mybatis配置多数据源连接多个数据库

    目前业界操作数据库的框架一般是 Mybatis 但在很多业务场景下 我们需要在一个工程里配置多个数据源来实现业务逻辑 在SpringBoot中也可以实现多数据源并配合Mybatis框架编写xml文件来执行SQL 在SpringBoot中 配
  • 浅谈ChatGPT在一个IT运维人眼中的日常使用场景

    前言 其实AI的概念已经存在了十多年 包括在运维领域 也从传统运维演化到了所有AIOps的概念 但一直以来对当前的AI并不是太看好 始终觉得当前的AI只是停留在 撞库 从海量的库里去匹配关键字触发语句 所谓的 小爱同学 小度小度 包括Sir
  • 高内聚与低耦合实现小记

    总所周知 实际软件开发中要实现高内聚 低耦合的设计原则 c语言和c 不同 c语言面向过程 c 面向对象 真正的项目中 要对业务升级 原来的业务函数需要保留 要保证老的功能继续维持 不能直接删除 这时候 c语言面向过程 通常使用回调的方法 c
  • 为什么面试狂问Redis,阿里面试官把我问到哑口无言…

    Redis在国内各大公司都很热门 比如新浪 阿里 腾讯 百度 美团 小米等 Redis也是大厂面试最爱问的 尤其是Redis客户端 Redis高级功能 Redis持久化和开发运维常用问题探讨 Redis复制的原理和优化策略 Redis分布式
  • Delegate总结

    关于Delegate已经写了很多 现总结如下 一 一条线是观察delegate从 net framework 1 1 到目前为止4 5的变迁 例如如果你用delegate来模拟事件 你需要自己 Add member to the invoc
  • 辅助信息服务器,我开启了辅助核算 要去哪里增加新的辅助信息?

    亲 您好 亿企代账提供三种辅助核算 应收账款 预收账款科目启用 客户 核算 应付账款 预付账款科目启用 供应商 核算 库存商品 原材料等科目启用 存货 核算 如果需要增加辅助信息 可按以下两种方法操作 方法一 在 设置 辅助设置 客户 处添
  • vue函数定义的多种写法

    vue定义方法 methods a e c alert aaa a e c alert aaa a function e c alert aaa 在JS中箭头函数根据是否书写大小括号可分为以下四种情况 不省略 const fun value
  • RocketMQ Rebalance流程分析

    这节介绍Rebalance流程 在介绍Consumer消费消息流程前 先介绍Rebalance得流程 该过程涉及到Consumer的启动 之前介绍过 Topic是一个逻辑概念 Topic下可以划分多个Queue以增加Consumer消费的并
  • react+antd+vscode的运行环境搭建

    初学者 在学着做一个前端项目 有时候要换新电脑 或者重装系统 前端代码就不能用了 解决时候总是忘记还遇到麻烦 记录一下 按步骤来吧 也不知道对不对 先这样用着 1 下载vscode 就去官网下就完事 好像点下载会根据电脑的系统版本位数啥的下
  • 接口测试&管理续集

    今天应大家需要 接着谈app端数据返回层面的用例设计方法 第二部分给大家安利一个 接口管理平台 以帮助大家解决接口文档维护 接口测试数据Mock 接口自动化测试等问题 希望对小伙伴们有用 言归正传 进入今天的话题 一 用例设计 查漏补缺 数
  • Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介

    点击上方 Python共享之家 进行关注 回复 资源 即可获赠Python学习资料 今 日 鸡 汤 折戟沉沙铁未销 自将磨洗认前朝 大家好 我是黑脸怪 这篇文章主要给大家介绍jsrpc 方便大家日后在遇到JS逆向的时候派上用场 前言 jsr
  • Unity编辑器拓展(一)实现快速制作书本效果插件

    目录 前言 自定义窗口实现使用的方法 效果演示 前言 Unity自定义书本编辑器窗口 书本功能实现参考教程 Unity代码实现翻书效果 自定义窗口实现使用的方法 EditorWindow GetWindow EditorGUILayout
  • 数据库学习(6)MySQL数据库DDL——索引

    MySQL数据库DDL 索引 创建索引 添加与删除索引 索引的使用原则 数据排序的好处 一旦数据排序之后 查找的速度就会翻倍 现实世界跟程序世界都是如此 创建索引 CREATE TABLE 表名称 INDEX 索引名称 字段 注 排序方法为
  • ToDesk远程控制

    实现远程控制有多简单 https www todesk com download htmlhttps www todesk com download htmlhttps www todesk com download html 电脑浏览器打
  • vue-pdf使用+分页预览+第一查看正常,第二次查看空白解决方案

    重点提示 全网通用pdf查看的功能都是使用vue pdf这个插件 除了各种坑外 最致命的一点就是 它的npm包有一个Bug 在第一次查看之后 再次查看 页面会空白并报错 Error during font loading Failed to
  • jsp、freemarker、velocity、thymeleaf页面方案分析

    1 概述 在java领域 表现层技术主要有三种 1 jsp 2 freemarker 3 velocity 4 thymeleaf 2 jsp 优点 1 功能强大 可以写java代码 2 支持jsp标签 jsp tag 3 支持表达式语言