昊漫玉 发表于 2015-8-10 10:38:43

Tomcat之JSP运行原理之小试牛刀

  最近空闲看了下JSP/Servlet,以前只知道用JSP,但是对其运行原理知之甚少,今在此做些笔记,以备查阅。
  首先简要描述下其运行过程,然后结合Tomcat源码作简要分析。
  JSP运行过程:
  第一步:将JSP文件翻译成servlet源代码;
  第二步:将servlet源代码编译成字节码文件;
  第三步:载入字节码并实例化和初始化;
  第四步:调用service方法提供服务;
  源码简要分析如下:
  1、源码中涉及到的几个重要文件
  JspServlet.java、JspServletWrap.java、JspRuntimeContext.java、Compiler.java、JDTCompiler.java(AntCompiler.java)
  2、代码详细分析
  JspServlet中涉及两重要方法:service方法和serviceJspFile,service方法主要用于获取请求JSP资源路径,serviceJspFile主要用于构建JspServletWrap。
  JspRuntimeContext主要提供JspServletWrap的容器(用的是HashMap集合)。
  Compiler主要用来翻译JSP文件和将其编译成字节码,具体的字节码产生实现由其子类实现(用到模版方法设计模式)。
  JDTCompiler(AntCompiler)主要用来产生字节码文件。
  JspServletWrap主要用来实例化Servlet并调用init进行初始化处理,并且调用servlet的service方法进行处理请求。
  
  具体实现细节等进一步探究,今天就先写到这,本人水平有限,如有不妥望指点!
  
页: [1]
查看完整版本: Tomcat之JSP运行原理之小试牛刀