JSP运行原理,Java代码如何被执行?
1、我们在开发工具IDEA中新建一个web项目名称为:jsp_demo,在web目录写创建hello.jsp
代码内容如下:
启动tomcat服务器进行访问
1、浏览器发起请求,向服务器获取hello.jsp
2、会去tomcat的conf目录下的web.xml中寻找对应的映射路径
3、根绝后缀名匹配的原则,找到<servlet-name>为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代码正常的执行。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:88
阅读量:47
阅读量:76
阅读量:20
阅读量:42