在JSP编译的时候,服务器内部做了什么?

js|编译|服务器

作者/出处: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

时间: 2024-10-02 13:29:45

在JSP编译的时候,服务器内部做了什么?的相关文章

JSP编译成Servlet(三)JSP编译后的Servlet

JSP编译后的Servlet类会是怎样的呢他们之间有着什么样的映射关系在探讨JSP与Servlet之间的关系时先看一个简单的HelloWorld.jsp编译成HelloWorld.java后会是什么样. ①HelloWorld.jsp <%@ page contentType="text/html; charset=gb2312" language="java" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD

JSP页面与第三方服务器通讯问题,困了我好久了。

问题描述 JSP页面与第三方服务器通讯问题,困了我好久了.功能需求:建立一个JSP页面,让客户输入查询信息,如:身份证号,JSP页面将这个信息形成一个TCP报文,发往第三方报文处理服务器(非JSP所在服务器),第三方服务器接处理报文并返回身份证.姓名.性别.年龄等信息,第一个JSP再将收到的信息显示出来.这个需求怎么实现,有没有简单实例.折腾好久了没有方法,象无头苍蝇,请大家帮个忙.我的QQ:1367573013675730@QQ.COM. 解决方案 解决方案二:你可以写个接口的页面让他们输入你

我做了一个消息推送系统,客户端与服务器建立长连接,但是由于客户端越来越多,服务器怎样做集群呢

问题描述 我做了一个消息推送系统,客户端与服务器建立长连接,但是由于客户端越来越多,服务器怎样做集群呢 我做了一个消息推送系统,客户端与服务器建立长连接,但是由于客户端越来越多,服务器怎样做集群呢 解决方案 这个有很多方案.首先你要说你用的是什么语言做的消息推送系统. 例如Java,还是C++,还是其他的. 另外 把连接接入与业务处理分开,那么做分布式自然很简单.内部可以使用 RPC进行通信.等级每个用户的实时地址. 解决方案二: 用java语言做的,使用的androidpn

如何在服务器空间中每隔一段时间自动执行一个程序,现在有的条件是服务器空间,没有服务器内部的权限,不能通过iis,求大神指导。

问题描述 如何在服务器空间中每隔一段时间自动执行一个程序,现在有的条件是服务器空间,没有服务器内部的权限,不能通过iis,求大神指导.详细说下现在要实现的功能,是这样,我们公司是做房产的,中介会上传一些房源图片,而现在这些图都是通过人工下载.要实现的功能是,自动下载这些图,并且转存到另一个空间中.与此同时,因为中介上传的时间不能确定,所以该程序,每隔两个小时运行一次.这个该怎么实现,求思路!!! 解决方案 解决方案二:你要下载到哪里,就应该在哪里执行你的程序啊你扔服务器上执行,图本来不就是在服务

如何使用ant调用WebSphere的编译器将jsp编译成jar包?

问题描述 我们现有的项目是运行在tomcat5下,jsp是通过使用tomcat提供的org.apache.jasper.JspC编译工具将JSP页面的预编译.把所有JSP编译后得到的.class打包成一个xxx.jar包,放在我们应用的lib中.然后在web.xml中分别设置为servlet,再映射到某个xxx.jsp的URL上.build.xml文件如下:<projectname="WebappPrecompilation"default="all"base

JSP编译指令page、include详解

 这篇文章主要介绍了JSP编译指令page.include,有需要的朋友可以参考一下 1. JSP指令   分类:1).page  2).include  3).taglib   语法:  <%@ 指令名称  属性1="值1" .....%>   2. Page编译指令:   • 作用:利用Page编译指令可以设置JSP的页面属性.通常位于JSP页面的顶端,对同一个页面可以有多个page指令. • page指令语法格式:    代码如下: <%@page   [lan

IIS服务器下做301定向详细版

IIS服务器下做301定向详细版,以往我们在网上看到如何做301定向都不详细,从来没做过的话,怎么看都看不懂,现在我把详细的方案介绍一下. 第一:首先要进入远程服务器,怎么进呢? 在电脑左下角开始的地方 输入mstsc.会出现图1 图1 二,选择你的vps的ip.点击链接,会进入到远程如图2 图2 三,然后双击IIS管理器会出现图3 图3 四:点击击网站 图4 图4 五:在远程里面建一个301文件,放在wwwroot301下. 六:鼠标右键点击网站,选择新建,根据提示选举下一步,一直到出现网站描

上传服务器错误-jsp项目传到服务器后 servlet访问不到

问题描述 jsp项目传到服务器后 servlet访问不到 Object not found! The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error. If you think this is a server error, p

站长如何解决网站http服务器内部500错误

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多站长在建设网站时,经常遇到程序运行时打不开的问题,有的是因为程序出现错误,无法运行,而有的是因为服务器的原因.今天78t站长网先为大家整理一个常见的错误和解决办法,希望能有所帮助,如果您采用以下办法还没有解决,您可以联系站长. 今天介绍的错误是:http服务器内部500错误,这个错误是很多站长无论是自己写的程序还是下载采用别人的源程序经常