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

2025-09-28 15:38:03

1、我们在开发工具IDEA中新建一个web项目名称为:jsp_demo,在web目录写创建hello.jsp

代码内容如下:

启动tomcat服务器进行访问

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

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

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

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

3、根绝后缀名匹配的原则,找到<servlet-name>为jsp的JspServlet

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

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

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

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

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

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

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

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

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

8、由于hello_jsp.java继承了抽象类HttpJspBase,HttpJspBase又继承了抽象类HttpServlet,因此最终会执行子类的_jspSerice方法

我们发现hello_jsp.java中将html的内容以response输出流的方式响应给浏览器,java代码正常的执行。

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