Servlet

来源:互联网 发布:洗车软件好用 编辑:程序博客网 时间:2024/06/05 08:29

Servlet容器工作原理

现在,我们从 servlet容器的角度来看看servlet 编程。一个功能健全的servlet容器对于每个servlet HTTP请求会完成以下事情:

1、当 servlet第一次被调用的时候,加载了 servlet类并调用它的init方法(仅调用一次)

2、响应每次请求的时候 ,构建一个javax.servlet.ServletRequestjavax.servlet.ServletResponse实例。

3 、激活 servletservice方法,传递 ServletRequestServletResponse对象。

4、当servlet类关闭的时候,调用 servletdestroy方法,并卸载 servlet类。

发生在 servlet 容器内部的事就复杂多了。只是这个简单的servlet 容器的功能不很健全,所以,这它只能运行非常简单的servelt,并不能调用 servletinitdestroy方法。然而,它也执行了以下动作:

1、等待 HTTP请求。

2、构建 ServletRequestServletResponse对象

3、如果请求的是一个staticResource,就会激活StaticResourceProcessor实例的process方法,传递ServletRequestServletResponse对象。

4、如果请求的是一个servlet ,载入该类,并激活它的service方法,传递ServletRequestServletResponse对象。注意:在这个servlet容器,每当 servlet被请求的时候该类就被载入。

在第一个应用程序中,servlet容器由六个类组成 。

HttpServer1      Request     Response     StaticResourceProcessor     ServletProcessor1  Constants

这个程序的进入口(静态 main 方法)是HttpServer 类。这个方法创建了HttpServer实例,并调用它的await方法等待HTTP 请示,然后创建一个request 对象和response对象,根据请求是否是staticResource还是servlet 来分派它们到StaticResourceProcessor实例或ServletProcessor实例。 Constants类包含 static find WEB_ROOT,它是从其他类引用的。WEB_ROOT 指明PrimitiveServlet 位置 和容器服务的staticResource

HttpServer1 实例等待 HTTP请求,直到它收到一个 shutdown命令。发布 shutdown命令和前文是一样的。

 

Servlet生命周期分为三个阶段:

 

1,初始化阶段  调用init()方法

 

2,响应客户请求阶段  调用service()方法

 

3,终止阶段  调用destroy()方法

0 0
原创粉丝点击