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

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

servlet生命周期  

2009-08-06 22:59:02|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
JSP 的执行过程
 
(1) 客户端发出Request (请求);
(2) JSP Container 将JSP转译成Servlet的源代码;
(3) 将产生的Servlet 的源代码经过编译后,并加载到内存执行;
(4) 把结果Response (响应)至客户端。
在执行 JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request Time)
      转译时期:JSP网页转译成Servlet类。
       请求时期:Servlet类执行后,响应结果至客户端。
 
注:
转译期间主要做了两件事情:将JSP网页转译为 Servlet 源代码(.java),此段称为转译时期(Translation time);将Servlet源代码(.java)编译成 Servlet 类(.class),此段称为编译时期(Compilation time)。
 

Servlet 的生命周期
1) 产生 Servlet,加载到Servlet Engine中,然后调用 init()这个方法来进行初始化工作。
2) 以多线程的方式处理来自Client 的请求。 service()
3) 调用 destroy()来销毁Servlet,进行垃圾收集 (garbage collection)。

Servlet 从产生到结束的流程
1. 加载和实例化
   当Container一开始启动, 或是客户端发出请求服务时, Container会负责加载和实例化一个Servlet。 
2. 初始化
   Servlet 加载并实例化后,再来Container必须初始化 Servlet。初始化的过程主要是读取配置 信息(例如JDBC连接)或其他须执行的任务。我们可以借助 ServletConfig 对象取得 Container的 配置信息,例如:
 
<servlet>    
        <servlet-name>HelloServlet</servlet-name>    
        <servlet-class>tw.com.javaworld.CH2.HelloServlet</servlet-class>
        <init-param>    
                <param-name>user</param-name>    
                <param-value>browser</param-value>    
        </init-param>    
</servlet>
       其中user为初始化的参数名称;browser 为初始化的值。因此,可以在 HelloServlet程序中使用ServletConfig 对象的getInitParameter("user")方法来取得 browser。
3. 处理请求
   Servlet被初始化后,就可以开始处理请求。每一个请求由 ServletRequest 对象来接收请求;而ServletResponse对象来响应该请求。
4. 服务结束
   当 Container 没有限定一个加载的 Servlet 能保存多长时间,因此,一个 Servlet 实例可能只在Container中存活几毫秒,或是其他更长的任意时间。一旦 destroy( )方法被调用时,Container将移除该 Servlet,那么它必须释放所有使用中的任何资源,若 Container 需要再使用该 Servlet时,它必须重新建立新的实例。
  评论这张
 
阅读(455)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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