关于JSP的工作原理

关于JSP的工作原理

         JSP实际上就是一种Servlet,但是与HttpServlet的工作方式不太一样。HttpServlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署。而JSP则是先部署源代码后编译为class文件的,先部署后编译。JSP会在客户端第一次请求JSP文件时被编译为HttpJspPage类(接口Servlet的一个子类)。该类会被服务器临时存放在服务器工作目录里。

         我们来看一下JSP的编译过程。客户第一次请求FirstJsp.jsp时,Tomcat先将FirstJsp.jsp转换为标准的Java源代码FirstJsp_jsp.java,存放在apache-tomcate-version\work\Catalina\localhost\jsp\org\apache\jsp目录下,并将FirstJsp_jsp.java编译为类文件FirstJsp_jsp.class。该class文件便是JSP对应的Servlet。编译完毕后再运行class文件来响应客户端请求。以后客户端访问FirstJsp.jsp时,服务器将不再重新编译文件,而是直接调用FirstJsp_jsp.class来响应客户端请求。

         由于JSP只会在客户端第一次请求的时候被编译,因此第一次请求JSP时会感觉有点慢。而之后的请求因为不会编译JSP,所以速度就快多了。如果将Tomcat保存的JSP编译后的class文件删除,Tomcat也会重新编译JSP。

         在实际项目中我们经常需要修改jsp文件。Tomcat能够自动检测到JSP程序的改动。如果检测到JSP源代码发生了改动,Tomcat会在下一次客户端请求JSP时重新编译JSP,而不需要重启Tomcat。这种自动检测功能是默认开启的,检测改动会消耗少量的时间。在部署Web应用程序的时候可以在web.xml中将它关掉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值