多语言展示
当前在线:1860今日阅读:55今日分享:34

JSP运行原理,Java代码如何被执行?

我们知道JSP可以编写html代码,也可以编写java代码,那么这些html的内容是如何展示在浏览器上的?java代码是如何被执行的?带着这些问题我们一起来看下JSP的运行原理,了解了运行原理这些问题将会迎刃而解。
工具/原料
1

计算机

2

JSP毕业设计源码、论文: https://pan.baidu.com/s/1mic8hs8 密码: v3ge

准备工作

我们在开发工具IDEA中新建一个web项目名称为:jsp_demo,在web目录写创建hello.jsp代码内容如下:启动tomcat服务器进行访问

运行流程分析
1

浏览器发起请求,向服务器获取hello.jsp

2

会去tomcat的conf目录下的web.xml中寻找对应的映射路径

3

根绝后缀名匹配的原则,找到为jsp的JspServlet

4

JspServlet会将hello.jsp翻译为hello_jsp.java,同事便以为hello_jsp.class该文件在IDEA发布项目的虚拟路径的work目录下:

5

翻译后的hello_jsp.java,继承了抽象类HttpJspBase

6

HttpJspBase继承了抽象类HttpServlet注意:HttpJspBase在tomcat的lib目录下的jasper.jar中,解压后通过IDEA的反编译可以看到继承关系

7

此时会执行HttpServlet的service方法,通过查看源码我们发现service方法调用的是_jspSerice方法

8

由于hello_jsp.java继承了抽象类HttpJspBase,HttpJspBase又继承了抽象类HttpServlet,因此最终会执行子类的_jspSerice方法我们发现hello_jsp.java中将html的内容以response输出流的方式响应给浏览器,java代码正常的执行。

注意事项
1

JSP就是Servlet,被编译后的java文件继承了HttpServlet遵循了Servlet的规范

2

JSP的执行时通过tomcat现将JSP文件翻译为Servlet在执行

推荐信息