jsp、freemarker、velocity、thymeleaf

news/2024/10/3 19:52:54

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脚本必须加入/

转载于:https://www.cnblogs.com/chinaifae/p/10360872.html


https://dhexx.cn/news/show-2611983.html

相关文章

iconfont 在项目中的简单使用

font-class引用 font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。 与unicode使用方式相比,具有如下特点: 兼容性良好,支持ie8,及所有现代浏览器。相比于unicode语意…

分享一些好用的网站

前言 这两年收藏了不少网站,特地整理一下,把一些大家都可能用得上的分享出来,希望能对你有用。 考虑到有一些网站大多数人都知道,所以我就不列出来了。 我把这些网站分为了几大类: 工具类素材类社区类工具类 1、start.…

android愤怒小鸟游戏、自定义View、掌上餐厅App、OpenGL自定义气泡、抖音电影滤镜效果等源码...

Android精选源码 精练的范围选择器,范围和单位可以自定义 自定义View做的小鸟游戏 android popwindow选择商品规格颜色尺寸效果源码 实现Android带有锯齿背景的优惠样式源码 android充值页面效果源码 使用OpenGL实现的自定义气泡形状TextureView。 Andorid时间轴控件…

计算机网络- 应用层协议

收邮件 pop3 110端口 发邮件 STMP 25端口 只开放需要的端口 只开必要的服务。 黑客入侵时,先进行端口扫描 扫到了开启了远程桌面 然后猜密码登陆 修改服务端口 迷惑入侵者,使系统更加安全 服务中只开必要的端口

sql server(常用)

普通用法 //生成 uuid 并转为小写 select LOWER(SUBSTRING(uuid,1,8)-SUBSTRING(uuid,10,4)-SUBSTRING(uuid,15,4)-SUBSTRING(uuid,20,4)-SUBSTRING(uuid,25,12)) from (select cast(NEWID() as varchar(36)) as uuid) s //ea52a7bb-a2aa-44b8-be28-5ebc64defcf9//获取时分秒…

jsp:include /与%@ include %简单总结

一、<% include file"#"%> 处理方式&#xff1a;内容原封不动插入包含页使用该指令的位置&#xff0c;jsp编译器再对这个合成的文件进行编译&#xff0c;编译后的文件只有一个。 包含方式&#xff1a;服务器将两个文件合成后由jsp编译器编译成一个class文件&am…

计算机网络-传输层

UDP协议首部由8个字节 TCP协议实现流量控制 实现拥塞控制 网络堵 TCP面向连接的传输 三次握手 TCP是全双工通信&#xff08;下载电影&#xff0c;打电话&#xff09; 应用程序在TCP缓存中放数据 套接字 &#xff08;IP地址端口&#xff09; 点到点传输 提高信道利用率 就…

查看端口通不通

端口号有tcp协议和udp协议之分 --------------------------------------------------------------------------- tcp协议查询方式&#xff1a; WindowsR输入cmd 运行 输入&#xff1a;telnet 10.50.115.157 8080 -----------------------------------------------------------…

吴恩达《机器学习》课程总结(11)机器学习系统的设计

11.1首先要做什么 本章将在随后的课程中讲误差分析&#xff0c;然后怎样用一个更加系统性非方法&#xff0c;从一堆不同的方法中&#xff0c;选取合适的那一个。 11.2误差分析 构建一个学习算法的推荐方法为&#xff1a; &#xff08;1&#xff09;从一个简单的能快速实现的算法…

web基础之cookie和session优缺点总结

cookie 1.cookie作用,为什么要有cookie? cookie的作用是解决HTTP协议中缺少无状态缺陷的问题 2.cookie生命周期以及存储在哪里? cookie的内容主要包括&#xff1a;名称&#xff0c;值&#xff0c;到期时间&#xff0c;路径和域。路径与域一起构成了cookie的范围,并且是存储在…