Java 中的 Servlet 生命周期:方法、架构、比较和设置

已发表: 2021-03-03

目录

介绍

Servlet 产生的方法不仅基于组件且独立于平台,而且非常支持构建基于 Web 的应用程序。 Servlet 可以访问 java API 和 JDBC API 来访问数据库。 在 Java Servlet 的情况下,虽然 CGI(Common Gateway Interface)程序的性能没有限制,但仍然存在一些缺点。

什么是 Servlet?

Servlet 是一种对创建动态网页非常有益的技术。 它充当 Web 浏览器和 HTTP 客户端或服务器之间的中间层。 在 servlet 的帮助下,我们首先收集用户的输入,然后动态创建网页。 Servlet 扩展了服务器和主机应用程序的功能。 Servlet 扩展了服务器的功能并响应用户的任何类型的请求。

资源

CGI 与 Servlet

在 servlet 之前,CGI 被广泛使用。 CGI 是一种将从用户收到的请求传递给应用程序的方法。 尽管 CGI 是 Web 服务器的一种方式,但它也从浏览器(客户端)获取响应。 当用户向浏览器请求网页时,服务器会将其发送回给他们。

当客户想在网页上填写表格并尝试再次发送时,应用程序会对其进行处理。 服务器将信息传递给一个小型 Web 应用程序。 该程序首先处理数据,然后通过确认消息将其发回。

Servlet 生命周期方法简介

一个servlet的生命周期方法主要有3种,我们可以描述为:

  1. 在里面()
  2. 服务()
  3. 破坏()

资源

小服务程序架构

  • 首先,它读取客户端发送的数据。 然后,它在网页中插入一个 HTML 表单,然后发送客户端发送的请求。
  • 之后,servlet 处理数据并连接到数据库管理系统,通过调用 Web 服务执行 RMI。
  • 处理后,文件可以以文本和 gif 格式发送。
  • 最后,它将 HTTP 发送到客户端。

资源

现在我们将详细讨论这些方法

1. 初始化()

init() 方法仅在 servlet 实例创建后调用一次。 首先,它初始化 servlet。 Servlet.init() 表示 servlet 实例创建成功。

init() 方法的语法如下:

公共无效初始化(ServletConfig 配置)抛出 ServletException {

//初始化代码

}

2.服务()

每当 servlet 收到请求时,Web 容器都会调用 service() 方法。

  • 收集请求的数据 b
  • y 客户端,使用服务请求对象。
  • 为了生成输出内容,使用了ServletResponse对象。

service() 方法的签名如下:

公共无效服务(ServletRequest 请求,ServletREsponse 响应)

抛出 ServletEXception , IOException {

//请求处理代码

}

service() 方法使用 doGet、doPost、doPut、doDelete 和许多其他方法。

3. 销毁()

用户在servlet 的生命周期中至少调用一次 destroy() 方法 它用于终止数据库连接,释放分配的内存和资源。 它还有助于清理目的,垃圾收集与此相关。

destroy() 方法的签名是

公共无效销毁(){

// 结束代码

}

另请阅读: Servlet 与 JSP

Servlet 的环境设置

要创建 Servlet 应用程序,首先,我们需要执行一些步骤,例如安装 Tomcat 服务器,如下所述 -

1.创建目录结构

资源

首先,我们需要在一个名为 Apache 的目录中创建上述目录结构——Tomcat\webapps 目录。 我们需要将所有 HTML、静态文件、图像保存在创建文件夹的 Web 应用程序下。 servlet 必须保存在类文件夹中。 最后,web.xml 文件应该在 WEB-INF 文件夹下。

2. 创建一个 Servlet

我们可以通过三种不同的方式创建 servlet。

  1. 通过实现 Servlet 接口。
  2. 通过扩展 GenericServlet 类。
  3. 有必要扩展 HTTP servlet 类。

如果我们可以扩展httpServlet抽象类,就可以主要形成一个servlet。

3. 编译 Servlet

为了编译 servlet,需要一个 JAR 文件——

  1. 通过设置类路径。
  2. 通过将 jar 粘贴到 JRE/lib/ext 文件夹中。

4. 创建部署描述符

DD 可以定义为基于 Web 的服务器使用的 XML 文件,以便

他们可以轻松运行 servlet。 DD 用于几个重要目的。

  1. 通过将 URL 映射到 Servlet 类。
  2. 通过初始化参数。
  3. 通过定义错误页面。
  4. 按安全角色。
  5. 通过声明标签库。

5.启动服务器

要启动 Apache Tomcat 服务器,我们需要双击 apache-tomcat/bin 目录下的 startup.bat 文件,它就会开始工作。

6.第一次启动Tomcat服务器

首次启动 Tomcat 服务器,我们需要在环境变量中设置 JAVA_HOME。 下面提到了以下步骤。 右键单击我的电脑,我们需要转到属性

资源

  1. 接下来,我们将转到高级选项卡,我们需要单击环境变量按钮

资源

  1. 因此,我们将单击新建按钮并在变量名称文本字段中输入JAVA_HOME ,在变量值文本字段中输入 JDK 的路径。 然后,我们需要通过单击“确定”来保存它。

资源

7. 运行 Servlet 应用程序

当我们运行 servlet 按钮时,它看起来像 -

打开浏览器后,我们需要输入http:localhost:8080/First/hello

