《深入剖析Tomcat》一2.1 javax.servlet.Servlet接口

简介: 本节书摘来自华章出版社《深入剖析Tomcat》一书中的第2章,第2.1节,作者(美)Budi Kurniawan,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.1 javax.servlet.Servlet接口

Servlet编程需要使用到javax.servlet和javax.servlet.http两个包下的接口和类。在所有的类和接口中,javax.servlet.servlet接口是最为重要。所有的servlet程序都必须实现实现该接口或继承自实现了该接口的类。
在Servlet接口中声明了5个方法,方法签名如下:
image

在Servlet接口中声明的5个方法里,init()、service()和destroy()方法是与servlet的生命周期相关的方法。当实例化某个servlet类后,servlet容器会调用其init()方法进行初始化。servlet容器只会调用该方法一次,调用后则可以执行服务方法了。在servlet接收任何请求之前,必须是经过正确初始化的。servlet程序员可以覆盖此方法,在其中编写仅需要执行一次的初始化代码,例如载入数据库驱动程序、初始化默认值等。一般情况下,init()方法可以留空。

当servlet的一个客户端请求到达后,servlet容器就调用相应的servlet的service()方法,并将javax.servlet.servletRequest对象和javax.servlet.servletResponse对象作为参数传入。ServletRequest对象包含客户端的HTTP请求的信息,ServletResponse对象则封装servlet的响应信息。在servlet对象的整个生命周期内,service()方法会被多次调用。

在将servlet实例从服务中移除前,servlet容器会调用servlet实例的destroy()方法。一般当servlet容器关闭或servlet容器要释放内存时,才会将servlet实例移除,而且只有当servlet实例的service()方法中的所有线程都退出或执行超时后,才会调用destroy()方法。当servlet容器调用了某个servlet实例的destroy()方法后,它就不会再调用该servlet实例的service()方法了。调用destroy()方法让servlet对象有机会去清理自身持有的资源,如内存、文件句柄和线程等,确保所有的持久化状态与内存中该servlet对象的当前状态同步。

代码清单2-1展示了名为PrimitiveServlet的servlet的代码,该servlet非常简单,可以用来测试本章中的servlet容器应用程序。PrimitiveServlet类实现了javax.servlet.Servlet接口(所有的servlet都要实现该接口),提供了Servlet接口中声明的5个方法的实现。PrimitiveServlet类所做的事情非常简单。每次调用init()、service()和destroy()方法时,Servlet都会将方法名写入标准控制台中。此外,service()方法会从servletResponse对象中获取java.io.PrintWriter对象,并将字符串发送到客户端浏览器。
image

相关文章
|
前端开发 应用服务中间件 C++
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(二)
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(二)
|
关系型数据库 MySQL Linux
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
245 0
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
378 17
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
113 18
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
125 10
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
JSON 前端开发 JavaScript
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(一)
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。
|
Java 应用服务中间件 Maven
Tomcat&Servlet(2)
Tomcat&Servlet
112 0
|
前端开发 应用服务中间件
|
JSON Java 应用服务中间件