jsp被淘汰本身并不是因为技术落后的原因,它之所以被淘汰是因为行业趋势;现在强调前后端分离,前端写前端的代码,后端写后端的代码,没有必要将前端和后端代码融合在一起,所以jsp使用就受限了。
jsp出现的原因
jsp这个技术的出现是为了解决一个什么问题?
先看如下情况:
在Java代码中,服务器要响应一个HTML页面给浏览器,需要将标签拼接在代码中。
这样一顿操作下来就会显得十分地繁琐,操作麻烦不说,阅读性还差。
那有没有什么方法解决这个问题呢?
jsp技术就应运而生了,在jsp文件中,既能写Java代码,又能写HTML代码,特别地厉害。
jsp定义
JSP全名为Java Server Pages,翻译为java服务器页面,其本质是一个简化的Servlet。
它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。
大白话就是一个既能书写Java代码又能书写HTML代码的文件。
jsp为什么被淘汰了?
jsp被淘汰本身并不是因为技术落后的原因,它之所以被淘汰是因为行业趋势。
现在强调前后端分离,前端写前端的代码,后端写后端的代码,没有必要将前端和后端代码融合在一起,所以jsp使用就受限了。
当然也并不是完全就没人用了,只是用的少了。
使用 JSP 的痛点:
动态资源和静态资源全部耦合在一起,无法做到真正的动静分离。服务器压力大,因为服务器会收到各种http请求,例如css的http请求、js的、图片的、动态代码的等等。一旦服务器出现状况,前后台一起玩完,用户体验极差。
前端工程师做好html后,需要由Java工程师来将html修改成jsp页面,出错率较高(因为页面中经常会出现大量的js代码),修改问题时需要双方协同开发,效率低下。
JSP 必须要在支持Java的Web服务器里运行(例如tomcat等),无法使用nginx等(nginx单实例http并发高达5w),性能提不上来。
第一次请JSP,必须要在web服务器中编译成servlet,第一次运行会较慢。
每次请求JSP都是访问Servlet再用输出流输出的html页面,效率没有直接使用html高。
JSP 内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到很多痛点。
如果JSP中的内容很多,页面响应会很慢,因为是同步加载。
基于上述的一些痛点,我们应该把整个项目的开发权重往前移,实现前后端真正的解耦!