Servlet原理

 

Servlet

Servlet容器工作原理

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

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

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

3 、激活 servlet 的 service 方法,传递 ServletRequest 和 ServletResponse 对象。

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

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

1、等待 HTTP 请求。

2、构建 ServletRequest 和 ServletResponse 对象

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

4、如果请求的是一个servlet ,载入该类,并激活它的service 方法,传递ServletRequest 和ServletResponse 对象。注意:在这个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命令和前文是一样的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值