Java基础知识:JSP运行原理及运行过程详解

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

图1 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()方法。jsInit()方法在Servlet的整个生命周期中只会执行一次。

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

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

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

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

给TA打赏
共{{data.count}}人
人已打赏
Java

Java面试题:限流算法有哪些?(计数器算法、漏桶算法和令牌桶算法)

2023-2-23 0:12:49

Java

Java基础知识:抽象类和接口知识详解(抽象类和接口的区别)

2023-2-25 0:36:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交