结帐:印度的 Java 开发人员薪水

Servlet 请求接口

ServletRequest 旨在为客户端提供有关 servlet 的真实信息

包括内容类型、长度、参数值等等。

方法

1. 获取属性(字符串)

如果属性不存在,则根据请求返回属性的值

然后返回 NULL。

2.getAttributeNames()

它返回客户端请求的当前属性的名称。

3.getCharacterEncoding()

返回一些字符集。

4. 获取内容长度()

返回请求的数据实体大小

5. 获取内容类型()

首先,它请求对象的身份。 如果未找到,则返回 NULL 值。

6.getInputStream()

返回客户端接收到的二进制数据流,然后返回字符串。

7. 获取参数(字符串)

返回参数的字符串。

8.getParameterNames()

它返回参数名称。

9. 获取参数值(字符串)

它返回参数的值。 它们总是以字符串的形式存在。

10. 获取协议()

它以 <protocol>/<major version>.<minor version> 的形式返回协议和版本。

11.getReader()

它返回一个缓冲的阅读器来阅读请求正文中的文本。

12. 获取真实路径(字符串)

避开虚拟路径,返回真实路径。

13.getRemoteAddr()

它返回 IP 地址。

14. 获取远程主机()

它返回代理的完全结构化的主机名。

15.getScheme()

它返回请求中使用的 URL。

16. 获取服务器名称()

它返回服务器的主机名。

17. 获取服务器端口()

它返回端口号。

18. 设置属性(字符串,对象)

此方法为任何类型的请求累积一个属性。

小服务程序响应

ServletResponse 调用一个对象,记录各种用户的响应。 Web 容器负责所有这些活动。 创建它的步骤非常重要。 步骤是创建一个对象。

现在让我们详细谈谈下面的ServletConfigServletContext

ServletConfig

1. Web 容器根据初始化参数创建配置对象。

2. 每个 Servlet 必须存在一个 ServletConfig。

方法

1.等于(对象)

检查当前对象是否与给定对象具有相等的值。

2.GetHashCode()

用作默认哈希函数。

3.GetType()

返回当前实例的类型。

4. MemberwiseClone()

如果我们调用这个对象,就可以创建一个浅拷贝。 它默认引用当前对象

5. ToString()

返回一个字符串,它表示当前对象。

Servlet上下文

让我们在下面讨论 ServletContext:

  1. 让 Web 应用程序的每个 Servlet 都可以访问引用对象是非常必要的。
  2. 引用对象实际上是这些的运行时实现。

两种类型的 servlet 可以定义为:

1. 通用 Servlet

我们将通用 servlet 称为独立于协议,并且需要通过覆盖来调用它。 我们可以通过三种方式调用通用 servlet——

  • HTML 文件

我们可以创建一个看起来像 WebContent/index.html 的非常简单的 HTML 文件。

  • Java 类文件

可以通过扩展 GenericServlet 类来创建通用 servlet。 如果我们可以创建一个简单的新类文件,那么我们可以将其重命名为泛型。 文件路径如下:/javaResouces/src/default package/generic.java。

  • XML 文件

我们可以在路径 WebContent/WEB-INF/web.xml 中找到这个文件。 我们可以将 servlet 映射到特定的 URL。

2. HTTP 小服务程序

这种类型的 servlet 只不过是 Servlet 类的扩展。 虽然它依赖于 HTTP,但它设置了一些规则来帮助 Web 浏览器和服务器进行通信,并且 HTTP servlet 也可以覆盖 doGet() 或 doPost() 方法。 此外,它可以覆盖这两种方法。

Servlet 的优点

现在让我们看看 servlet 的一些优点——

  1. 表现非常出色。
  2. Servlet 可以在服务器的地址空间内执行。 因此,我们可以说没有必要创建一个单独的地址空间来处理客户端请求。
  3. 它们独立于平台,主要基于组件。
  4. Servlet 受到保护,因为安全管理器设置了一些限制来保护资源和数据。
  5. 在工作时,用户无需担心释放内存作为垃圾分配技术。
  6. Servlet 提供完整的功能,因为所有库都可用。 它可以轻松地与小程序和其他机制进行通信。

资源

Servlet 的缺点

servlet 的局限性讨论如下:

  1. 一次只能在 JVM 中加载一个 servlet。 因此,我们可以说它与请求的数量有关。
  2. 当有请求时,只能有一个线程。 那里不应该存在任何进程。
  3. 设计一个 servlet 的成本很高,而且有时还很成问题。
  4. 我们需要在浏览器中进行其他设置,例如服务器上的 JRE(Java 运行时环境)来运行 servlet。

另请阅读: Java 项目理念和主题

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

在这个数字世界的现代时代,技术和互联网已成为一切的驱动力。 互联网是不安的。 每一秒,都在忙于传输大量数据。

但是由于数据的大量传输,互联网速度变慢,因为我们也需要速度。 因此,动态站点由软件开发人员创建。 这些网站每时每刻都在变化和更新。 要进一步了解 Java 和开发中的 Servlet,请查看upGrad 的全栈软件开发执行 PG 计划并开始您的旅程。

本文的主要目的是为读者提供 servlet 的基本概念,以便他们获得有关 servlet 的基本概念。

踏上梦想的工作

立即申请全栈开发的执行 PG 计划