zoukankan      html  css  js  c++  java
  • 大浪淘沙,JSP终将死去

    首先讲明,我不是标题党。

    这纯属我个人的意见。勿喷。


    先来讲讲JSP是怎么出现的吧.


    在早期的WEB中,JS。CSS远未成熟,技术慷慨向并不明白!因为前端语言的匮乏。各家大公司都推出基于后端的模板语言。

    比方JSP,ASP,PHP等。


    这些基于后台的模板语言引领了一个时代 !


    比方在JSP中,内置基本数据对象,外加自己定义Tag。能够实现“半组件式”的开发,这在当时大大加快了系统的开发速度。



    但在在这些server模板语言中,单就JSP而言。存在着一些无言的痛点:


    1. 页面无法保存数据

    除了网页中保存数据。其它并没有保存数据的地方。比如当前登陆用户,用于页面计算的辅助数据等。

    做过JSP的都知道。到处使用 input[type="hidden"]来存储数据,一方面导致页面HTML越来越大,渲染越来越慢。

    还有一方面,这些代码都是游离于架构之外,早晚有一天会雪崩。千里之堤毁于蚁穴!


    2. 全然黑盒执行

    JSP终于会编译成Class文件执行。它的执行机制全然黑盒的。

    多少次,JSP报错,仅仅能靠“猜”解决这个问题。

    黑盒导致的另外问题是。不能单独执行。

    比方一张表单,想作为邮件发送给用户。JSP并不能实现,仅仅能用HTML重写一遍。这简直不能忍受。


    所以非常多公司都搭配FreeMarker,或者JasperReport使用,来单独实现打印等功能。这就要求员工有很多其它的技术压力,不要以为这是好事,这是运营成本!


    3. 粒度太粗

    怎样理解粒度太粗呢? 比方,有一个页面,想要重用,或者页面中的某些HTML想重用。因为JSP和后台数据严格相应。而且JSP不能分离,不可能做到。

    而在开发中。假设做不到最小粒度的重用。你将迷失在复制粘贴的海洋中。

    假设你不认为复制粘贴有什么问题。仅仅能说明你还停留在码农的层次。


    基于如上。非常多人舍弃了JSP,转向了FreeMarker,Velocity等分离的模板语言!

    这些语言都是针对JSP的缺点做了改进。拿FreeMarker来说吧。


    1.能够单独执行,意味着用户能够重用页面。比方上面说的表单发送邮件。能够直接使用FreeMarker生成HTML。而不用又一次写另外一套。

    2. 更小粒度的组件宏,用起来比JSP稍具灵活性。


    FreeMarker。Velocity作为后台模板语言。它们依旧没有解决一些核心问题。比方:页面无法存储经常使用的数据。无法脱离后台执行等问题。

    可是它们作为生成报表,格式打印。邮件模板等工具却越来越流行。

    使用FreeMarker打印,要比JasperReport的打印,轻量了不止一个数量级。


    可是它们也仅仅能作为JSP的过渡产品,以及一些特殊的使用方法,作为页面逻辑展示,也越显吃力。

    时代在发展,技术更是日新月异!

    基于后台的模板语言。始终把“前端”都摆在一个“辅助”的位置上,它一直在为了做“主力”而奋斗着...



    随着Web的发展,JS的稳定以及流行,终于基于JS的模板语言出现了。

    比如简单精炼的Underscore Template。Mustache,支持自己定义标签的Handlebars等。


    基于JS的模板能够更小粒度定义,执行基于JS,相关的数据直接存储在JS中,方便使用。

    JS模板能够基于不论什么JS引擎执行,那么打印以及发送邮件这类问题,都能够不使用其它工具直接实现,降低了开发者的技术压力。


    眼下流行的前端MVC框架。如Backbone,AngularJS。ReactJS...等等,都是基于模板来执行。

    随着Web的持续发展。JS模板终将或者已经成为主流。



    而已经年迈的JSP,明显已跟不上时代的脚步,终将慢慢逝去...








  • 相关阅读:
    网络编程 TCP
    网络编程之 osi七层协议
    面向对象之元类,单例
    面向对象之异常处理
    面向对象之多态
    面向对象之封装
    mysql 单表查询
    mysql 行(记录)的详细操作
    mysql 库表的操作
    数据库初识
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7190307.html
Copyright © 2011-2022 走看看