Servlet的简单初始化以及其被调用的过程

一、说明

    Servlet是一个运行在web服务器中的简易的Java程序,通过HTTP来接受和响应来自浏览器的请求。程序中要实现一个Servlet一般必须继承javax.servlet.GenericServlet或者继承了javax.servlet.http.HttpServlet的HTTP servlet。在其整个生命周期中大致会经历这么几个阶段。

  1.  初次被调用,Servlet被web服务器构建,然后调用init方法。
  2. 任何来自客户端的请求都会在它的service方法中被处理。
  3. Servlet被移除服务器,调用destroy方法,然后进行垃圾的收集工作。

       除了生命周期方法,该接口提供了getServletConfig方法,servlet可以使用它来得到任何启动信息,和getServletInfo方法,它允许servlet返回自身的基本信息,比如作者、版本和版权。

Servlet的运行过程

Servlet程序是由web服务器调用,web服务器收到客户端的Servlet访问请求后:
①web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

⑤web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

destory()方法会在web容器移除servlet时执行,客户机第一次访问服务器时,服务器会创建servlet实例对象,它就永远驻留在内存里面了,等待客户机第二次访问,这时有一个用户访问完servlet之后,此servlet对象并不会被摧毁,destory()方法就不会被执行。
一道面试题:请说出servlet的生命周期

答:servlet对象是用户第一次访问时创建,对象创建之后就驻留在内存里面了,响应后续的请求。servlet对象一旦被创建,init()就会被执行,客户端的每次请求导致service()方法被执行,servlet对象被摧毁时(web服务器停止后或者web应用从服务器里删除时),destory()方法就会被执行。

转自http://blog.csdn.net/yerenyuan_pku/article/details/51852086


你可能感兴趣的:(Servlet)