zoukankan      html  css  js  c++  java
  • JSP 学习笔记 | 一、JSP 原理理解

    前文:IDEA | 使用Maven创建Web项目并配置Tomcat

    JSP(全称:Java Server Pages):Java 服务端页面。是一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容,也就是 JSP = HTML + Java,下面详细解释。

    JSP 就是一个页面,那么在 JSP 中写 html 标签,我们能理解,但是为什么还可以写 Java 代码呢?

    因为 JSP 本质上就是一个 Servlet。接下来我们聊聊访问jsp时的流程

    image-20210818111039350
    1. 浏览器第一次访问 hello.jsp 页面
    2. tomcat 会将 hello.jsp 转换为名为 hello_jsp.java 的一个 Servlet
    3. tomcat 再将转换的 servlet 编译成字节码文件 hello_jsp.class
    4. tomcat 会执行该字节码文件,向外提供服务

    利用 Maven tomcat 插件运行一下项目后我们可以到项目所在磁盘目录下找 target/tomcat/work/Tomcat/localhost/jsp-demo/org/apache/jsp/ 目录,而这个目录下就能看到转换后的 servlet

    打开 index_jsp.java 文件,来查看里面的代码

    由上面的类的继承关系可以看到继承了名为 HttpJspBase 这个类,那我们去tomcat源码中查看该类的继承关系。

    apache-tomcat-8.5.68\java\org\apache\jasper\runtime ,该目录下就有 HttpJspBase 类,查看该类的继承关系

    可以看到该类继承了 HttpServlet ;那么 hello_jsp 这个类就间接的继承了 HttpServlet ,也就说明 index_jsp 是一个 servlet

    继续阅读 index_jsp 类的代码,可以看到有一个名为 _jspService() 的方法,该方法就是每次访问 jsp 时自动执行的方法,和 servlet 中的 service 方法一样 。

    而在 _jspService() 方法中可以看到往浏览器写标签的代码:

    以前我们自己写 servlet 时,这部分代码是由我们自己来写,现在有了 jsp 后,由tomcat完成这部分功能。

    The desire of his soul is the prophecy of his fate
    你灵魂的欲望,是你命运的先知。

  • 相关阅读:
    多重共性和VIF检验
    类和对象
    哈希桶
    第9章 硬件抽象层:HAL
    第10章 嵌入式Linux的调试技术
    第8章 让开发板发出声音:蜂鸣器驱动
    第7章 LED将为我闪烁:控制发光二极管
    第6章 第一个Linux驱动程序:统计单词个数
    第5章 搭建S3C6410开发板的测试环境
    第四章:源代码的下载与编译
  • 原文地址:https://www.cnblogs.com/RioTian/p/15646309.html
Copyright © 2011-2022 走看看