首页常见问题正文

Java培训:JSP运行原理是什么?

更新时间:2023-11-07 来源:黑马程序员 浏览量:

IT培训班

  JSP的工作模式是请求/响应模式,客户端首先发出HTTP请求,JSP程序收到请求后将进行处理并返回处理结果。在一个JSP文件第一次被请求时,JSP引擎(容器)把该JSP文件转换成一个Servlet,而这个引擎本身也是一个Servlet。JSP的运行原理如图11-4所示。

1699321717195_JSP的运行原理是什么.jpg

  图11-4 JSP的运行原理

  JSP的运行过程具体如下。

  (1)客户端发出请求,请求访问JSP文件。

  (2)JSP容器先将JSP文件转换成Java源文件(Java Servlet源程序),在转换过程中,如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。

  (3) 如果转换成功,则JSP容器会将生成的Java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样处理它。

  (4)由Servlet容器加载转换后的Servlet类(class文件)创建一个该Servlet(JSP页面的转换结果)的实例,并执行Servlet的jspInit()方法。jspInit()方法在Servlet的整个生命周期中执行一次。

  (5)执行jspService()方法处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程处理它。如果多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,使每一个客户端请求都对应一个线程。

  (6)如果JSP文件被修改了,则服务器将根据设置决定是否对该文件重新进行编译,如果需要重新编译,则使用重新编译后的结果取代内存中的Servlet,并继续上述处理过程。需要注意的是,虽然JSP效率很高,但在第一次调用时往往由于需要转换和编译,所以会产生一些轻微的延迟。

  (7)如果系统出现资源不足等问题,JSP容器可能会以某种不确定的方式将Servlet从内存中移除,发生这种情况时,首先会调用jspDestroy()方法,然后Servlet实例会被作为“垃圾”进行处理。

  (8)当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。

  本文版权归黑马程序员Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!

  作者:黑马程序员Java培训学院

  首发:https://java.itheima.com

分享到:
在线咨询 我要报名
和我们在线交谈!