Skip to content

Servlet的概念、开发步骤与执行原理

Published:  at  03:34 AM

Servlet

一、Servlet 概述

1. 什么是 Servlet

Servlet 是运行在服务器端的 Java 程序,用于接收客户端(通常是浏览器)发送的请求,并返回响应结果。

从本质上讲:


2. Servlet 的作用


二、Servlet 的基本开发步骤

1. 开发流程

  1. 创建 Java Web(JavaEE)项目
  2. 定义一个类,实现 Servlet 接口
  3. 实现接口中的抽象方法
  4. 配置 Servlet 的访问路径(web.xml 或注解)

2. 基于 web.xml 的配置方式

<!-- 配置 Servlet -->
<servlet>
    <servlet-name>demo1</servlet-name>
    <servlet-class>com.boyuren.web.servlet.ServletDemo1</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>demo1</servlet-name>
    <url-pattern>/demo1</url-pattern>
</servlet-mapping>

说明:


三、Servlet 执行原理

当浏览器访问某个 Servlet 时,Tomcat 的处理流程如下:

  1. 服务器接收到客户端 HTTP 请求

  2. 解析请求 URL,获取 Servlet 访问路径

  3. 查找 web.xml 或注解中是否存在对应的映射

  4. 若存在:

    • 加载 Servlet 的 .class 文件
    • 创建 Servlet 实例(如尚未创建)
  5. 调用 Servlet 的相关方法处理请求

Servlet 执行原理


四、Servlet 的生命周期

Servlet 的生命周期由 Web 容器(Tomcat)统一管理,主要分为三个阶段。


1. 创建阶段(init)

Servlet 创建时机

<load-on-startup>1</load-on-startup>

单例特性与线程安全问题

⚠️ 注意:


2. 提供服务阶段(service)


3. 销毁阶段(destroy)

⚠️ 强制关闭服务器时,destroy() 可能不会执行。


五、基于注解的 Servlet 配置(推荐)

Servlet 3.0 规范起,可以使用注解方式代替 web.xml 配置,显著简化开发。


1. 注解配置步骤

  1. 创建 Servlet 3.0 以上版本的 Java Web 项目
  2. 定义类,实现 Servlet 接口或继承 HttpServlet
  3. 重写相关方法
  4. 添加 @WebServlet 注解

2. 注解示例

import javax.servlet.annotation.WebServlet;
import javax.servlet.Servlet;

@WebServlet("/demo1")
public class ServletDemo1 implements Servlet {
    // 方法实现
}

3. 多路径映射

@WebServlet({"/demo2", "/demo3"})

六、Servlet 体系结构

Servlet 相关核心类结构如下:

1. Servlet 接口


2. GenericServlet(抽象类)

继承该类只需实现 service() 方法


3. HttpServlet(最常用)


4. 推荐使用方式

public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        // 处理 GET 请求
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        // 处理 POST 请求
    }
}

七、小结


Suggest Changes

Previous Post
HTTP协议详解及请求响应数据格式
Next Post
Web服务器软件与Tomcat使用指南