JSP等模板引擎已死,大前端为趋势
我们先来看一下tomcat版本数据:
我们可以看到,从tomcat8之后JSP就再没有新的支持了,tomcat8大概是2013年发布的,也就是说,从2013年开始jsp技术已经实质上不被官方继续维护了。
再从java框架springboot来看,默认就是不支持jsp的,后台模板引擎默认是themleaf,但这并不能代表themleaf是未来趋势,因为前端技术在后端技术进步的同时在飞速发展。
自从JamesGosling开发Java语言,SUN大力推行基于Java的从前端到后端的完整的企业级解决方法(J2EE),发展至今基于服务器端JSP技术地位与处境已经越来越尴尬。JSP技术的兴起与发展得益于WEB技术推广与发展,但是伴随着WEB2.0发展与富客服端应用(RIA)的发展,基于JSPTag的web伪前端技术表现的越来越无力。如今伴随着更多的富客户端技术的发展与不断的走向成熟,其中具有代表性的为Angular、React、Vue等,同时伴随着ajax技术以及HTTP长连接协议Bayeux广泛应用,而且已经成为RFC标准文档之一。而且伴随着各大浏览器厂商对HTML5的大力支持,WEB开发应用新一轮的技术革新已经成为定局。在这种情况下,曾经风云一时的JSP/Tag模板引擎技术没落是不可逆转。
J2EE中传统的前端依靠JSP Tag技术封装,依靠服务器解析,完成页面预编译之后,通过HTTP发送到用户浏览器端。那些数不清的JSP标签库/TAG库,由于缺乏必要的技术规范各大厂商完成的千差万别。很多时候已经成为影响J2EE开发效率的一大死穴。JSP等模板引擎作为伪前端技术(实际上是服务器端技术)有如下弊端:
1. 标签库没有统一标准,各大厂商完成不一,常使开发者晕头转向
2. 本身不是一种前端与后端分离的技术,不能实现前端与后端各自的语言独立
3. 不是好的富客户端技术,GWT虽然可以用为富客户端前端技术,但是也是基于Java
4. 前端与后端数据交换XML/JSON支持不够灵活,不是天生支持Ajax
反观Angular、React、Vue等前端技术,主要有以下显著特点:
1. 前台与后台语言独立,
2. 内嵌支持Ajax
3. 灵活的数据交换支持XML/JSON
4. 前后端独立语言的好处,理论上后端可以支持任何语言
现在很多新开发的WEB应用,Java作用主要在后台,但浏览器端越来越与Java无关是无关的,这个就是WEB2.0的威力,Div + CSS + Json的数据交换以及Javascript库(ExtJS, JQuery)的应用,足以已经使前端开发与后端开发完全分离,这些完全得益于ajax/Bayeux(Comet)等技术助推。伴随着HTML5技术的进一步推广,独自在后端闭门造车的行为变得尤其愚蠢。而且近些年发展迅猛的虚拟Dom技术类框架Angular、React、Vue,配合Redux、dva等数据流方案,使得大前端的时代已然真正的降临。
JSP等模板引擎已死,大前端为趋势的更多相关文章
- SpringBoot第九集:整合JSP和模板引擎Freemarker/Thymeleaf(2020最新最易懂)
SpringBoot第九集:整合JSP和模板引擎(2020最新最易懂) 当客户通过前端页面提交请求后,我们以前是怎么做的?后端接收请求数据,处理请求,把响应结果交给模板引擎JSP,最后将渲染后的JSP ...
- Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整
Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...
- SpringBoot系列:Spring Boot使用模板引擎JSP
一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...
- 前端数据渲染及mustache模板引擎的简单实现
早期数据渲染的几种方式 在模板引擎没有诞生之前,为了用JS把数据渲染到页面上,诞生了一系列数据渲染的方式. 最最基础的,莫过于直接使用DOM接口创建所有节点. <div id="roo ...
- 作为一名前端开发工程师,你必须掌握的WEB模板引擎:Handlebars
作为一名前端开发工程师,你必须掌握的WEB模板引擎:Handlebars 一.为什么需要使用模板引擎? 关于为什么要使用模板引擎,按照我常对学生说的一句话就是:不用重复造轮子.. 简单来说,模板最 ...
- Spring Boot整合模板引擎jsp
jsp也算是一种模板引擎吧.整合jsp前,先说一下运行SpringBoot项目的几种方式 1. 运行SpringBoot项目的几种方式 1.1 使用内嵌Tomcat运行项目 在IDE中右键运行启动类, ...
- 4行代码实现js模板引擎
在平时编码中,经常要做拼接字符串的工作,如把json数据用HTML展示出来,以往字符串拼接与逻辑混在在一起会让代码晦涩不堪,加大了多人协作与维护的成本.而采用前端模板机制就能很好的解决这个问题. 精妙 ...
- 全球最快的JS模板引擎
废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二 ...
- thymeleaf模板引擎shiro集成框架
shiro权限框架.前端验证jsp设计.间tag它只能用于jsp系列模板引擎. 使用最近项目thymeleaf作为前端模板引擎,采用HTML档,未出台shiro的tag lib,假设你想利用这段时间s ...
随机推荐
- 树状数组 || JZOI 1024. @szefany 的树
题面:无 题解:无 代码: #include<cstdio> #include<cstring> #include<iostream> #include<al ...
- MTCP 在 64 位机器上不工作
今天打开以前写的 MTCP, 却无法运行. 报错如下: Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: ...
- Idea使用说明
快捷键 ctrl + alt + b : 查找接口的实现类 ctrl + h : 查找类或接口的继承关系 double shift : 搜索任何地方 ctrl + shift + n : 查找文件 c ...
- django分页
page_count = 1 current_page = int(request.GET.get('p',1)) course1 = Course.objects.all().order_by('- ...
- 【C++】约瑟夫环(数组+链表)
基于数组: #include<iostream> #include<cstring> #include<cstdlib> using namespace std; ...
- java集成微软的ad域,实现单点登录
1.ad域介绍: windos server 2008R2服务器下的ad域,见下图(我是在虚拟机安装到windos server) 2.连接ad域代码:(里面代码自行修改) public Result ...
- 遍历其 interator
当用户自定义数据结构的时候, 如果做遍历呢, 这个时候就需要遍历器 interator 了, 它允许用户定义遍历自己自定义数据结构的方式 当用户定义了iterator, 就可以使用 for of 来遍 ...
- UIPullRefreshFlash模块demo示例
UIPullRefreshFlash 模块概述:UIPullRefreshFlash模块对引擎新推出的下拉刷新接口进行了一层封装,app可以通过此模块来实现带炫酷动画效果的下拉刷新功能.使用此模块,在 ...
- 软件开发项目组各职能介绍 & 测试人员在团队中的定位
前言 接触了许多非测试和新入行的测试从业者,听到最多的问题就是:“测试是否被需要?“ 团队职能介绍 <暗黑者1>中有句台词,“专案组有五个职能角色构成,侦探.网警.痕迹 ...
- Linux-centos7下python3 环境设置
首先安装依赖包 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel open ...