首页 > 其他分享 >jsp 的运行原理

jsp 的运行原理

时间:2022-10-29 15:31:41浏览次数:54  
标签:index day09 java 文件 jsp 原理 Servlet 运行


jsp 的本质 ,其实是一个 Servlet 程序。

首先我们去找到我们 Tomcat 的目录下的 work\Catalina\localhost 目录。当我们发布 day09 工程。并启动 Tomcat

服务器后。我们发现 在 work\Catalina\localhost 目录下多出来一个 day09 目录。

 

jsp 的运行原理_servlet

 

一开始 day09 目录还是空目录。  

jsp 的运行原理_tomcat_02

 

然后,我们在浏览器输入一个 jsp 文件的访问路径访问。 比如 http://127.0.0.1:8080/day09/index.jsp 访问 index.jsp 文件

day09 目录马上会生成 org\apache\jsp 目录。 并且在会中有两个文件。

jsp 的运行原理_java_03

 

index_jsp.class 文件很明显是 index_jsp.java 源文件编译后的字节码文件。 那么 index_jsp.java 是个什么内容呢?

生成的 java 文件名,是以原来的文件名加上_jsp 得到。 xxxx_jsp.java 文件的名字 我们打开 index_jsp.java 文件查看里面的内容: 发现,生成的类继承于 HttpJspBase 类。这是一个 jsp 文件生成 Servlet 程序要继承的基类!!!


 

jsp 的运行原理_servlet_04

于是,我们关联源代码。去查看一下 HttpJspBase 类的内容。从源码的类注释说明中,我们发现。HttpJspBase 这个 类就是所有 jsp 文件生成 Servlet 程序 

需要去继承的基类。并且这个 HttpJspBase 类继承于 HttpServlet 类。所以 jsp 也是一个 Servlet 小程序。

jsp 的运行原理_tomcat_05

 

我们分别在工程的 WebContent 目录下创建多个 jsp 文件。然后依次访问。它们都被翻译为.java 文件并编译成 为.class 字节码文件 

jsp 的运行原理_开发语言_06

 

我们打开 index_jsp.java 文件查看里面的内容不难发现。jsp 中的 html 页面内容都被翻译到 Servlet 中的 service方法中直接输出

 

jsp 的运行原理_类继承_07

小结:

从生成的文件我们不难发现一个规则。

a.jsp 翻译成 java 文件后的全名是 a_jsp.java 文件

b.jsp 翻译成 java 文件后的全名是 b_jsp.java 文件

那么 当我们访问 一个 xxx.jsp 文件后 翻译成 java 文件的全名是 xxx_jsp.java 文件

xxx_jsp.java 文件是一个 Servlet 程序。原来 jsp 中的 html 内容都被翻译到 Servlet 类的 service 方法中原样输出。



标签:index,day09,java,文件,jsp,原理,Servlet,运行
From: https://blog.51cto.com/u_15786786/5806150

相关文章