jsp的痛有几个人明白

1、无法做到动静分离

传统java程序通过war包形式支配到tomcat,除了java代码和jsp页面,还包括css、js、图片等静态资源,一旦个中的某个jsp页面出问题,会导致部分功能不可用,乃至做事器相应壅塞,无法对外供应做事。

2、分工折衷性差

jsp并发jsp的10年是谁让它如斯落幕 Angular

jsp实质上是一个java类,以是早期java开拓职员是前后端开拓任务全卖力,而UI设计师把设计好的html页面给开拓职员集成,这个须要双方共同折衷完成,效率低下,很难完成需求快速更新迭代,持续交付。

3、并发、吞吐量差

由于jsp实质是java类,只能放在web做事器(如tomcat),以是jsp不能支配到并发性能更好的nginx或者apache下,这是很多人诟病java web性能不好的缘故原由之一。

4、扩展性差

jstl内置的一些tag标签耦合java代码(类似于react中的component组件),很难做到只修正页面而不用修正java代码,扩展性很差。

5、页面加载慢(同步机制)

如果一个页面承载的内允许多(如表单、表格、详情),会导致页面加载很慢。
究其缘故原由是jsp内在特性决定的。

jsp初始化流程

首先,jsp页面会初始化为servlet的class文件

其次,在servlet代码中解析jsp tag标签,转换成html网页标签

末了,以流的办法输出html网页

这里有个要命的问题,从jsp转换成html到浏览器渲染是一个同步过程。
也便是说,如果数据加载很慢,会导致全体页面出不来。

前后端分离思想

1、动静分离,前端软负载架构

后端代码(如java)和前端(html、js、css、图片等)分离,单独支配。

前端程序强调静态资源,会单独支配到抗压能力更强的nginx下。
而后端程序由于剥离了页面、js、css、图片,以接口形式对外供应做事,

做事能力下沉(根本平台能力,sass做事化能力)。

2、分工明确

3、异步加载机制

如果页面须要多次ajax调用,不须要同步进行,异步加载实现局部刷新。

4、组件化

以react、vue、angular为代表前端框架,提出组件化、框架化、复用性等工程化编程,使的前端也可以像后端那样供应可复用性、可扩展性、高可用性的前端程序。

小结

笔者认为,前后端分离思想是一种趋势,更深层次是技能更新很快,我们要与时俱进,时候更新自己的知识库。
当然对付之前不理解jsp的同学还是要去学习下,毕竟很多技能发展是有继续性的。

末了

如果以为本文对您有帮助的话,记得关注、转发哦,我会为大家持续供应原创干货。
须要资料,请关注、转发,私信“资料”口试+微做事+springboot资料免费赠予。