NEWS

连云港专业网站优化放心网络公司

主页 > 公司新闻 > 公司消息 >

jsp的运行原理分析


时间:2015-04-10 20:23 来源:连云港放心网络技术有限公司

当web服务器上的jsp页面第一次被请求执行时,jsp引擎先将jsp页面文件转义成一个servlet,而这个引擎本身也是一个servlet,对此过程的详细描述如下:
    当web服务器上的jsp页面第一次被请求执行时,jsp引擎先将jsp页面文件转义成一个servlet,而这个引擎本身也是一个servlet,对此过程的详细描述如下:
    1、jsp引擎先把jsp文件转换成一个java源文件,即servlet,在转换时如果发现jsp文件有任何语法错误,转换过程将终端,并分别在服务器端和客户端提示出错信息。
    2、如果转换成功,jsp引擎用javac把该java源文件编译成相应的class文件。
    3、创建一个该servlet的对象,该servlet的jsplnit()方法被执行,jsplnit()方法在servlet的生命周期中只被执行一次。
    4、jspservice()方法被调用来处理客户端的请求。对每一个请求,jsp引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该jsp文件,则jsp引擎会创建多个线程,每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也应该注意多线程的编程限制,由于该servlet适中驻于内存,所以响应是非常快的。
    5、如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,将继续上述处理过程。
    6、虽然jsp效率很高,但在第一次调用时由于需要转换和编译而又一些轻微的延迟。此外,在任何时候如果由于系统资源不足,jsp引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时,jspdestroy()方法首先被调用。
    7、然后servlet对象便被标记加入“垃圾收集”处理。可在jsplnit()中进行一些初始化工作,如建立与数据库的链接,或建立网络链接,从配置文件中取一些参数等,在jspdestroy()中释放相应的资源。

无觅关联推荐,快速提升流量