一个JSP执行过程

执行过程图解

在这里插入图片描述

具体的代码:

1.jsp
在这里插入图片描述
在这里插入图片描述

注意几点:

1.当客户端向一个JSP页面发出请求时,Web Container(web容器,一般是Tomcatt)将JSP转化成Servlet的源代码(只在第一次请求时),然后编译转化后的Servlet并加载到内存中执行,执行的结果Response到客户端。
2.JSP只在第一次执行的时候会转化为Servlet,以后每次执行Web容器都是直接执行编译后的Servlet,所以JSP和Servlet只是在第一次执行的时候不一样,JSP慢一点,以后的执行都是相同的。
**3.**如果你修改了jsp文件中的代码,是需要重新启动服务器,加载编译jsp代码的。因为一旦修改,相当于重新写了一个jsp一样。

查看硬盘中1.jsp页面加载执行过后生成的servlet的java文件,以及对应的.class文件

IDEA并没有将jsp生成的相关文件放在Tomcat容器中,而是CATALINA_BASE中。当你启动服务器就会在控制台中看到这个目录。在这里插入图片描述

1.jsp页面,执行从被客户端请求,到生成.java (servlet)文件的和class(文件),最后响应给客户端的全过程如下:

在这里插入图片描述
修改1.jsp内容,重新启动服务器,查看是否重新生成了相关java和class的文件
在这里插入图片描述

重新生成了java和class的文件的执行全过程如下:

观察最后文件生成的时间,就知道修改jsp文件,确实会重新生成了相关java和class文件在这里插入图片描述

查看1.jsp被Tomcat容器生成的_1_jsp.java的内容,确定其是一个servlet。

它具有一个servlet的生命周期的init,destroy,以及service方法。
关于servlet的生命周期可参考这篇博文:servlet的生命周期
而且直接读取1.jsp里面的内容通过输出语句out.write输出到了浏览器上。
在这里插入图片描述

补充内容:

1.eclipse默认将发布到服务器上的项目放在work目录下:
下面中的文件分别是add.jsp,edit.jsp,index.jsp,list.jsp对应的.class和.java文件。(stums是项目名,org是指非盈利组织,是顶级域名中的一种,apache是阿帕奇公司)
在这里插入图片描述
2.看的仔细的同学,可能会注意为什么上面的1.jsp得到的java(servlet)和class(字节码)文件的文件名形式和add.jsp等不一样。
1.jsp是以"_“开头,生成的java文件名为”_1_jsp.java",对应的字节码文件名为"_1_jsp.class"。
add.jsp是其文件名"add"开头,生成的java文件名为"add_jsp.java",对应的字节码文件名为"add_jsp.class"。

这样看来jsp生成的Java和class文件名称的格式好像有两种标准一样,其实不然,标准只有一种
这里总结一下:jsp生成的java和class文件名称是以第二种add.jsp这种形式来生成对应的java和class文件的。
如果jsp文件名为Demo1.jsp,那么得到的servlet形式的java文件名称为Demo1_jsp.java和Demo1_jsp.class
在这里插入图片描述
那为什么1.jsp文件中生成的java文件会以"_"开头呢?而不是 1_jsp.java和1_jsp.class这种形式呢?
因为这涉及到了一个Java入门的基础知识 标识符的命名

标识符的命名

Java中的标识符由文本字符(包括字母,中文等),数字,下划线(_),美元符号($)组成,并且首字符不能是数字,不能包含任何嵌入的空格或点".",以及除下划线以外的特殊字符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值