目录
一、Servlet是什么
核心特点
1、平台独立
2、高效性
3、生命周期管理
4、协议无关性
二、Servlet 与 Tomcat的关系
三、Servlet的使用步骤
1、创建Servlet类
2、配置Servlet
方式一:注解(推荐)
方式二:web.xml(传统方式)
3、部署到Tomcat
四、Servlet 工作流程
五、Servlet生命周期 (图示)
六、总结
一、Servlet是什么
Servlet是java平台上的一个核心组件,用于处理HTTP请求并生成动态响应。它是Java EE (现Jakarta EE)规范的一部分,主要用于构建基于HTTP协议的Web应用程序。Servlet 运行在支持Java的Web服务器(如 Tomcat、Jetty 等)中,通过处理客户端请求,执行业务逻辑并返回响应,实现了动态Web内容生成。
核心特点
1、平台独立
基于Java语言、跨平台。
2、高效性
多线程处理请求(每个请求分配一个线程,Servlet实例单例复用)。
3、生命周期管理
有容器(Tomcat)管理初始化、请求处理、销毁。
4、协议无关性
主要支持HTTP,但也可扩展其他协议。
二、Servlet 与 Tomcat的关系
1、Tomcat是Servlet容器
- Tomcat实现了Servlet规范,负责管理Servlet的生命周期(如 init() ,service(),destroy()),同时处理HTTP协议解析,线程池,安全性等底层细节。
2、分工明确
- Servlet:编写业务逻辑(如处理表单提交、查询数据库)
- Tomcat:处理通络通信(Socket、HTTP请求解析)、线程调度,并将请求转发给对应的Servlet。
3、依赖关系
- Servlet代码需要部署到Tomcat中才能运行,Tomcat提供运行环境(类似JVM对Java程序的作用)。
三、Servlet的使用步骤
1、创建Servlet类
继承 HttpServlet 并重写关键方法:
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("<h1>Hello, Servlet!</h1>");} }
2、配置Servlet
方式一:注解(推荐)
使用 @WebServlet 注解,无需 web.xml :
@WebServlet(name = "HelloServlet", urlPatterns = {"/hello"}) public class HelloServlet extends HttpServlet { ... }
方式二:web.xml(传统方式)
在 WEB-INF/web.xml 中添加配置:
<servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern> </servlet-mapping>
3、部署到Tomcat
1、将项目打包为WAR文件。(如 myapp.war)
2、将WAR文件放入Tomcat的webapps目录。
3、启动Tomcat,访问 http://localhost:8080/myapp/hello 。
四、Servlet 工作流程
客户端发起请求
浏览器发送 HTTP 请求到 Tomcat(如GET /myapp/hello
)。Tomcat 接收请求
Connector 监听端口(默认 8080),解析 HTTP 请求。
根据 URL 路径匹配 Web 应用(
/myapp
)和 Servlet(/hello
)。Servlet 生命周期方法调用
初始化:若 Servlet 未加载,调用
init()
(仅一次)。处理请求:创建
HttpServletRequest
和HttpServletResponse
对象,调用service()
方法,最终分派到doGet()
或doPost()
。生成响应:通过
resp.getWriter()
写入 HTML/JSON 等数据。返回响应
Tomcat 将HttpServletResponse
转换为 HTTP 响应,返回给客户端。销毁阶段
当容器关闭或应用卸载时,调用destroy()
释放资源。
五、Servlet生命周期 (图示)
启动容器 → Servlet 类加载 → init() → (就绪)↓收到请求 → service() → doGet()/doPost()↓ 容器关闭 → destroy()
六、总结
Servlet 是处理动态请求的核心 Java 组件。
Tomcat 作为 Servlet 容器,管理其生命周期并提供运行环境。
实际开发中,通常结合 JSP、Spring MVC 等框架简化 Servlet 直接编码。