PHP技术是将PHP代码嵌入到HTML页面中,简单易用;而servlet技术却是将HTML页面潜入到Java类里面,复杂难用。Sun公司一看,这下完了,用户都跑到PHP阵营了,赶紧推出了JSP技术。

JSP全称Java Server Page,直译就是“运行在服务器端的页面”。我们可以直接在JSP文件里写HTML代码,使用上把它当做HTML文件,而且JSP中HTML/CSS/JS等的写法和HTML文件中的写法是一模一样的。

当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。也就是说JSP是运行在服务器端,但最终发给客户端的都已经是转换好的HTML静态页面(在响应体里),即:JSP = HTML + Java片段(各种标签本质上还是Java片段)。

JSP的本质就是servlet,每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,原先写在JSP里的HTML代码就自动放在了servlet类的out.println()里面。

JSP已经被一大堆框架给淹没了,算是被时代所抛弃了。JSP的问题是把前端后端揉杂在一起,增加开发人员负担,开发人员既需要懂前端又需要懂后端。所谓前后端分离就是对后端来说并不需要知道前台是怎么样的,它只需要响应前台的请求便可以。

虽然JSP技术被淘汰了,但是Servlet技术仍然具备强大的旺盛力。很多人会说Servlet技术过时了,学了没用。我以为他们抛弃这些所谓的旧技术,省下时间去学习新技术,会把新技术研究的更透彻。但是讽刺的是,说出这句话的他们,对于新出框架的了解又仅限于会用,并不比那么学习过时技术的人懂多少。因为Java Web里面的很多新技术,都是基于Servlet为基点打造的。