JSP的全称是 java server pages,直译就是“运行在服务器端的页面”
JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP = HTML+Java代码
JSP页面本质上就是一个 Servlet 程序。
JSP的产生 产生过程:上古时代,通常情况是美工写好html静态页面后,丢给Java程序员。Java程序猿在Servlet中调用Service拿到数据后,逐句复制html静态页面上的html语句到Servlet的中,根据情况将后端的数据与html片段拼接在一起,然后以诸如
这使得 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。
所以sun公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。JSP应运而生。
JSP的作用及原理 作用:JSP主要作用是代替 Servlet 程序回传 html 页面的数据。
执行流程:
WEB容器接收到以.jsp为扩展名的URL的访问请求时,它将把该请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。
每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。
【存放位置】
Tomcat把为JSP页面创建的Servlet源文件和class类文件放置在“
打开上面的index_jsp.java,观察index.jsp被翻译成Servlet后的源码,可以看到:
也就是说,虽然我们不用像上古时期一样手动复制html语句到Servlet了,但是JSP编译后的Java类其实还是在out.println()输出。和我们手动复制是一样的结果。
而index_jsp.java这个类继承了HttpJspbase,而HttpJspbase间接实现了Servlet接口。所以可以说,index.jsp被翻译后的Java类也是一个Servlet,所以JSP本质也是一个Servlet。
本质:JSP通过JSP引擎被翻译成了servlet
参考:浅谈JSP - bravo1988的文章 - 知乎https://zhuanlan.zhihu.com/p/42343690
上面篇文章更为详细,想要了解更多去上面的文章看看



