论坛首页 入门技术论坛

Servlet生命周期

浏览 2460 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-25  
一、Servlet生命周期及其配置
1、HttpServlet类
谈到Servlet,首先是该接口有多个实现类,其中HttpServlet是最重要的一个。它专门用于处理Http网络请求的Servlet实现类,在实际应用中,绝大部分都是继承HttpServlet类完成的。该类处理请求和对请求的响应分别是HttpServletRequest、HttpServletResponse。尤其是HttpServletRequest包含许多能很好处理Servlet的方法。
2、Servlet接口
Servlet生命周期首先要了解该类的三个主要方法即init()、service()、destroy()。其中init方法主要用于初始化一些参数等信息;destroy是在服务器长时间没有响应或没有请求发出时负责销毁Servlet对象;service方法是Servlet的核心方法,用于处理用户的请求信息。其过程描述如下:
第一、当第一个请求到来时,Servlet容器首先通过反射机制创建Servlet对象,且若该对象存在则不再创建新的对象。
第二、调用init方法,初始化一些Servlet信息,该方法只在Servlet对象创建后调用且仅调用一次。
第三、响应请求信息,通常是调用service或doGet、doPost方法来处理请求,而且这些方法是在多线程、单实例的环境下运行的。多次访问请求信息被清除掉。每个Servlet容器只对应一个Servlet实例。
第四、若长时间没有响应或服务器关闭,则Servlet容器调用destroy方法以销毁该Servlet实例对象。
3、Servlet容器及部署
Servlet容器是用来运行Servlet的一种软件,Servlet的部署主要是通过web.xml配置文件配置的,最主要的有
<servlet>
<servlet-name>Servlet的名称</servlet-name>
<servlet-class>Servlet的类路径</servlet-class>
<init-param>初始化一些配置信息等</init-param>
<load-on-start></load-on-start>
</servlet>
<servlet-mapping>
<servlet-name> Servlet的名称(与上面的要一致)</servlet-name>
<url-partern>/some(访问路径,可任意填写)</url-partern>
</servlet-mapping>
4、单实例、多线程
Servlet的运行时单实例多线程的,所以尽量少用成员变量,但若Servlet中有成员变量,则该变量必须声明为线程安全的。
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics