Java Servlets简介

简介

如今,我们都意识到创建动态网页的必要性,即能够根据时间改变网站内容或能够根据客户端收到的请求生成内容的网页。如果你喜欢用 Java 编写代码,那么你会很高兴地知道,使用 Java 也有一种生成动态网页的方法,这种方法就是 Java Servlet。不过,在继续我们的话题之前,让我们先了解一下服务器端扩展的必要性。
Servlet 是在支持 Java 的网络服务器或应用服务器上运行的 Java 程序。它们用于处理从网络服务器获取的请求、处理请求、生成响应,然后将响应发送回网络服务器。
Servlet 的属性如下:

  • servlet 在服务器端工作
  • Servlet 能够处理从网络服务器获取的复杂请求

servlet工作流程

Servlet 架构可以从下面提供的图片本身描述如下:
在这里插入图片描述
Servlet 的执行基本上涉及六个基本步骤

  • 客户端将请求发送到网络服务器。
  • Web 服务器接收请求。
  • Web 服务器将请求传递给相应的 servlet。
  • Servlet 处理请求并以输出的形式生成响应。
  • Servlet 将响应发送回 Web 服务器。
  • Web 服务器将响应发送回客户端,客户端浏览器将其显示在屏幕上。

servlet发展

现在让我们讨论一个奇怪的问题:为什么我们需要服务器端扩展?
服务器端扩展只不过是用于创建动态网页的技术。实际上,为了提供动态网页的功能,网页需要容器或Web服务器。为了满足这一要求,独立的Web服务器提供商以API(应用程序编程接口)的形式提供了一些专有的解决方案。
这些 API 允许我们构建可以与 Web 服务器一起运行的程序。在这种情况下,Java Servlet 也是 Java Platform Enterprise Edition 的组件 API 之一,它为用 Java 创建动态 Web 应用程序设定了标准。
在学习某些东西之前,了解该东西的需求很重要,这并不是可用于创建动态网页的唯一技术。 Servlet 技术类似于其他 Web 服务器扩展,例如通用网关接口 (CGI) 脚本和超文本预处理器 (PHP)。然而,Java Servlet 更容易被接受,因为它们解决了 CGI 的低性能和低可扩展性等局限性。
那CGI又是什么呢?CGI 实际上是使用任何编程语言(如 C 或 C++)编写的外部应用程序,负责处理客户端请求并生成动态内容。
在CGI应用中,当客户端发出访问动态网页的请求时,Web服务器执行以下操作:

  • 它首先使用 URL 定位所请求的网页,即所需的 CGI 应用程序。
  • 然后它创建一个新流程来服务客户端的请求。
  • 调用进程内的CGI应用程序并将请求信息传递给应用程序。
  • 收集来自 CGI 应用程序的响应。
  • 销毁进程,准备 HTTP 响应,并将其发送到客户端。
    在这里插入图片描述
    因此,在 CGI 中,服务器必须为每个请求创建和销毁进程。很容易理解,这种方法适用于处理少量客户端,但随着客户端数量的增加,服务器上的工作负载会增加,因此处理请求的时间也会增加。
    在这里插入图片描述

servlet优势

Servlets API’s: 主要在这两个包路径下::

javax.servlet(Basic)
javax.servlet.http(Advance)
这里是这两个包的一些接口和类:
在这里插入图片描述
: Java Servlet 的优点

  • Servlet 比 CGI 更快,因为它不涉及为收到的每个新请求创建新进程。
  • 用 Java 编写的 Servlet 是平台无关的。
  • 由于 Servlet 不在单独的进程中运行,因此消除了为每个请求创建新进程的开销。只有一个实例可以同时处理所有请求。这还可以节省内存并允许 Servlet 轻松管理客户端状态。
  • 它是一个服务器端组件,因此Servlet继承了Web服务器提供的安全性。
  • 为Java Servlet设计的API自动获得了Java平台的平台无关性、可移植性等优点。此外,它显然可以使用在Java平台上创建的各种API(例如JDBC)来访问数据库。
  • 许多适合个人使用或低流量网站的网络服务器都是免费或以极低的成本提供的,例如。 Java servlet。然而,大多数商业级 Web 服务器都相当昂贵,但 Apache 是一个明显的例外,它是免费的。

文章原作者:Kartik Thakral
文章来源:https://www.geeksforgeeks.org/introduction-java-servlets/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值