1. 简介
说起servlet,最直接困扰我的问题便是,学了这么多年英语,仍然不懂该词究竟如何见名知义地表达它到底是什么、干什么的。 但是说起servlet,和容易联想到一个词:applet。查了相关资料,applet表示java小程序。于是想了之后,觉得application snippet这个翻译勉强可以接受。再者因为applet主要使用在客户端程序中(主要是browser),servlet这个词又是在applet的环境中应运而生,故可以理解为服务器端小程序(server snippet)。
2. 关系说
servlet,作为服务器端程序,由servlet container(aka servlet engine,web container)进行调度和管理。注意servlet container是web server或application server的一部分(又或说组件)。
组织关系图
servlet container主要负责servlet的生命周期的管理和来自客户端的请求与servlet的映射工作。
3. 生命周期
3.1 init阶段
根据javax.servlet.ServletConfig的配置文件规范进行servlet参数的设定。查看接口文档,servletName
servletContext,initParameter需要实现指定。
3.2 service阶段
为来自客户端的请求(request)提供服务。包括request的数据解码解析,利用Dispatcher将请求根据url匹配指定的处理函数,response的编码
3.3 destory阶段
销毁servlet