jsp技术原理

jsp的工作方式是请求/应答模式,客户端发出HTTP请求,JSP程序收到请求后进行处理,并且返回处理的结果。在一个JSP文件发出请求时,JSP引擎把该JSP文件转换成为一个Servlet,而这个引擎本身也是一个Servlet。JSP的运行过程如下。

①JSP 引擎先把该 JSP 文件转换成一个 Java 源文件(Servlet), 在转换时, 如果发现 JSP文件有任何语法错误, 将中断转换过程, 并向服务器端和客户端输出出错信息。

②如果转换成功,JSP 引擎用javac 把该Java 源文件编译成相应的class 文件。

③创建一个Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit0方法被执行,jspInit0方法在 Servlet 的生命周期中只被执行一次。

④用jspService0方法处理客户端的请求.对每一个请求,JSP 引擎创建一个新的线程来处理. 如果有多个客户端同时请求该 JSP 文件, 则 JSP 引擎会创建多个线程。 每个客户端请求对应一个线程。 以多线程方式执行, 可大大降低对系统的资源需求, 提高系统的并发处理量及缩短响应时间。 由于该 Servlet 始终驻留于内存, 所以可以非常迅速地响应客户端的请求。

⑤如果 JSP 文件被修改了, 服务器将根据设置决定是否对该文件重新编译, 如果需要重新编译, 则将以编译结果取代内存中的 Servlet, 并继续上述过程。

⑥虽然 JSP 的效率很高, 但在第一次调用时, 由于需要转换和编译, 会有一些轻微的延迟。此外,在任何时候,如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet 从内存中移去.当这种情况发生时,jspDestroy0方法首先被调用。然后 Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接连接、从配置文件中取一些参数等,然后在jspDestroy()中释放相应的资源。

jsp执行的过程如下图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡前来杯海飞丝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值