以下内容摘自<<精通 servlet>>Servlet基础Servlet容器(以前称Servelt引擎)实际上是执行servlet的软件。所有支持servlet的服务器包括一个servelt容器(集成的或通过插件。)术语支持java的服务器常指一个增强的servletHTTP服务器(即它包括一个用于运行servlet的 servlet容器) Servlet生命周期:以下是一个服务器调用servlet的过程。
1, 在服务器启动时,当servlet被客户首次请求或被配置好,这时由服务器加载servlet.Servlet的加载可以通过合用一个自定义的Java类加载工具(可允许自动Servlet重载)从本地或远程地址来实现。这一步等同于 Class c = Class.forName(“com.sourceStream.MyServlet”);这里用的术语加载指同时加载和初始化servlet的过程。
2.服务器创建一个servlet类实例来为所有请求服务。利用多线程,可以由单个servlet实例来服务于并行的请求。惟一的例外是,因为实现SingleThreadModel接口的servlet,这样,服务器会创建一个实例池并从中选择一个来服务于每一新的请求。此步相当于以下java代码:Servlet s = (Servlet)c.newInstance();
3. 服务器调用Servlet的init()方法。它用来保证完成在首次请求servlet处理以前的执行过程。如果servlet创建了多个servlet实例,则为每个实例调用一次init()方法。
4.服务器从包括在客户请求中的数据里构造一个ServletRequest或HttpServletRequest对象,还构造一个ServletResponse或HttpServletResponse对象来返回响应提供方法。其参数类型依赖于servlet是否分别扩展GenericServlet或HttpServlet.(注意:如果服务器没有收到对这一servlet的请求,此步骤与以下5---7步骤将不会发生。)
5.服务器调用servlet的service()方法(对于Httpservlet,service()将调用更为具体的方法:如:doGet() 或doPost()),在此步骤中作为参数传递结构化对象。当并行的请求到来时,多个service()方法能够同时运行在独立的线程中。(除非servlet实现了SingleThreadModel接口)
6通过分析ServletReuest或HttpServletRequest对象。Service()方法处理客户的请求.并调用ServletResponse或HttpServletResponse对象来响应。 7.如果服务器收到另一格对该servlet的请求,这个处理过程从5步骤重复。 8.一旦servlet容器检测到一个servlet要被卸载,这可能是因为要回收资源或因为它正在被关闭,服务器会在所有servlet的service()线程完成之后(或在服务器规定时间后)调用servlet的destroy()方法。然后servlet就可以进行无用存储单元收集清理。Servlet容器不需要为保留一个servlet而指定时间。 以上8个步骤就是servlet的生命周期。(
分享到:
相关推荐
servlet生命周期演示,便于理解servlet工作流程。
servlet生命周期详解
SERVLET生命周期与JSP生命周期比较
Servlet生命周期,web开发必须掌握到知识点,其中生命周期也是需要掌握的
Servlet生命周期与工作原理Servlet使用
servlet生命周期详细图解,矢量图。 详细的解释请参考本人博客:http://blog.csdn.net/dwyers/article/details/38435949
servlet生命周期和模版设计模式,包括代码以及相关文档
关于对Servlet声明周期的图例示意!
山寨qq项目1.登录界面教你学会制作qq登录及后台运行。
Servlet 生命周期
Java WEB 篇七 Servlet 生命周期
注:本示例中有5章图片,但因为上传比较麻烦,所以就放在附件中 博文链接:https://lvp.iteye.com/blog/234610
Servlet技术 两条主线 1、HTTP协议 2、Servlet生命周期
从三个阶段来描述servlet的生命周期:初始化阶段、运行阶段和销毁阶段。