Servlet 温习

Servlet 是 Java 平台上用于扩展基于请求-响应模式的 Web 应用程序功能的一种技术。在这篇博客中,我们将温习一下 Servlet 的基本概念和使用方法。

1. Servlet 的基本概念

Servlet 是 Java 平台上运行的一个小程序,它可以接收和响应来自客户端的请求,并向客户端发送响应。Servlet 容器(如 Tomcat)负责管理 Servlet 的生命周期,包括创建、初始化、调用和销毁 Servlet。

Servlet 的生命周期包括以下几个阶段:

  1. 加载和实例化:Servlet 容器加载 Servlet 类并创建一个 Servlet 实例。
  2. 初始化:Servlet 容器调用 Servlet 的 init 方法对其进行初始化。
  3. 请求处理:Servlet 容器调用 Servlet 的 service 方法处理来自客户端的请求。
  4. 销毁:Servlet 容器调用 Servlet 的 destroy 方法释放资源。

2. 创建 Servlet

要创建一个 Servlet,我们需要实现 javax.servlet.Servlet 接口或继承 javax.servlet.http.HttpServlet 类。在这里,我们使用继承 HttpServlet 类的方式创建一个简单的 Servlet。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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 {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // 设置响应内容类型
        resp.setContentType("text/html;charset=UTF-8");
        // 获取 PrintWriter 对象
        PrintWriter out = resp.getWriter();
        // 写入响应内容
        out.println("<h1>Hello, Servlet!</h1>");
    }
}

在这个例子中,我们创建了一个名为 HelloServlet 的 Servlet,并重写了 doGet 方法。当客户端发送 GET 请求时,Servlet 容器会调用 doGet 方法处理请求。在 doGet 方法中,我们设置了响应内容类型为 text/html,获取了 PrintWriter 对象,并向其中写入了响应内容。

3. 部署 Servlet

要部署 Servlet,我们需要将其编译成 class 文件,并将其放置在 Web 应用程序的 WEB-INF/classes 目录下或打包成 jar 文件放置在 WEB-INF/lib 目录下。接下来,我们需要在 Web 应用程序的 web.xml 文件中配置 Servlet 的映射。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <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>

</web-app>

在这个例子中,我们配置了一个名为 HelloServlet 的 Servlet,并将其映射到了 /hello 路径上。当客户端发送 GET 请求到 http://localhost:8080/hello 时,Servlet 容器会调用 HelloServletdoGet 方法处理请求。

4. 测试 Servlet

要测试 Servlet,我们需要启动 Servlet 容器(如 Tomcat),并在浏览器中输入请求的 URL。在这里,我们使用 Tomcat 作为 Servlet 容器,启动 Tomcat 后,在浏览器中输入 http://localhost:8080/hello,可以看到 Servlet 的响应结果。

5. 小结

在这篇博客中,我们温习了一下 Servlet 的基本概念和使用方法。Servlet 是 Java 平台上用于扩展基于请求-响应模式的 Web 应用程序功能的一种技术,它可以接收和响应来自客户端的请求,并向客户端发送响应。要创建一个 Servlet,我们需要实现 javax.servlet.Servlet 接口或继承 javax.servlet.http.HttpServlet 类。要部署 Servlet,我们需要将其编译成 class 文件,并将其放置在 Web 应用程序的 WEB-INF/classes 目录下或打包成 jar 文件放置在 WEB-INF/lib 目录下,接下来在 web.xml 文件中配置 Servlet 的映射。要测试 Servlet,我们需要启动 Servlet 容器,并在浏览器中输入请求的 URL。