Servlet生命周期

来源:互联网 发布:海岛奇兵菊花升级数据 编辑:程序博客网 时间:2024/04/19 08:12

Servlet实现

如果要开发一个可以处理HTTP请求的Servlet程序,肯定是要继承HttpServlet类,而且在自定义的Servlet类中至少还要覆写HttpServlet类中提供的doGet()方法:
protected void doGet(HttpServletRequestreq,HttpServletResponseresp) throws ServletException,IOException

接收参数
由于Servlet本身也存在HttpServletRequest和HttpServletResponse对象的声明,所以就可以使用Servlet接收用户所提交的内容。 

Servlet生命周期
Servlet程序是运行在服务器端的一段java程序,其生命周期将受到WEB容器的控制,生命周期包括:加载程序、初始化、服务、销毁、卸载五个部分



生命周期对应的方法

No.

方法

类型

描述

1

public void init() throws ServletException

普通

Servlet初始化时调用

2

public void init(ServletConfig config) throws ServletException

普通

Servlet初始化时调用,可以通过ServletConfig读取配置信息

3

public abstract void service(ServletRequest req,ServletResponse res) throws ServletException,IOException

普通

Servlet服务,一般不会直接覆写此方法,而是使用doGet()或doPost()方法

4

public void destroy()

普通

Servlet销毁时调用


各个生命周期的作用
加载Servlet
WEB容器负责加载Servlet,当WEB容器启动的时候或者是在第一次使用这个Servlet的时候,容器会负责创建Servlet实例,但是用户必须通过部署描述符(web.xml)指定Servlet的位置(Servlet所在的包.类名称),成功加载之后,WEB容器会通过反射的方式对Servlet进行实例化。
初始化
当一个Servlet被实例化之后,容器将调用init()方法初始化这个对象,初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,例如:建立数据库连接、读取资源文件信息等,如果初始化失败,则此Servlet将被直接卸载。
处理服务
当有请求提交时,Servlet将调用service()方法(常用的是doGet()或doPost())进行处理,在service()方法中,Servlet可以通过ServletRequest接收客户的请求,也可以利用ServletResponse设置响应信息。
销毁
当WEB容器关闭或者检测到一个Servlet要从容器中被删除时,会自动调用destroy()方法,以便让该实例释放掉所占用的资源。
卸载
当一个Servlet调用完destroy()方法后,此实例将等待被垃圾收集器所回收,如果需要再次使用此Servlet的时候,会重新调用init()方法初始化。 

Servlet的生命周期由Servlet容器(如:Tomcat)控制

容器如何处理请求:

生命周期的各个阶段



Servlet在Tomcat中部署

Servlet的配置



0 0
原创粉丝点击