Servlet 是 Java 技术中用于处理 Web 请求和响应的核心组件。它运行在支持 Java 的 Web 服务器(如 Tomcat)中,用于动态生成 Web 内容。Servlet 是 Java EE(现 Jakarta EE)规范的一部分,主要用于开发 Web 应用程序。
核心概念
Servlet 容器:管理 Servlet 的生命周期并提供网络服务(如 Tomcat、Jetty)。

HTTP 请求和响应:Servlet 通过 HttpServletRequest 和 HttpServletResponse 对象处理 HTTP 请求和生成响应。

Servlet 生命周期

  • 初始化:调用 init() 方法。

  • 服务:调用 service() 方法处理请求。

  • 销毁:调用 destroy() 方法释放资源。

创建servlet

  1. 创建一个 Java 类并继承 HttpServlet。

  2. 重写 doGet() 或 doPost() 方法处理请求。

package com.kuang.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    //由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进入doGet方法");
//        ServletInputStream inputStream = req.getInputStream();
//        ServletOutputStream outputStream = resp.getOutputStream();
        PrintWriter writer = resp.getWriter();//响应流

        writer.print("Hello,Servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

配置 Servlet
为什么要配置servlet的映射:我们写的是 Java 程序,但是要通过浏览器访问,而浏览器需要连接 Web 服务器,所以我们需要在 Web 服务中注册我们写的 Servlet,还需给他一个浏览器能够访问的路径;

<!--注册Servlet-->
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
  </servlet>
  <!--Servlet的请求路径-->
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

配置Tomcat 启动服务