Servlet 主要API介绍
- Servlet API 主要由2个Java包构成:javax.servlet 、java.servlet.http;
- javax.servlet 包定义了与 Servlet 接口相关的通用接口和类;
- java.servlet.http 包主要定义了与HTTP协议相关的 HttpServlet类、HttpServletRequest类、HttpServletResponse类;
Servlet 接口
Servlet API 的核心为 javax.servlet.Servlet 接口,所有Servlet类必须实现该接口;
其中定义的接口方法如下:
void init(ServletConfig config)
|
负责初始化Servlet对象,容器在创建Servlet对象后,会调用该方法 |
void service(ServletRequest req, ServletResponse res)
|
负责响应客户的请求,为客户提供相应服务 |
void destroy()
|
负责释放 Servlet 对象占用的资源,但Servlet对象结束生命周期时,会调用该方法 |
ServletConfig getServletConfig()
|
返回 ServeltConfig 对象,包含Servlet的初始化信息 |
String getServletInfo()
|
返回包含Servlet创建者、版本信息等的字符串 |
Servlet API 中,javax.servlet.GenericServlet 抽象类 和 其子类 java.servlet.http.HttpServlet 实现了 Servlet 接口,用户开发自己的Servlet类时,一般如果没有特殊需求,可以选择直接通过继承这2个类来实现;
GenericServlet 抽象类
对于GenericServlet类的 init() 方法,如果希望当前 Servlet 类对象与 ServeltConfig 对象关联,在初始化方法中应调用 super.init(config)方法,如下:
public void init(ServletConfig config){
super.init(config);
......
}
HttpServlet 抽象类
HttpServlet 是 GenericServlet 的子类,拓展了与http协议相关的方法,主要有如下:
doGet(HttpServletRequest req, HttpServletResponse res) | 处理 GET 请求 |
doPost(HttpServletRequest req, HttpServletResponse res) | 处理 POST 请求 |
doPut(HttpServletRequest req, HttpServletResponse res) | 处理 PUT 请求(主要用于FTP) |
doDelete(HttpServletRequest req, HttpServletResponse res) | 处理 DELETE 请求(主要用于FTP) |