jsp 的运行原理

举报
yd_249383650 发表于 2023/03/18 22:31:28 2023/03/18
【摘要】 ​jsp 的本质 ,其实是一个 Servlet 程序。首先我们去找到我们 Tomcat 的目录下的 work\Catalina\localhost 目录。当我们发布 day09 工程。并启动 Tomcat服务器后。我们发现 在 work\Catalina\localhost 目录下多出来一个 day09 目录。​编辑一开始 day09 目录还是空目录。  ​编辑然后,我们在浏览器输入一个 j...

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

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

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


编辑

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

编辑

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

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

编辑

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

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

 

 编辑

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

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

编辑

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

编辑

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

 编辑

小结:

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

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 方法中原样输出。

 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。