您的位置:首页 > 理论基础 > 计算机网络

与Servlet相关类的层次结构及HttpServlet的生命周期

2015-12-08 11:00 417 查看

一:与Servlet相关类的层次结构

<1>一个接口,两个类的关系:



<2>各自的功能
1.Servlet接口

1.1此接口定义了初始化 servlet 的方法、为请求提供服务的方法和从服务器移除 servlet 的方法。

要实现此接口,可以编写一个扩展
javax.servlet.GenericServlet
的一般 servlet,或者编写一个扩展
javax.servlet.http.HttpServlet
的 HTTP servlet。

1.2这些方法称为生命周期方法,它们是按以下顺序调用的:

1)构造 servlet,然后使用
init
方法将其初始化。

2)处理来自客户端的对
service
方法的所有调用。

3)从服务中取出 servlet,然后使用
destroy
方法销毁它,最后进行垃圾回收并终止它。
1.3接口中定义的常用方法:

init(ServletConfig config)
destroy()
getServletConfig()
service(ServletRequest req, ServletResponse res)

2.GenericServlet类
2.1定义一般的、与协议无关的 servlet。要编写用于 Web 上的 HTTP servlet,请改为扩展
javax.servlet.http.HttpServlet

2.2类中常用的方法:

init()
getInitParameter(String name)
getInitParameterNames()
getServletContext()

3.HttpServlet类

提供将要被子类化以创建适用于 Web 站点的 HTTP servlet 的抽象类。
HttpServlet
的子类至少必须重写一个方法,该方法通常是以下这些方法之一:


doGet(HttpServletRequest req, HttpServletResponse resp)
doPost(HttpServletRequest req, HttpServletResponse resp)
doPut(HttpServletRequest req, HttpServletResponse resp)
doDelete(HttpServletRequest req, HttpServletResponse resp)
doHead(HttpServletRequest req, HttpServletResponse resp)
doOptions(HttpServletRequest req, HttpServletResponse resp)
doTrace(HttpServletRequest req, HttpServletResponse resp)
service(HttpServletRequest req, HttpServletResponse resp)
init
destroy
,用于管理 servlet 的生命周期内保存的资源
getServletInfo
,servlet 使用它提供有关其自身的信息



二:HttpServlet的生命周期

1.客户端第一次请求一个Servlet时,web服务器(如tomcat)根据web.xml的配置信息找到此Servlet的类,并创建该Servlet的对象,并根据配置信息创建ServletConfig对象,

然后调用Servlet对象的init(ServletConfig)方法进行初始化。

2.服务器解析请求信息,创建HttpServletRequest对象,把请求信息封装到HttpServletRequest对象中,然后创建空的HttpServletResponse对象。

3.服务器调用Servlet对象的service方法,并把HttpServletRequest对象和HttpServletResponse对象传递给service方法的参数。

4.service方法根据请求方式(get/post)调用相应的方法(doGet/doPost)。

5.以后再收到此请求时直接调用service方法处理请求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: