1 什么是JSP
新建一个JSPTest类实现HttpJspPage,重写对应的方法
可以发现 HttpJspPage 继承JspPage , JspPage 继承了Servlet
结论:JSP封装了Servlet,本质还是一个Servlet
2 JSP是如何被Tomcat执行的
准备工作:创建一个Maven工程的web项目,那么默认首页就是index.jsp
启动Tomcat,浏览器显示Hello World
我们知道Tomcat只解析Java代码,那么我们猜想这些代码一定是被转换成了Java代码,不信往下看
<html>
<body>
<h2>Hello World!</h2>
<%
String name = "duowei";
%>
name <%=name%>
</body>
</html>
我们去Idea系统目录看一下,在Tomcat执行JSP的时候究竟做了些什么?
我们看到了index_jsp.java 和 index_jsp.class 两个文件
打开Java我们发现我们熟悉的 Init 、 destory 、service
继续往下走,我们发现这些HTML标签被套上了Servlet的输出打印方法(渲染),那么如果没有JSP,我们要想输出HTML,也要这么麻烦的写 out.write()
3 总结
阅读上面内容,我们大致了解了,JSP就是Servlet的封装,Tomcat会帮助你生成Java类文件和Class文件
- 用户请求JSP页面
- Tomcat将JSP页面转化成Java文件
- Tomcat再将Java文件编译成class文件
- 最后Tomcat解析class文件
- 解析的结果打包成response