Servlet 是 Java Web 开发的核心组件用于处理客户端请求并生成响应。它有两种主流的注册和配置方式XML 配置方式传统方式和注解方式Servlet 3.0 推荐方式。下面我会详细讲解这两种用法并用完整示例帮你理解。一、前置准备在开始前确保你具备Java 环境JDK 8Web 容器如 Tomcat 8支持 Servlet 3.0基础的 Web 项目结构src/main/java存放代码WEB-INF/web.xml存放 XML 配置方式 1XML 配置传统方式这是 Servlet 3.0 之前的唯一配置方式核心是通过web.xml文件注册 Servlet并映射访问路径。步骤 1编写 Servlet 类java运行package com.example.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; // 1. 继承 HttpServlet 并重写核心方法doGet/doPost public class XmlServlet extends HttpServlet { Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应编码避免中文乱码 response.setContentType(text/html;charsetUTF-8); PrintWriter out response.getWriter(); out.write(h1这是XML配置的Servlet/h1); out.write(p请求路径 request.getRequestURI() /p); } }步骤 2在 web.xml 中配置 Servlet在WEB-INF/web.xml文件中注册 Servlet 并映射 URLxml?xml version1.0 encodingUTF-8? web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd version4.0 !-- 1. 注册 Servlet指定类全名和Servlet名称 -- servlet servlet-nameXmlServlet/servlet-name servlet-classcom.example.servlet.XmlServlet/servlet-class !-- 可选设置启动优先级数字越小启动越早 -- load-on-startup1/load-on-startup /servlet !-- 2. 映射 Servlet指定访问路径 -- servlet-mapping servlet-nameXmlServlet/servlet-name url-pattern/xmlServlet/url-pattern /servlet-mapping /web-app步骤 3测试访问启动 Tomcat访问http://localhost:8080/你的项目名/xmlServlet即可看到 Servlet 输出的内容。方式 2注解配置Servlet 3.0 推荐Servlet 3.0 引入了注解Annotation无需编写web.xml直接通过注解标注 Servlet 即可简化配置流程。步骤 1编写带注解的 Servlet 类java运行package com.example.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; // 核心注解WebServlet指定访问路径 // urlPatterns 是数组支持多个访问路径name 可选指定Servlet名称 WebServlet(name AnnotationServlet, urlPatterns {/annoServlet, /annotationServlet}) public class AnnotationServlet extends HttpServlet { Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(text/html;charsetUTF-8); PrintWriter out response.getWriter(); out.write(h1这是注解配置的Servlet/h1); out.write(p支持多个访问路径/p); } }步骤 2简化版注解常用如果只需要指定单个访问路径可简写为java运行WebServlet(/annoServlet) // 等价于 urlPatterns {/annoServlet} public class AnnotationServlet extends HttpServlet { // 业务逻辑同上 }步骤 3测试访问启动 Tomcat访问http://localhost:8080/你的项目名/annoServlet或http://localhost:8080/你的项目名/annotationServlet均可访问到该 Servlet。两种方式的核心区别表格特性XML 配置方式注解配置方式配置位置集中在 web.xml 文件分散在 Servlet 类上灵活性修改需改 XML需重启容器修改注解需改代码重启容器可读性配置集中便于批量管理代码与配置一体便于维护适用场景低版本 Servlet3.0、需统一管理配置Servlet 3.0、快速开发、小型项目总结XML 配置传统方式适合低版本 Servlet 或需要集中管理所有 Servlet 配置的场景核心是在web.xml中通过servlet和servlet-mapping标签注册映射。注解配置Servlet 3.0 推荐方式通过WebServlet注解直接标注 Servlet 类无需编写web.xml简化开发流程是目前主流用法。核心逻辑一致无论哪种方式Servlet 类都需继承HttpServlet并重写doGet/doPost方法处理请求两种方式可共存于同一项目中