原文连接: 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
css
动态资源和静态资源所有耦合在一块儿,没法作到真正的动静分离。服务器压力大,由于服务器会收到各类http请求,例如css的http请求、js的、图片的、动态代码的等等。一旦服务器出现情况,先后台一块儿玩完,用户体验极差。html
前端工程师作好html后,须要由Java工程师来将html修改为jsp页面,出错率较高(由于页面中常常会出现大量的js代码),修改问题时须要双方协同开发,效率低下。前端
JSP 必需要在支持Sava的Web服务器里运行(例如tomcat等),没法使用nginx等(nginx听说单实例http并发高达5w,这个优点要用上),性能提不上来。java
第一次请JSP,必需要在web服务器中编译成servlet,第一次运行会较慢。nginx
每次请求JSP都是访问Servlet再用输出流输出的html页面,效率没有直接使用html高。web
JSP 内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到不少痛点。spring
若是JSP中的内容不少,页面响应会很慢,由于是同步加载。编程
基于上述的一些痛点,咱们应该把整个项目的开发权重往前移,实现先后端真正的解耦!
后端
先后端分离已经不是什么趋势了,而是当前B/S架构开发的主流模式。先后端分离以后,前端只负责展示和交互,后端负责核心业务逻辑。先后端经过API进行交互,而且最好符合RESTful风格。服务器端把数据返回给前端就再也不关心这些数据用在哪里、如何布局、什么样式。
spring-mvc
从Spring 5开始,在原有的基于Servlet技术的Spring MVC以外增长了一个新的编程模型,就是Spring WebFlux。
Spring WebFlux是响应式非阻塞的,并且不支持Servlet API,因此也就不支持JSP!