jsp的痛有几个人明白
1、无法做到动静分离
传统java程序通过war包形式支配到tomcat,除了java代码和jsp页面,还包括css、js、图片等静态资源,一旦个中的某个jsp页面出问题,会导致部分功能不可用,乃至做事器相应壅塞,无法对外供应做事。
2、分工折衷性差
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资料免费赠予。