首先,客户端发送URL请求,Tomcat服务器获取URL请求,如果获取的后缀名为.jsp,则Tomcat会将jsp文件交给Servlet容器处理
如果.jsp文件第一次被调用,会jsp翻译成Servlet,如果JSP不被修改将不会再被编译,否则将会再次编译。通常,在JSP文件没有被修改的前提下,JSP只会被编译一次,所以在第一次访问的时候访问的速度会比较慢。
编译过程如下:Tomcat调用service方法编译JSP文件,创建一个*_jsp.java文件保存到服务器的\work\Catalina\目录下的相对应的项目文件夹里面,该.java文件会被编译成。class文件,该java文件继承自父类HttpJspBase类,HttpJspBase继承自HttpServlet,所以jsp本质上是一个Servlet
创建HttpServletRequest和HttpServletResponse
调用*_jsp.java继承自父类HttpJspBase的方法service(request,response)
在service方法里面会调用_jspService(request,response)方法输出html返回给客户端