1.1 Servlet API概览
第1章 Servlets
Servlet API是开发Servlet的主要技术。掌握Servlet API是成为一名强大的Java web开发者的基本条件,你必须熟悉Servlet API中定义的核心接口和类。 本章介绍了Servlet API,并教你如何编写第一个 Servlet。
1.1 Servlet API概览
Servlet API有以下4个Java包:
javax.servlet,其中包含定义Servlet和Servlet容器之间契约的类和接口。javax.servlet.http,其中包含定义HTTP Servlet和Servlet容器之间契约的类和接口。javax.servlet.annotation,其中包含标注Servlet、Filter、Listener的标注。它还为被标注元件定义元数据。javax.servlet.descriptor,其中包含提供程序化登录web应用程序的配置信息的类型。
本章主要关注javax.servlet和javax.servlet.http的成员。
Servlet技术的核心是Servlet,它是所有Servlet类必须直接或间接实现的一个接口。在编写实现Servlet的Servlet类时,直接实现它。在扩展实现这个接口的类时,间接实现它。 Servlet接口定义了Servlet与Servlet容器之间的契约。
这个契约归结起来就是,**Servlet容器将Servlet类载入内存,并在Servlet实例上调用具体的方法。在一个应用程序中,每种Servlet类型只能有一个实例**。
Servlet请求响应过程
用户请求到达时,Servlet容器会调用Servlet的service方法,并传入一个ServletRequest实例和一个ServletResponse实例作为service方法的参数。ServletRequest中封装了当前的HTTP请求,因此,Servlet开发人员不必解析和操作原始的HTTP数据。ServletResponse表示当前用户的HTTP响应,通过ServletResponse,使得将响应发回给用户变得十分容易。
对于每一个应用程序,Servlet容器还会创建一个 ServletContext实例。这个对象中封装了上下文(应用程序)的环境详情。每个上下文只有一个ServletContext。 每个Servlet实例也都有一个封装Servlet配置的 ServletConfig。
下面来看Servlet接口。上面提到的其他接口,将在本章的其他小节中讲解。