JSP运行原理

JSP运行原理:


1577256088(1).jpg

1.当服务启动,第一次请求index.jsp时,index.jsp页面被翻译成index_jsp.java和index_jsp.class文件,被放在镜像服务器的work目录下


1577256228(1).jpg

2.index_jsp.java继承了HttpJspBase,而HttpJspBase继承了HttpServlet,所以index_jsp.java是一个Servlet
1577256318(1).jpg

3.每次请求index.jsp,就会调用index_jsp.java的_jspService()方法,该方法就是向浏览器写整个页面


1577256610(1).jpg

![1577256610(1).jpg](https://upload-images.jianshu.io/upload_images/18688340-dab6afb42b6a9741.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

1577256592(1).jpg

4.然而每一个servlet都应该对应一个servlet-mapping,但是去项目的web.xml文件中查看并没有发现servlet的配置信息
1577256808(1).jpg

再去Tomcat镜像服务器的web.xml文件中查看servlet的配置信息(注意:项目的web.xml文件相当于镜像服务器的web.xml文件的子类)。
可以发现镜像服务器的web.xml文件中的信息如下图
1577256985(1).jpg
1577257003(1).jpg

所有的以jsp,或者jspx结尾的请求,都会被交给JspServlet整个类进行处理。而这个类继承了HttpServlet
调用JspServlet这个类的service方法(),该方法就是去执行镜像服务器的对应的.class文件。
5.最后梳理一下整个流程


1577257688(1).jpg

你可能感兴趣的:(JSP运行原理)