Servlet 是 Java 平台上的一种服务器端技术,它允许开发者在服务器端生成动态的内容。Servlet 运行在支持 Java 的 Web 服务器上,并可以响应客户端的请求。以下是一个简单的 Servlet 教程,帮助你入门 Servlet 编程。

1. Servlet 简介

  •  Servlet 是什么?  

  Servlet 是 Java 编写的服务器端程序,用于处理客户端请求并生成动态内容。它基于 Java Servlet API 标准,通常运行在支持 Java 的 Web 服务器上。

2. Servlet 的生命周期

  •  初始化(Initialization): 在 Servlet 被加载时执行,用于执行一些初始化操作。

  
  •  服务(Service): 处理客户端请求的主要方法。每次请求都会调用 service() 方法。


  •  销毁(Destruction): 在 Servlet 卸载时执行,用于清理资源。


3. 创建第一个 Servlet

1. 创建 Java 类: 创建一个 Java 类,继承 HttpServlet 类,并覆盖 doGet 或 doPost 方法。
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class MyServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // 处理 GET 请求
            response.getWriter().println("Hello, Servlet!");
        }
    }

2. 配置 Servlet: 在 web.xml 文件中配置 Servlet。
    <?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_3_1.xsd" version="3.1">
        <servlet>
            <servlet-name>MyServlet</servlet-name>
            <servlet-class>com.example.MyServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>MyServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>

3. 部署和运行: 部署项目到支持 Servlet 的 Web 服务器上,然后访问 http://your-server-address/your-context-path/hello 就可以看到 "Hello, Servlet!" 的响应了。

4. 获取请求参数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取请求参数
    String name = request.getParameter("name");

    // 处理 GET 请求
    response.getWriter().println("Hello, " + (name != null ? name : "Servlet") + "!");
}

5. 发送响应
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 设置响应内容类型
    response.setContentType("text/html");

    // 获取响应写入器
    PrintWriter out = response.getWriter();

    // 写入响应内容
    out.println("<html><body>");
    out.println("<h2>Hello, Servlet!</h2>");
    out.println("</body></html>");
}

这只是一个简单的 Servlet 教程,涉及了 Servlet 的基本概念、生命周期、创建和部署过程,以及处理请求和发送响应的基本操作。在实际项目中,你可能会涉及更多的内容,例如会话管理、过滤器、监听器等。

请注意,现代的 Java Web 开发更多地采用注解(Annotation)来配置 Servlet,而不是传统的 web.xml 文件。这使得配置更加简洁和方便。


转载请注明出处:http://www.zyzy.cn/article/detail/6869/Servlet