本节书摘来自异步社区《Servlet、JSP和Spring MVC初学指南》一书中的第1章,第1.1节,作者:【加】Budi Kurniawan(克尼亚万) , 【美】Paul Deck著,更多章节内容可以访问云栖社区“异步社区”公众号查看
第一部分 Servlets和JSP
第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的成员。
图1.1中展示了javax.servlet中的主要类型。
图1.1 javax.servlet中的主要类型
Servlet技术的核心是Servlet,它是所有Servlet类必须直接或间接实现的一个接口。在编写实现Servlet的Servlet类时,直接实现它。在扩展实现这个接口的类时,间接实现它。
Servlet接口定义了Servlet与Servlet容器之间的契约。这个契约归结起来就是,Servlet容器将Servlet类载入内存,并在Servlet实例上调用具体的方法。在一个应用程序中,每种Servlet类型只能有一个实例。
用户请求致使Servlet容器调用Servlet的Service方法,并传入一个ServletRequest实例和一个ServletResponse实例。ServletRequest中封装了当前的HTTP请求,因此,Servlet开发人员不必解析和操作原始的HTTP数据。ServletResponse表示当前用户的HTTP响应,使得将响应发回给用户变得十分容易。
对于每一个应用程序,Servlet容器还会创建一个ServletContext实例。这个对象中封装了上下文(应用程序)的环境详情。每个上下文只有一个ServletContext。每个Servlet实例也都有一个封装Servlet配置的ServletConfig。
下面来看Servlet接口。上面提到的其他接口,将在本章的其他小节中讲解。