1. 程式人生 > >JSP學習總結(三)

JSP學習總結(三)

vol actor time 為什麽 pso ack sta instance 9.png

四、為什麽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程序。

JSP學習總結(三)