美文网首页
JSP 的本质是 servlet

JSP 的本质是 servlet

作者: blank_white | 来源:发表于2020-06-22 19:23 被阅读0次
image.png

1、在 tomcat 目录下, config/web.xml 文件

image.png

此文件是对所有 web 项目通用的 web.xml 配置文件,其中有这样的条目

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>

可以发现, 所有以 .jsp.jspx 为后缀的 url 都被转到 org.apache.jasper.servlet.JspServlet 去处理

2、org.apache.jasper.servlet.JspServlet

image.png
  • JspServlet 与 普通的 Servlet 一样,也是继承了 HttpServlet
image.png
  • 重写了 service 方法,其中经过一系列处理,将 3.jsp 文件 转成对应的 _3_jsp.java 文件,编译成 _3_jsp.class 文件,最后交由 类 _3_jsp 处理(第一次访问时,会生成编译,且如果 jsp 文件没有被修改过,则不会重新生成编译)

3、_3_jsp.java

生成的 .java 和 .class 在 work 目录下

image.png
image.png
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage {

// 不是完整的 HttpBase 
    @Override
    public final void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        _jspService(request, response);
    }

     
    @Override
    public abstract void _jspService(HttpServletRequest request,
                                     HttpServletResponse response)
        throws ServletException, IOException;

}

_3_jsp extends HttpBase extends HttpServlet
可以看到 _3_jsp 仍是 HttpServlet 的子类

image.png

对 service 方法也有重写

相关文章

  • JSP基本语法

    JSP本质是Servlet,每个JSP页面就是一个Servlet实例。在Tomcat中,JSP生成的Servlet...

  • JSP和Servlet

    JSP定义: Java Server Page,Java EE组件,本质是Servlet。JSP是Servlet的...

  • Java面试问题

    1、JSP: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP页面在执行的时...

  • 复习

    JSP: 1、jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP页面在执行的时...

  • java 面试

    一、javaWeb知识点: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP...

  • 关于创建Maven项目时Jsp页面报错处理方法

    JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。 ...

  • Java面试题系列(七)——Java Web

    1. JSP和Servlet区别   JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JS...

  • jsp与servlet的区别与联系

    jsp和servlet的区别和联系: 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,...

  • jsp

    什么是JSP?  JSP是Java Server Pages的缩写,JSP的本质是Servlet,因为JSP最终会...

  • Java面试(三):web开发

    Java Web 64. JSP 和 servlet 有什么区别? JSP 是 servlet 技术的扩展,本质上...

网友评论

      本文标题:JSP 的本质是 servlet

      本文链接:https://www.haomeiwen.com/subject/sxqfphtx.html