Servlet 简介及入门示例

参考:Servlet 是用来做什么的?Servlet 技术的特点、ChatGPT

简介

Servlet 是使用 Java 语言编写的运行在服务器端的程序。狭义的 Servlet 是指 Java 语言中的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 主要用于处理客户端传来的 HTTP 请求,并返回一个响应,它能够在 doGet() 和 doPost() 等方法中处理请求。

Servlet 中的请求处理方法由 Servlet 容器提调用,所谓的 Servlet 容器是指提供了 Servlet 功能的服务器,Servlet 容器将 Servlet 动态的加载到服务器上。与 HTTP 协议相关的 Servlet 使用 HTTP 请求和 HTTP 响应与客户端进行交互。Servlet 应用程序的体系结构如下图所示:

Servlet 应用程序的体系结构

在上图中,Servlet 的请求首先会被 HTTP 服务器接收,HTTP 服务器只负责静态 HTML 页面的解析,对于 Servlet 的请求转交给 Servlet 容器,Servlet 容器会根据 web.xml 文件中的映射关系,调用相应的 Servlet,Servlet 将处理的结果返回给 Servlet 容器,并通过 HTTP 服务器将响应传输给客户端。

实际使用时,通常直接继承抽象类 HttpServlet,HttpServlet 继承自抽象类 GenericServlet,GenericServlet 实现了 Servlet 接口。下面是一个示例。

示例

使用 Servlet 技术处理请求大致分以下几步:

  1. 编写 web.xml
  2. 继承 HttpServlet 编写处理逻辑
  3. 编译程序后将 class 文件放到指定目录
  4. 启动 Tomcat

Tomcat 是常见的 Servlet 容器。

1. Tomcat 配置

首先,确保你已经安装了 Apache Tomcat。然后在webapps目录下创建一个新的文件夹,例如MyServletApp

MyServletApp目录下,创建以下文件结构:

MyServletApp/
├── WEB-INF/
│   ├── web.xml
└── HelloServlet.java

2. web.xml 配置

WEB-INF目录中创建web.xml文件,内容如下:

<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>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

3. HelloServlet.java 代码

MyServletApp目录下创建HelloServlet.java文件,内容如下:

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().println("<h1>Hello, World!</h1>");
    }
}

4. 编译 Servlet

确保你的 Java 开发环境已设置好(如 JDK 和 CLASSPATH)。在命令行中,进入MyServletApp目录并编译 Servlet:

javac -cp "path/to/tomcat/lib/*" HelloServlet.java

5. 部署到 Tomcat

将编译后的HelloServlet.class文件放入WEB-INF/classes目录中。然后启动 Tomcat 服务器。

6. 访问 Servlet

在浏览器中访问以下 URL:

http://localhost:8080/MyServletApp/hello

你应该会看到页面上显示 "Hello, World!"。

posted @ 2024-11-02 11:55  Higurashi-kagome  阅读(2)  评论(0编辑  收藏  举报