JSP页面执行过程-JSP笔记-4

环境

  1. Eclipse Java EE IDE for Web Developers.
    Version: Neon.1a Release (4.6.1)
  2. Apache Tomcat version: 8.0.39

开始

整体过程感受:

当我们请求WEB容器中的JSP页面时,WEB容器便将被访问的页面交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。

每个JSP页面在第一次被访问时,JSP引擎先将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。

由于每台服务器的环境不同,具体的由Tomcat中的JSP引擎转译的源码地址也就不一样。在我本机的环境中,我可以通过查看控制台的相关提示,就可以快速找到与我项目中jsp文件对应的java文件和class文件。示例图如下。(当然如果你实在想了很多办法也没能找到jsp转译的相关文件位置,那就用最笨的方法,来个具体盘搜索,或者直接来个全盘搜索,搜索格式为:jsp文件名+_jsp+.java)

Console Infos

JSP的具体执行过程如下:

  1. 客户端发出请求。
  2. Web容器将JSP转译成Servlet源代码。
  3. Web容器将产生的源代码进行编译。
  4. 把执行结果响应至客户端。

总结如下:

JSP执行过程:

  1. 首先,客户端发出请求(request ),请求访问JSP网页
  2. 接着,JSP Container将要访问的.JSP文件 转译成Servlet的源代码(.java文件)
  3. 然后,将产生的Servlet的源代码(.java文件)经过编译,生成.class文件,并加载到内存执行
  4. 最后把结果响应(response )给客户端

补充:执行JSP网页文件时,需要经过两个时期:转译时期(TranslationTime)和请求时期(RequestTime)。

  • 转译时期:JSP转译成Servlet类(.class文件)。

    • 将JSP网页转译为Servlet源代码(.java),此段称为转译时期(Translation time);将JSP网页转译为Servlet源代码(.java),此段称为转译时期(Translation time);
    • 将Servlet源代码(.java)编译成Servlet类(.class),此阶段称为编译时期(Compilation time)。
      其实,JSP就是一个Servlet。
  • 请求时期:Servlet类(.class文件)执行后,响应结果至客户端。

Author: bugwz
Link: https://bugwz.com/2016/12/02/jsp-4/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.