对Thymeleaf的一些笼统介绍和理解
(随手记录的,,可能没那么易看,sorry le)
先大概介绍一下关于Thymeleaf的概念和理解:首先Thymeleaf模板引擎(换句话说他是现代服务器端的Java模板引擎,)
他所对应的主要作用(因为也是刚刚了接所以可能不会介绍的很周全),其实无非也就和之前所对应的jsp的作用方式是类似的,
因为jsp在某种程度上也是一种所对应的模板引擎,而jsp和Thymeleaf不同的地方,在某种程度上也就是,jsp对一些事物支持力度不高,
如HTML5的一些属性在jsp中是不能正常使用的,二,也就是jsp所对应的前后端分离的程度不够高,因为相信所有人也都知道,
jsp的设置初衷,或者jsp的设计原理是需要追述为servlet时代的,而jsp的出现在当时也的确是很实用的页面显示方式
(我觉得是这样的,O(∩_∩)O~~),所以jsp并非是直接支持html的语法格式的等等,jsp在生成的过程当中会生成为所对应的servlet类
,然后servlet中利用response等特定将所对应的标签等进行输出,如:response.getWrite().write().等等,,所以仅以此进行比较的话,
那么的确在前后端的数据显示分离上,的确是没有现在的一些大多数的后端引擎效果好些,相比对于如:jsp页面不能直接进行浏览器展示
,一定要与服务器进行配合才能展示数据等,而Thymeleaf呢则是可以直接打开html文件,进行前端的效果查看啊等等,
(其实从他们两个的实现原理上来说的话,一些优缺点阿等等,其实是完全没有对比性的,我觉得。。哈哈
,因为设计方式和设计初衷wo觉得其实也是不一样的,jsp的设计初衷是为了可以和后端所对应的作用域的数据bean等等进行数据显示和输出
,在设计之初我觉得这已经是很节省开发时间和成本的问题了吧,当时对于前后端使用json进行数据传输,也不知道流行没有,。。
而Thymeleaf的设计初衷出了解决数据bean的显示等问题外,对于html也有很好的支持),然后再简单提一下Thymeleaf的解析方式,
其实对于Thymeleaf的一些作用上述的话也简单提到了和jsp的一些作用是类似的,所以Thymeleaf的解决方式也是实现作用域中的bean的数据展示
,逻辑判断,以及循环等简单作用,除此之外还有类似于jsp的include的包含等功能,在Thymeleaf中又叫做(模板的定义和模板的引用)等,
(对于Thymeleaf的一些使用语法和方式等,可能会在后续学习记忆中重新再整理等,除了对于数据的解析等方式之外,)
Thymeleaf 除了所对应的应支持的作用外,不同于其余引擎的地方则是,Thymeleaf对html的支持则是十分良好的,
Thymeleaf的语法是在html上直接书写的,(旁边好吵.........)对于前后端数据分离效果较好,即对于前段的html页面可以直接打开显示前台内容
,当和服务器进行交接后所对应的th标签接收的内容则将会所对应的html标签内容替换,这点的话对于前后端的数据分离支持较好
,而jsp的话默认情况下在浏览器打开可能就是没有一点效果的,这点不多做解释了(*^__^*) ...除此之外呢,
要提到的就是JSP是基于servet进行数据解析转换形成的html,而!Thymeleaf则是将所对应的指定显示文件以DOM的形式读取为xml等并进行数据的
解析和赋值后再重新映射到浏览器的,所以Thymeleaf对于Html页面的标签等如</>闭合标签等的要求较为严格,
并且对与HTML页面较为复杂的情况使用Thymeleaf作为模板引擎则将会消耗较大的jvm内存空间
(理论上的确是将会消耗过多的JVM的内存空间吧~理论上应该的确是的~~哈哈)
所以对于较复杂的HTML页面的情况使用Thymeleaf作为模板引擎的话,官方介绍似乎是并不希望这样去做,
那么可能所对应的一系列问题可能也就迎刃而解了,比如什么将可能会造成堆内存异常,溢出,渲染速度性能降低了等等。
当然对于Thymeleaf也有很多好用的功能,除了上述所提到的以外还包含表单验证了,等等,
以及网上也有很大拿Thymeleaf和beetl等做性能对比的测试,这一点就不多作评论了,,哈哈
睡觉~lou喽先
对Thymeleaf的一些笼统介绍和理解的更多相关文章
- SOA架构介绍和理解
SOA架构介绍和理解 SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代. 通过SOA架构分层将服务按照 ...
- python scrapy爬虫框架概念介绍(个人理解总结为一张图)
python的scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架 python和scrapy的安装就不介绍了,资料很多 这里我个人总结一下,能更加快理解scrapy和快速上手一个简 ...
- 监控摄像机常识:宽动态 (WDR)介绍和理解
安装和使用监控摄像机经常会遇到强光问题. 因为我们不可能灵活选择摄像机的安装位置, 解决或者处理强光是一个无法避免的问题. 不管是由反光材质或者灯源造成此反光, 解决问题的方案来自于摄像机支持的一个特 ...
- Thymeleaf的模板使用介绍
参考网址: https://blog.csdn.net/hry2015/article/details/73476973 先定义一个html文件, 如下: 文件路径: templates/templa ...
- S2SH简单介绍和理解
struts2简介 Struts2是由WebWork基础上发展起来的,与struts1比较,选用struts2的理由是:①Struts1要求Action类继承一个抽象基类,而Struts2Action ...
- js面向对象的笼统介绍
**js进阶大纲**简单的表面组成:**对象的属性分两类,一类是数据属性,一类是访问器属性**1,数据属性用来保存数据.2,访问器属性不用来保存数据,而是定义了get,set两个函数,读取属性时,自动 ...
- 深入理解 Java 内存模型(一)- 内存模型介绍
深入理解 Java 内存模型(一)- 内存模型介绍 深入理解 Java 内存模型(二)- happens-before 规则 深入理解 Java 内存模型(三)- volatile 语义 深入理解 J ...
- 深入理解NIO(一)—— NIO的简单使用及其三大组件介绍
深入理解NIO(一)—— NIO的简单使用及其三大组件介绍 深入理解NIO系列分为四个部分 第一个部分也就是本节为NIO的简单使用(我很少写这种新手教程,所以如果你是复习还好,应该不难理解这篇,但如果 ...
- C#基础知识之理解HTTP协议
在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...
随机推荐
- 关于css中父元素与子元素之间margin-top的问题
之前在使用经常遇到下面的问题: html: <div class="top"> <div class="one">I'm the fir ...
- 简单了解junit的使用
普通使用: 在没有用测试框架之前,我们要用一个main方法来跑代码,而有了像junit这样的测试框架后,就可以不用次次写个main方法了. 直接上代码,注释里有说明: package com.stuP ...
- HDU 1028 Ignatius and the Princess III dp整数划分
http://acm.hdu.edu.cn/showproblem.php?pid=1028 dp[i][j]表示数值为i,然后最小拆分的那个数是j的时候的总和. 1 = 1 2 = 1 + 1 . ...
- 在spring的过滤器中注入实体类(@autowire会失效可使用这个方法)
转载:难得可贵的好文章 https://blog.csdn.net/chl191623691/article/details/78657638 首先,本文 绝对是好文!不止本文,作者的文章都是很经 ...
- HashMap之put方法流程解读
说明:本文中所谈论的HashMap基于JDK 1.8版本源码进行分析和说明. HashMap的put方法算是HashMap中比较核心的功能了,复杂程度高但是算法巧妙,同时在上一版本的基础之上优化了存储 ...
- cookie和session基础以及在Django中应用
看了会视频,终于搞懂了~ 1.cookie cookie:保存状态 cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地:当浏览器再次访问时,浏览器会自动带上cookie,这样服务器 ...
- Vue实例的4个常用选项
1.过滤器 filters:在不改变的data的情况下输出前端页面需要的格式数据.例如将小数过滤为整数等.filters是一个对象,里边定义一个function方法,function传入一个参数,fu ...
- 微信支付v3开发(5) 扫码并输入金额支付
关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室 本文介绍微信支付下的扫描二维码并输入自定义金额的支付的开发过程. 注意 微信支付 ...
- iOS UITextView placeHolder占位文字的N种方法实现方法
方法一 1.把UITextView的text属性当成“placeholder”使用. 2.在开始编辑的代理方法里清除“placeholder”. 3.在结束编辑的代理方法里根据条件设置“placeho ...
- NBUT 1118 Marisa's Affair (排序统计,水)
题意: 每行给出一个人名和一个int值,人名可重复出现.要求对同一个人名统计int值,最大的先输出,若相同,则按照人名出现次数,若再相同,则按照人名字典序. 思路: 输入完全部进行排序,写个比较函数传 ...