在 Eclipse 中创建 Servlet 示例
Servlet是在支持Java的 Web 服务器或应用程序服务器上运行的 Java 程序。它们用于处理从网络服务器获得的请求,处理请求,产生响应,然后将响应发送回网络服务器。
先决条件:
- 已安装 Eclipse IDE – 您可以从 https://www.eclipse.org/downloads/ 下载
- 运行服务器——要运行 servlet,我们需要一个服务器。我们可以使用任何 Web 服务器/应用程序服务器,例如 IBM Websphere、Glassfish、Tomcat 等,在本示例中,我们将使用 Apache Tomcat 服务器。您可以从 https://tomcat.apache.org/ 下载最新的 Tomcat 版本
安装 Eclipse 并使用 Tomcat 服务器进行配置后,以下是在 Eclipse IDE 中创建基本 Servlet 的步骤。
创建 Servlet 的步骤
在本例中,我们将创建一个基本 servlet,在浏览器中向用户显示欢迎消息。
第 1 步:创建动态 Web 项目
- 在 Eclipse 中,转到File -> New -> Dynamic Web Project并单击它。
- 单击Dynamic web project后,将打开以下窗口以输入所需的项目详细信息。
- 输入项目名称。
- 检查项目保存的位置是否正确。
- 检查为项目选择的运行时间是否正在显示。如果要更改运行时的任何配置,可以通过单击Modify来完成。
- 单击下一步。
- 构建路径上的源文件夹和类文件夹将显示在此处。
- 单击下一步。
- 这是创建 Web 模块的过程,您的所有 HTML 和 JSP 页面都将在其中添加。
- 我们还可以生成一个部署描述符——web.xml文件来定义 URL 路径和 servlet 之间的映射,以处理使用这些路径的请求。这也可以使用 Servlet 类中的 @WebServlet() 注释来完成。
- 在本例中,我们将在 servlet 类中使用注解来映射 URL 路径。
- 但是为了演示在项目中创建 web.xml 文件,我们还将选中 web.xml 复选框。
- 单击完成。
- 这样,应该创建项目结构。
第二步:servlet-api.jar 文件
当我们使用 servlet 时,我们需要在我们的项目中有servlet-api.jar文件。这个 jar 是一个包含 Servlet API 的所有接口和类的库,因此我们可以使用它的功能来开发我们的 Web 应用程序。
- 在此示例中,我们使用 Apache Tomcat 服务器来运行该项目。
- Tomcat容器是一个开源的Java servlet容器,实现了Java Servlet、JSP等几个核心Java企业功能,所以默认提供了这个servlet-api.jar文件。
- 如果您仅使用 Tomcat 服务器,则可以检查以下路径中的 jar 文件。
- 可以看到,在 Apache Tomcat 下,默认有一个 servlet-api.jar 文件。
对于不同的服务器:
- 如果您使用不同的服务器并且 servlet-api.jar 文件不存在,您可以从 Maven 存储库下载它。
- 将下载的 jar 文件作为外部 jar 添加到您的项目中,如下所示,
- 转到项目名称并右键单击它。转到构建路径-> 配置构建路径。
- 在此窗口中,它将显示与项目关联的所有库,您还可以将任何所需的 jar 文件添加到项目中。
- 转到Libraries选项卡并单击Add External JARs 。
- 从您下载并添加的位置选择 servlet-api.jar 文件。
- 添加 jar 文件后,单击应用并关闭。
- 添加的 jar 文件将在项目的 lib 文件夹下可见。
第 3 步:创建 Servlet 类
- 要创建 Servlet,请转到文件夹src -> New -> Servlet。
- 如果没有 Servlet 选项,请转到其他并搜索 Servlet。
- 在包中创建Java类是一种很好的做法。
- 输入包名和类名。
- Java Servlet 在 javax.servlet.http.HttpServlet 下可用。所以超类是HttpServlet。
- 单击下一步。
- 正如我们在创建项目时了解 URL 映射一样,我们可以在此处为特定的 servlet 指定这些 URL 映射。
- 此处指定的 URL 应用于映射 web.xml 中的 servlet 或使用注释。
- 它将显示默认映射名称,但如果需要,您可以通过选择 URL 并单击编辑来更改它。
- 单击下一步。
- HTTP Servlet 是一个特定于协议的 Servlet,它提供了上面屏幕截图中显示的所有这些方法。
- 我们可以根据我们的要求使用这些方法。
- 例如,如果我们想在初始化 servlet 时实现逻辑,我们可以重写 init() 方法。
- 对于 HTTP GET 请求,要获取请求的信息,我们可以使用 doGet() 方法。
- 在此处获取有关 HTTP Servlet 方法的更多信息。
- 在此示例中,我们只是向用户显示欢迎消息。因此,选择doGet复选框。
- 单击完成。
- 如上所示,它创建了HelloServlet。带有我们选择的doGet()方法的Java Servlet 类。
- 如您所见,它自动为该 servlet 提供了 @WebServlet(“/HelloServlet”) 注解来映射 URL。因此,无需在 web.xml 文件中再次输入映射。
- 在Java中,每个类都会有一个默认构造函数,因此该构造函数也会在此处自动生成。
- 如果您了解Java中的序列化概念,那么在 Eclipse IDE 中创建 Servlet 时也会生成作为与每个序列化类关联的版本号的serialVersionUID 。
第 4 步:实现逻辑
- 在 doGet() 方法中,实现向用户显示欢迎消息的逻辑。
你好Servlet。Java
Java
package com.welcome;
import java.io.IOException;
import java.io.PrintWriter;
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("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("");
out.print("Welcome to GeeksForGeeks
");
out.print("");
}
}
- 一旦我们从浏览器获得 Get 请求,就会执行 doGet() 方法。
- 在这里,我们将响应内容类型设置为“text/html”,以便发送到客户端/浏览器的响应将被视为 text/html。
- 在Java.io 包中, Java提供了一个PrintWriter类来将格式化的输出打印到文本输出流。
- 因此,获取 PrintWriter 对象并打印欢迎消息。
- 您需要在 servlet 类中添加所有必需的包。
- 由于我们将内容类型指定为“text/html”,我们在输出流中提到的标签——out.print ()将被视为 HTML 标签,并且消息“Welcome to GeeksForGeeks”将写入响应浏览器。
第 5 步:运行项目
- 右键单击HelloServlet。 Java类,运行方式->在服务器上运行。
- 如果你想调试 servlet,你也可以在这里点击调试。
- 确保在 localhost 上正确配置了 Tomcat 服务器,然后单击Next。
- 检查您创建的项目是否在配置部分中,然后单击完成。
- 如果项目显示在可用部分中,请选择项目并单击添加以在服务器上配置项目。
输出:
- 一旦服务器启动,它将配置并运行 HelloServlet。服务器上的Java文件。
- 您可以在浏览器中运行 URL: http://localhost:8080/JavaServlets/HelloServlet 。
- 确保正确映射 Servlet “/HelloServlet” 中指定的 URL。