JSP学习总结(三)

四、为什么jsp就是servlet?

  打开Tomcat服务器的work目录,找到jsp文件翻译的java文件。类声明如下

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.text.SimpleDateFormat;
import java.util.*;

public final class _01_demo_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final javax.servlet.jsp.JspFactory _jspxFactory =
          javax.servlet.jsp.JspFactory.getDefaultFactory();

  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;

  private volatile javax.el.ExpressionFactory _el_expressionfactory;
  private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;

  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
    return _jspx_dependants;
  }
....
}

可以看到 _01_demo_jsp类继承自org.apache.jasper.runtime.HttpJspBase类。此时,我们可以打开Tomcat目录下的lib目录,找到jasper.jar包,使用解压软件打开,找到rumtime下的HttpJspBase.class文件。如下图:

将其提取出来,并拷贝到eclipse项目中。然后在eclipse中双击该class文件,可以获取如下信息:

org.apache.jasper.runtime.HttpJspBase类继承javax.servlet.http.HttpServlet类。由此可知,jsp本质上就是一个servlet程序。

posted @ 2017-10-15 03:00  浮生_如梦  阅读(189)  评论(0编辑  收藏  举报