创建 Servlet 示例的步骤

17 Mar 2025 | 6 分钟阅读

创建 servlet 示例有 6 个步骤。这些步骤适用于所有服务器。

可以通过三种方式创建 servlet 示例

  1. 通过实现 Servlet 接口,
  2. 通过继承 GenericServlet 类,(或)
  3. 通过继承 HttpServlet 类

最常用的方法是扩展 HttpServlet,因为它提供了 http 请求特定的方法,例如 doGet()、doPost()、doHead() 等。

这里,我们将在本示例中使用 apache tomcat 服务器。步骤如下:

  1. 创建目录结构
  2. 创建 Servlet
  3. 编译 Servlet
  4. 创建部署描述符
  5. 启动服务器并部署项目
  6. 访问 servlet


1) 创建目录结构

目录结构定义了不同类型文件存放的位置,以便 web 容器能够获取信息并响应客户端。

Sun Microsystem 定义了一个独特的标准,所有服务器供应商都必须遵循。让我们看看创建 servlet 必须遵循的目录结构。

directory structure of servlet

如您所见,servlet 类文件必须放在 classes 文件夹中。web.xml 文件必须放在 WEB-INF 文件夹下。


2) 创建 Servlet

有三种方法可以创建 servlet。
  1. 通过实现 Servlet 接口
  2. 通过继承 GenericServlet 类
  3. 通过继承 HttpServlet 类
HttpServlet 类被广泛用于创建 servlet,因为它提供了处理 http 请求的方法,例如 doGet()、doPost、doHead() 等。
在此示例中,我们将创建一个扩展 HttpServlet 类的 servlet。在此示例中,我们继承 HttpServlet 类并提供 doGet() 方法的实现。请注意,get 请求是默认请求。

DemoServlet.java

3) 编译 servlet

要编译 Servlet,需要加载 jar 文件。不同的服务器提供不同的 jar 文件

Jar 文件Server (服务器版)
1) servlet-api.jarApache Tomcat
2) weblogic.jarWeblogic
3) javaee.jarGlassfish
4) javaee.jarJBoss
 

加载jar文件的两种方法

  1. 设置 classpath
  2. 将 jar 文件粘贴到 JRE/lib/ext 文件夹中

将 java 文件放在任何文件夹中。编译 java 文件后,将 servlet 的 class 文件粘贴到 WEB-INF/classes 目录中。


4) 创建部署描述符 (web.xml 文件)

部署描述符是一个 xml 文件,Web 容器从中获取要调用的 servlet 的信息。

web 容器使用解析器从 web.xml 文件中获取信息。有许多 xml 解析器,例如 SAX、DOM 和 Pull。

web.xml 文件中有许多元素。这里给出了一些运行简单 servlet 程序所需的元素。


web.xml 文件

web.xml 文件元素描述

web.xml 文件中有很多元素。这里是一些在上述 web.xml 文件中使用的元素的说明。这些元素如下:

 
<web-app> 表示整个应用程序。
<servlet> 是 <web-app> 的子元素,表示 servlet。
<servlet-name> 是 <servlet> 的子元素,表示 servlet 的名称。
<servlet-class> 是 <servlet> 的子元素,表示 servlet 的类。
<servlet-mapping> 是 <web-app> 的子元素。它用于映射 servlet。
<url-pattern> 是 <servlet-mapping> 的子元素。此模式在客户端用于调用 servlet。

5) 启动服务器并部署项目

要启动 Apache Tomcat 服务器,双击 apache-tomcat/bin 目录下的 startup.bat 文件。


Apache Tomcat 服务器的一次性配置

您需要执行 2 项任务

  1. 在环境变量中设置 JAVA_HOME 或 JRE_HOME(启动服务器需要)。
  2. 更改 tomcat 的端口号(可选)。如果另一个服务器在同一端口 (8080) 上运行,则需要此项。

1) 如何在环境变量中设置 JAVA_HOME?

要启动 Apache Tomcat 服务器,必须在环境变量中设置 JAVA_HOME 和 JRE_HOME。

转到“我的电脑”属性 -> 单击“高级”选项卡,然后单击“环境变量” -> 单击用户变量的新建选项卡 -> 在变量名称中写入 JAVA_HOME,并将 jdk 文件夹的路径粘贴到变量值中 -> 确定 -> 确定 -> 确定。

转到“我的电脑”属性

configuring apache tomcat 1

单击“高级系统设置”选项卡,然后单击“环境变量”

configuring apache tomcat 2

configuring apache tomcat 3

单击用户变量或系统变量的新建选项卡

configuring apache tomcat 4

在变量名称中写入 JAVA_HOME,并将 jdk 文件夹的路径粘贴到变量值中

configuring apache tomcat 2

路径末尾不得有分号 (;)。


设置 JAVA_HOME 后,双击 apache tomcat/bin 中的 startup.bat 文件。
注意:有两种类型的 tomcat 可用
  1. 只需要解压的 Apache tomcat(无需安装)
  2. 需要安装的 Apache tomcat
这是只需要解压的 Apache tomcat 的示例。

how to start tomcat server for servlet program

how to start tomcat server for servlet program


现在服务器已成功启动。

2) 如何更改 apache tomcat 的端口号

如果同一系统上运行另一个服务器且端口号相同,则需要更改端口号。假设您安装了 oracle,您需要更改 apache tomcat 的端口号,因为两者都有默认端口号 8080。

用记事本打开 server.xml 文件。它位于 apache-tomcat/conf 目录中。将 Connector port = 8080 更改为任何四位数字而不是 8080。让我们将其替换为 9999 并保存此文件。


5) 如何部署 servlet 项目

将项目复制并粘贴到 apache tomcat 下的 webapps 文件夹中。

how to deploy servlet in apache tomcat server

但是有几种部署项目的方法。它们如下:

  • 通过将上下文(项目)文件夹复制到 webapps 目录中
  • 通过将 war 文件夹复制到 webapps 目录中
  • 通过从服务器选择文件夹路径
  • 通过从服务器选择 war 文件

这里,我们使用第一种方法。

您也可以创建 war 文件,并将其粘贴到 webapps 目录中。为此,您需要使用 jar 工具创建 war 文件。进入项目目录(在 WEB-INF 之前),然后写入

创建 war 文件有一个优点,即项目从一个位置移动到另一个位置所需的时间更少。


6) 如何访问 servlet

打开浏览器并输入 http://hostname:portno/contextroot/urlpatternofservlet。例如

output of servlet example



使用 tomcat 服务器创建 servlet MCQ

1. 在 Web 应用程序中,哪个目录结构用于放置 Servlet 类文件是正确的?

  1. WEB-INF/web.xml
  2. WEB-INF/classes/ServletClass.class
  3. WEB-INF/lib/ServletClass.class
  4. WEB-INF/src/ServletClass.class

答案:b)

解释: Servlet 类文件应放置在 WEB-INF/classes 目录中。


2. 在 Tomcat 中创建 Servlet 的正确顺序是什么?

  1. 创建目录结构,编译 servlet,创建部署描述符,启动服务器,创建 servlet,部署应用程序
  2. 创建 servlet,编译 servlet,创建部署描述符,创建目录结构,启动服务器,部署应用程序
  3. 创建目录结构,创建 servlet,编译 servlet,创建部署描述符,启动服务器,部署应用程序
  4. 创建部署描述符,创建 servlet,编译 servlet,创建目录结构,启动服务器,部署应用程序

答案:c)

解释: 这是创建和部署 servlet 的标准顺序。


3. 哪个类提供了像 doGet 和 doPost 这样的 HTTP 特定方法?

  1. Servlet
  2. GenericServlet
  3. HttpServlet
  4. ServletConfig

答案:c)

解释: HttpServlet 提供了 HTTP 特定方法,如 doGet()、doPost() 等。


4. 部署描述符在基于 Servlet 的应用程序中的目的是什么?

  1. 编译 servlet
  2. 描述如何调用 servlet
  3. 启动服务器
  4. 提供 HTTP 特定方法

答案:b)

解释: 部署描述符 (web.xml) 提供关于 Web 容器应如何调用 Servlet 的配置。


5. 启动 Apache Tomcat 必须设置哪个环境变量?

  1. TOMCAT_HOME
  2. CLASSPATH
  3. JAVA_HOME 或 JRE_HOME
  4. SERVER_HOME

答案:c)

解释: 设置 JAVA_HOME 或 JRE_HOME 是 Tomcat 所需的 Java 运行时环境。