HTML,JSP, Thymeleaf三个女人一台戏--《Spring实战》系列 07

上次我们看完一个Web请求的自由之路之后,大致了解了Spring MVC主要是做什么的。但是处理请求其实只是Spring MVC 功能的一部分,如果控制器所产生的结果想要让用户看到,那么它们产生的模型数据就要渲染到视图中,并且展现到用户的Web浏览器中。

因此,第六章“渲染Web视图”主要介绍了Spring提供的几种视图渲染的方式,其实Spring本身自带了13个视图解析器,能够将逻辑视图名称转换为物理实现。这一章里重点讲解了用于JSP的InternalResourceViewResolver解析器和用于Apache Tiles视图的TilesViewResolver解析器,在最后介绍了Thymeleaf这种用来替代JSP的新兴技术,Spring提供了与Thymeleaf的原生模板协作的视图解析器,它的特点是更像是最终产生的HTML,而不是驱动它们的Java代码。

在这里有必要澄清一下HTML, JSP, Thymeleaf这三者之间的关系。

HTML: 它是静态页面,和JavaScript一样是解释性语言,只要有一个浏览器那么它就可以正常显示出来,而不需要指定的编译工具,只需要在TXT文档上写上HTML标记就可以。它和JSP的区别是直接就可以打开,而JSP需要发布到Tomcat等服务器上才能打开。

JSP(Java Server Page): Java服务端的页面,它是动态的,需要经过JDK编译后把内容发给客户端去显示。我们知道,Java文件编译后会产生一个class文件,最终执行的就是这个class文件,JSP也一样,它也要编译成class文件。JSP不仅要编译,它还要转译,首先把JSP转译成一个Servlet文件,然后再编译成class文件。当用户访问JSP时就执行了class文件,最终可以看到页面。但如果是使用SpringBoot,还是不推荐选用JSP,而是Thymeleaf。

Thymeleaf: 它和JSP是两种不同的模块,也是SpringBoot官方推荐使用的模板,本质上是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用。它的优点在于可扩展性好,可以使用它定义自己的模板属性集合,这样就可以计算自定义表达式并使用自定义逻辑。而且还可以实现静态HTML嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。

其实这一章主要讲解的就是前端模板的Web渲染,包括渲染的几种方式以及如何创建这些模板。由于自己的前端知识还很薄弱,读起来常常是不知所云,而且还需要常常上百度搜一搜关键概念是什么意思,上面HTML, JSP, Thymelea三者之间的关系,就是自己边读边上网搜到的答案。在这个过程中也发现了一些特别有启发的答案,粘过来给大家看看:

这是原文链接:https://www.imooc.com/article/20304

JSP和Thymeleaf是两套不同的模板。理论上来讲, 都是属于前端的范畴。之所以你觉得thyemleaf 难理解,是你因为你的前端水平还是欠缺。让前端工程师(比如学过 Angular) 来看,就是一个模子的东西。之所以你觉得JSP 好用,那是因为 JSP 本质上还是Java 代码,JSP 里面写一堆Java 逻辑,你觉得很爽,实质上,没有很好的做到前后端分离。对于没有用过JSP的开发者来说,他也觉得JSP 难用,那是因为他不了解 JSP的标签。前端,无非就是用他们定义好的 标签库。不是吗?不了解 标签库,怎么写前端?就先你不了解 html 中的标签,如何来写 HTML ?

JSP 是JavaEE的规范,但JSP 显然已经out 了。毕竟不合适前后端分离的项目。

所有的前端框架本质上还是 HTML ,JS , CSS 。只要 HTML ,JS , CSS 理论上,能实现所有的页面效果。想想二十年前的互联网,也没有框架,就是这3样。
当然,我说的是理论上。现在不用框架,基本上很难做出东西来。毕竟,我们要站在巨人的肩膀上。别重复造轮子
好比,jQuery 已经是事实上的标准了,做前端不用jQuery 基本上很难做好东西。
jQuery 就是简化了开发、做了很多浏览器兼容的工作。如果你用原生的 JS 来实现,OK ,没有问题,估计只能是自己玩玩。拿去商用的话,问题一堆,光 浏览器兼容性问题你都可能解决不了。
so 。我再强调下,技术应用是要结合应用场景的。如果单纯从学习角度来看,学习哪个技术都没有错。但如果是要做产品,做项目,那技术选型就非常关键了。就比如,咱们的博客系统为啥选这些技术,而不是其他技术,都是有道道的。

学而不思则罔,思而不学则殆,在学习中要时常思考,在思考的同时也要不断的学习,希望今天的文章能对你有帮助,我们下期再会~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值