注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TOTO

Think and Be Different

 
 
 

日志

 
 

JSP在TOMCAT中的处理生命周期 【zz】  

2007-07-15 21:20:10|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、将WEB应用部署到TOMCAT容器,容器启动读取应用的部署文件web.xml,但不对.jsp文件做任何处理请求
2、客户点击连接请求某个.jsp文件,容器开始将.jsp文件转换为一个servrlet类的.java源代码。查看指令,得到转换的可能需要的信息。创建一个HttpServlet子类,对于Tomcat5所生成的servlet会扩展org.apache.jasper.runtime.HttpJspBase类。若有一个page指令有import属性,生成的类文件的最上面会写入import语句。例如在Tomcat5中加入包语句:package org.apache.jsp;若有声明容器将这些声明写道类文件,通常放在服务方法的下面。Tomca5声明了自己的一个静态方法和一个实例方法。然后建立服务方法,方法名为_jspService()。所生成的servlet会覆盖servlet超类的service()方法。_jspService()直接由service()调用,要接收HttpServletRequest和HttpServletResponse参数。在建立这个方法的时候,容器会声明并初始化所有的隐式对象。将普通的HTML(模板文件)、scrptlet和表达式放到服务方法里,进行格式化,并写至PrintWrite响应输出。
3、容器尝试将这个servlet.java源文件编译为.class文件。
4、容器家在新生成的servlet类。
5、容器实例化servlet,并导致servlet的jspInit()方法运行。对象现在已成为一个完整的servlet准备就绪,接受客户的请求。
6、容器创建一个新线程来处理客户请求,servlet的service()方法运行。以后的处理同普通的servlet处理过程。最终servlet向客户返回一个响应。
需要注意的是:在JSP生命周期中,JSP的转换和编译过程只发生一次。一旦第一次编译完成,以后的调用同普通的servlet一样。大多数容器开发商提供预转化和编译的办法,是这些工作提前完成。
**********************************************************************************************************************
 
注意下划线部分,所以下面问题可以很容易理解: 修改某个jsp文件和 servlet,不用重新启动tomcat,但是如果修改了web.xml就得重新启动了。
再我们可以发现对于新来的客户请求,容器会有一个线程来处理这个请求,所以不用担心多用户的问题和资源互斥的问题!
 
  评论这张
 
阅读(114)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017