为什么 JSP 要被淘汰?

原文链接: https://www.baidu.com/link?url=ewQ_DU2i8g9N4CgX8IbzEK44LvtlLx2tVSlPWGj-_35YT02al0s_hrcKAaMW0yjp&wd=&eqid=d0c211620002ea48000000065eca25f8
原文链接: https://www.baidu.com/link?url=6eaviV_L2sOq43Rl_2a68AhSOij8RXvGbbxYALIHzUWqmgj8lUqY9XpxzweZHjXG&wd=&eqid=d0c211620002ea48000000065eca25f8
 

1使用 JSP 的痛点:

  1. 动态资源和静态资源全部耦合在一起,无法做到真正的动静分离。服务器压力大,因为服务器会收到各种http请求,例如css的http请求、js的、图片的、动态代码的等等。一旦服务器出现状况,前后台一起玩完,用户体验极差。

  2. 前端工程师做好html后,需要由Java工程师来将html修改成jsp页面,出错率较高(因为页面中经常会出现大量的js代码),修改问题时需要双方协同开发,效率低下。

  3. JSP 必须要在支持Sava的Web服务器里运行(例如tomcat等),无法使用nginx等(nginx据说单实例http并发高达5w,这个优势要用上),性能提不上来。

  4. 第一次请JSP,必须要在web服务器中编译成servlet,第一次运行会较慢。

  5. 每次请求JSP都是访问Servlet再用输出流输出的html页面,效率没有直接使用html高。

  6. JSP 内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到很多痛点。

  7. 如果JSP中的内容很多,页面响应会很慢,因为是同步加载。

基于上述的一些痛点,我们应该把整个项目的开发权重往前移,实现前后端真正的解耦!
 

前端框架已经非常成熟和稳定,不需要JSP

前后端分离已经不是什么趋势了,而是当前B/S架构开发的主流模式。前后端分离之后,前端只负责展现和交互,后端负责核心业务逻辑。前后端通过API进行交互,并且最好符合RESTful风格。服务器端把数据返回给前端就不再关心这些数据用在哪里、如何布局、什么样式。
 

服务器端的Spring MVC/WebFlux 和 Spring Boot已经开始抛弃JSP

从Spring 5开始,在原有的基于Servlet技术的Spring MVC之外增加了一个新的编程模型,就是Spring WebFlux。

Spring WebFlux是响应式非阻塞的,而且不支持Servlet API,所以也就不支持JSP!
 

一个现代主流Java Web应用,不管前端、后端、还是微服务架构,都在淘汰JSP。其中,Java服务器端主流技术还是Spring(Spring Boot + Spring MVC + Spring Cloud)。

猜你喜欢

转载自www.cnblogs.com/ynzj123/p/12951343.html