我们之前说 JSP 就是一个页面,那么在 JSP 中写 html 标签,我们能理解,但是为什么还可以写 Java 代码呢?
    因为 ==JSP 本质上就是一个 Servlet。==接下来我们聊聊访问jsp时的流程image-20210818111039350.png

    1. 浏览器第一次访问 hello.jsp 页面
    2. tomcat 会将 hello.jsp 转换为名为 hello_jsp.java 的一个 Servlet
    3. tomcat 再将转换的 servlet 编译成字节码文件 hello_jsp.class
    4. tomcat 会执行该字节码文件,向外提供服务

    我们可以到项目所在磁盘目录下找 target\tomcat\work\Tomcat\localhost\jsp-demo\org\apache\jsp 目录,而这个目录下就能看到转换后的 servlet
    目录位置
    C:\Users\10583.SmartTomcat\mavenDemo01\mavenDemo01\work\Catalina\localhost\mavenDemo01\org\apache\jspimage-20210818112613589.png
    打开 hello_jsp.java 文件,来查看里面的代码image-20210818112724462.png
    由上面的类的继承关系可以看到继承了名为 HttpJspBase 这个类,那我们在看该类的继承关系。那么 hello_jsp 这个类就间接的继承了 HttpServlet ,也就说明 hello_jsp 是一个 servlet。
    继续阅读 hello_jsp 类的代码,可以看到有一个名为 _jspService() 的方法,该方法就是每次访问 jsp 时自动执行的方法,和 servlet 中的 service 方法一样 。
    而在 _jspService() 方法中可以看到往浏览器写标签的代码:image-20210818114008998.png
    以前我们自己写 servlet 时,这部分代码是由我们自己来写,现在有了 jsp 后,由tomcat完成这部分功能。