- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
C.2 Servlet
Servlet 接口中定义了以下 5 个方法:
void init(ServletConfig config) throws ServletException
void service(ServletRequest request, ServletResponse response)
throws ServletException, java.io.IOException
void destroy()
java.lang.String getServletInfo()
ServletConfig getServletConfig()
注意,编写 Java 方法签名的惯例是,对于和包含该方法的类型不处于同一个包中的类型,要使用全类名。正因为如此,在 Service 方法 javax.servlet.ServletException 的签名中(与 Servlet 位于同一个包中),是没有包信息的,而 java.io.Exception 则是要写成完整名称的。
init、service 和 destroy 是生命周期方法。Servlet 容器根据以下规则调用这 3 个方法:
init,当请求 Servlet 时,Servlet 容器会第一时间调用这个方法。这个方法在后续请求中不会再被调用。利用这个方法调用初始化代码。调用这个方法时,Servlet 容器会传入一个 ServletConfig。一般来说,你会将 ServletConfig 赋给一个类级变量,因此这个对象可以通过 Servlet 类的其他位置来使用。
service,每当请求 Servlet 时,Servlet 容器就会调用这个方法。编写代码时,假设 Servlet 要在这里被请求。第一次请求 Servlet 时,Servlet 容器调用 init 方法和 Service 方法。后续的请求将只调用 service 方法。
destroy,当要销毁 Servlet 时,Servlet 容器就会调用这个方法。当要卸载应用程序,或者当要关闭 Servlet 容器时,就会发生这种情况。一般会在这个方法中编写清除代码。
Servlet 中的另外两个方法是非生命周期方法,即 getServletInfo 和 getServletConfig。
getServletInfo,这个方法会返回 Servlet 的描述。你可以返回有用或为 null 的任意字符串。
getServletConfig,这个方法会返回由 Servlet 容器传给 init 方法的 ServletConfig。但是,为了让 getServletConfig 返回一个非 null 值,必须将传给 init 方法的 ServletConfig 赋给一个类级变量。ServletConfig 将在 C.6 小节中讲解。
注意线程安全性。Servlet 实例会被一个应用程序中的所有用户共享,因此不建议使用类级变量,除非它们是只读的,或者是 java.util.concurrent.atomic 包的成员。
C.3 将介绍如何编写 Servlet 实现。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论