欢迎光临
我们一直在努力

在JSP编译的时候,服务器内部做了什么?-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

作者/出处:blueski编译

 

在jsp第一次获得请求时,不管请求来自于客户端浏览器还是服务器上的servlet, jsp文件将被jsp引擎(jsp engine)转换成为一个servlet。而这个引擎本身也是一个servlet,在jswdk,它就是 jspservlet。

在编译时候如果发现jsp文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;而如果编译成功了,则所转换产生的servlet代码被编译,然后该servlet被jsp引擎加载到内存中。此时jsp引擎还请求了jspinit()方法的执行,并对此servlet做初始化。jspinit()方法在servlet的生命周期中只被请求一次。然后jspservice()方法被调用来处理客户端的请求和回复操作。对于所有的随后而来的对该jsp文件的请求,服务器将检查该.jsp文件自最后一次被存取后是否经过修改。如果没有修改则请求将交给还在内存中的servlet的jspservice()方法以一种同时发生的方式加以处理。注意,由于 servlet始终驻于内存,所以响应是非常快的。
如果.jsp文件被修改了,服务器将自动地对文件重新编译,并将结果取代内存中的servlet,并继续上述处理过程。

虽然jsp效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。 此外,如果在任何时候如果由于系统资源不足的原因,jsp引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspdestroy()方法首先被调用, 然后servlet实例便被标记加入“垃圾收集”处理。

 

相关内容:

jsp预编译器:
jakarata tomcat3.1 jsp服务器 (http://jakarta.apache.org)包含了一个 jsp编译器(jspc),可以进行预编译,既可以定义一个web应用的文件目录,也可以指定某个特定jsp文件来进行编译。
另外,oracle也有jspc

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 在JSP编译的时候,服务器内部做了什么?-JSP教程,Jsp/Servlet
分享到: 更多 (0)

相关推荐

  • 暂无文章