ITKeyword,专注技术干货聚合推荐

注册 | 登录

Java开发学习笔记之四:Servlet生命周期

truexf 分享于 2006-10-03

推荐:Java Web学习总结(9)——servlet和Jsp生命周期解读

一、servlet的工作工程       Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

  Servlet运行在Web容器中。Servlet本身不是直接运行在Java虚拟机上,它需要Web容器控制这个载入和运行过程。理解整个过程能够深我们对servlet技术的认识并提高我们的编程技巧。Web容器控制着整个servlet的生命周期,包括:
创建;
初始化;
提供服务;
终止服务;
清除。

1.创建和初始化
  servlet在Web程序中以类文件存在(在WEB-INF/classes/目录或WEB-INF/lib目录),在以下情况下,Web容器将Web应用载入并创建应用内的每一个Servlet的一个实例:
当Web服务器启动时;
当第一个用户对servlet的请求传递到Web容器时;
当应用被加入Web服务器时。
因此,一个Servlet在生命周期内只能被初始化一次。

  在调用servlet的init()方法初始化servlet时,web容器创建一个servlet设置对象(ServletConfig类的实例)并通过该对象向servlet传递初始参数。这个ServletConfig实例在servlet初始化后一直在内存中存在,直到servlet被清除(destroy)。如果初始化没有问题,servlet在Web容器中成为可以提供服务的状态(available for service);如果初始化失败,Web容器会从运行环境中清除掉(unload)该servlet实例。有时当servlet程序出错时,Web容器会使servlet变为不能服务状态(unavailable for service)。Web程序维护人员也可以设置servlet使用其成为不能服务状态或从不能服务状态恢复成服务状态。

推荐:Java Web学习(10):JSP结构与生命周期

JSP结构 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。容器负责截获对JSP页面的请求。我们使用内嵌JSP容器的Apache来支持JSP开发。 JSP容器与Web服

2.处理Web请求
  当用户请求传递到Web服务器时,Web服务器产生一个请求(request)对象和一个响应(response)对象。Web容器将这两个对象传递到处于可以服务状态的servlet来让其进行处理。在servlet的对应处理方法内(serivce(),doGet(),doPost()),servlet对request进行分析,将处理结果能过response对象返回给Web容器。Web容器最终将结果通过HTTP协议传回到客户端。

3.终止服务
  当Web容器需要终止servlet时(比如Web服务器关闭),它会调用Servlet的destroy()方法使servlet停止服务并被清除掉。与一般的java实例不再被使用的情况一样,Java虚拟机会负责垃圾收集工作。

4.关于多线程service()
  一般的Web容器可以支持使用一个Servlet服务多个客户的Http请求,当这些请求几乎同时到达Web服务器时,Web容器可以让servlet在service()方法中使用多线程,这样可以并行处理多个Web请求。另外一种方法是由Web容器创建一个servlet的多个实例,每个servlet实例可以使用其service()方法单独处理Http请求。多线程或多实例都依赖于Web容器管理,虽然servlet编程人员需要理解这些概念,但般不需自己写servlet线程的程序。 

推荐:Java Web笔记 – Servlet技术介绍 生命周期 核心API 类方法调用顺序

1、Servlet技术: Servlet是和平台无关的服务器端组件,它运行再Servlet容器中。Servlet容器负责Servlet和客户端通信和调用Servlet方式。Servlet和客户端通过“

  Servlet运行在Web容器中。Servlet本身不是直接运行在Java虚拟机上,它需要Web容器控制这个载入和运行过程。理解整个过程能够深我们对servlet技术的认识并提高我们的编程技巧。Web容器控制着整

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。