网站首页 > 精选教程 正文
前言
随着容器技术(docker、k8s)以及微服务架构逐步成熟和发展,这种强调后端分离思想让jsp这个陪伴我近10年的页面渲染技术宣告落幕了,有点伤感。。。
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资料免费赠送。
猜你喜欢
- 2024-10-12 从中游公司跳槽阿里必知:K8s、Nginx、Redis、微服务面试文档
- 2024-10-12 为什么要放弃 JSP?他们终于给出了答案
- 2024-10-12 写 JSP 的痛点,真的非常痛 10个日常生活中的痛点问题
- 2024-10-12 真的吗,Java 的 JSP 已经被淘汰了?
- 2024-10-12 为什么要放弃 JSP? 为什么要放弃白龙尾岛
- 2024-10-12 为什么JavaWeb放弃jsp,去做前后端分离
- 2024-10-12 好程序员Java学习路线分享jsp为什么用的不多了
- 2024-10-12 Java 的 JSP 已经被淘汰了吗? jsp淘汰了为什么还有人用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)