一、Servlet简介
1、什么是Servlet
A servlet is a small Java program that runs within a Web server.
Servlet(Server Applet)是 Java Servlet 的简称,是采用 Java 编写并运行在 Web 服务器中的小程序,本质上就是一个接口(interface),该接口定义了初始化 Servlet、服务请求和从服务器中删除 Servlet 的方法。Servlet 具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态 Web 内容。
2、Servlet的作用
由上图可知,Servlet 实际上起到了一个制定规则和约束的作用(这也是Java中接口的作用)。
3、Servlet中的方法
在 Servlet 接口中定义了五个方法,下面用一张表格进行介绍:
方法 | 作用 |
---|---|
void init() |
由Servlet容器调用,以向Servlet指示Servlet正在投入服务 |
void service(HttpServletRequest req, HttpServletResponse res) |
由Servlet容器调用以允许Servlet响应请求 |
String getServletInfo() |
返回有关Servlet的信息,如作者、版本和版权 |
ServletConfig getServletConfig() |
返回一个ServletConfig 对象,其中包含此Servlet的初始化和启动参数 |
void destroy() |
由Servlet容器调用,以向Servlet指示Servlet正在停止服务 |
实际上这些方法被称为生命周期方法(life-cycle methods),关于生命周期方法将会在后续的文章中进行详细介绍。
二、快速入门
前面我们对 Servlet 进行了简单介绍,下面将通过一个入门案例来了解 Servlet 的基本用法。
1、创建工程
我们以 IDEA 为例来创建一个 Java EE 工程:
2、实现接口
创建完项目之后,在src
目录下添加一个包cn.frankfang.servlet
并在该包中添加一个ServletDemo1
类,代码如下:
1 | package cn.frankfang.servlet; |
该类实现了javax.servlet.Servlet
类,目前只需实现service
方法即可,下面就来实现service
方法:
1 |
|
以上代码可以实现在调用service
方法时在控制台打印输出Hello Servlet!
的功能。
3、配置Servlet
在实现了Servlet
接口之后我们需要在web.xml
中对Servlet进行配置:
1 |
|
3、部署项目
首先对Tomcat服务器进行配置:
之后便可以启动项目,打开浏览器访问http://localhost:8080/servlet_war_exploded/demo1
并查看运行结果:
三、执行原理
通过上面的例子,我们已经知道了该如何使用Servlet,但令人比较困惑的是service
方法是如何执行的,或者说是怎么调用service
方法的。下面我们用一张图来介绍Servlet执行过程的基本原理:
(1)当服务器接受到客户端浏览器的请求后,会解析请求的URL,获取访问的Servlet的资源路径
(2)服务器查找web.xml
文件,是否有对应的<url-pattern>
标签体内容
(3)如果有,则在找到对应的<servlet-class>
全类名
(4)Tomcat利用反射机制将字节码文件加载进内存,并创建其对象
(5)调用其中的方法
以上就是Servlet执行过程的基本原理。