热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Servlet架构

Servlet架构原文:https://www.geeksfo

Servlet 架构

原文:https://www.geeksforgeeks.org/servlet-architecture/

Servlets 分组在高级 Java 树下,用于创建动态 web 应用程序。Servlets 本质上是健壮的、可伸缩的,主要用于开发服务器端应用程序。如果我们回到过去,我们将能够见证在引入 servlets 之前,使用了 CGI(公共网关接口)。在 servlet 能够完成的几个本地任务中,动态执行客户端请求和响应是最常见的。servlet 可以有效完成的其他任务有:


  • 可以轻松管理/控制应用程序流。

  • 适合实现业务逻辑。

  • 可以有效平衡服务器端的负载。

  • 轻松生成动态网页内容。

谈到 servlets 的类型,主要有两种类型,即:


  1. 通用 servlet

  2. http servlet

有三种可能的方法可以用来创建 servlet:


  1. 实现 Servlet 接口

  2. 扩展通用 Servlet

  3. 扩展 HTTP Servlet


Servlet 架构的组件

下面是 servlet 的高层架构图。让我们简单地看看,每个组件如何增加 servlet 的工作。

Servlet 架构

1。客户端

上面的架构中显示的客户端主要是作为一个媒介工作的,它向 web 服务器发送 HTTP 请求,并再次处理从服务器返回的响应。如图所示,我们的客户端是网络浏览器。

2。网络服务器

web 服务器的主要工作是处理用户随时间发送的请求和响应,并维护 web 用户如何访问服务器上托管的文件。我们在这里讨论的服务器是一个软件,它管理对网络中集中资源或服务的访问。。有两种类型的网络服务器:


  1. 静态网络服务器

  2. 动态 web 服务器

3。网页容器

Web 容器是 servlet 体系结构中负责与 servlet 通信的另一个典型组件。web 容器的两个主要任务是:


  • 管理 servlet 生命周期

  • 网址映射

Web 容器位于服务器端,管理和处理来自 servlets、JSP 页面或任何其他文件系统的所有请求。

一个 Servlet 请求是如何流动的?

每个 servlet 都应该覆盖以下 3 种方法,即:


  1. init()

  2. 服务()

  3. 销毁()

这些方法用于处理来自用户的请求。

下面是请求流过 servlet 的步骤,可以在体系结构图中看到:


  • 客户端发送请求。

  • 该请求被 web 服务器接受并转发到 web 容器。

  • 为了获得 servlet 的地址,web 容器跟踪对应于请求 URL 模式的 web.xml 文件。

  • 当上述过程发生时,servlet 应该已经被实例化和初始化了。如果 servlet 没有被实例化和初始化,调用 init() 方法来达到目的。

  • 通过传递 ServletRequest响应对象public service() 方法由容器调用。

  • 在下一步中, ServletRequestServletResponse 对象通过公共服务()方法类型化为 HttpServletRequestHttpServletResponse 对象。

  • 现在保护服务()方法被公共服务()方法调用。

  • 受保护服务()方法根据请求类型将请求分派给正确的处理程序方法。

  • 当 servlet 容器关闭时,它卸载所有 servlet,并为每个初始化的 servlet 调用 destroy() 方法。


优势



  • servlet 的主要功能是它们独立于服务器配置,并且与任何 web 服务器都兼容

  • Servlets 也是独立于协议的,支持 FTPHTTPSMTP 等。最充分的协议。

  • 在手动销毁之前,servlets 可以保留在内存中,随着时间的推移帮助处理几个请求。此外,一旦建立了数据库连接,就可以在同一个数据库会话中处理多个数据库请求。

  • Servlets 继承了 Java 的可移植性,因此几乎可以兼容任何网络服务器。

  • Servlets 首先被转换成字节码,然后被执行,这有助于增加处理时间。


不足之处



  • 设计一个 servlet 可能相当费力。

  • 设计 servlet 时需要处理异常,因为它们不是线程安全的。

  • 开发人员可能需要额外的技能来编写 servlet。

正如我们已经知道的,Servlets 本质上是可移植的(与平台/服务器无关),因此如果我们从其他脚本语言的角度来看,它是一个更好的选择。他们动态地处理请求和响应。每当我们开发一个需要与不同现有协议协调的 web 应用程序时,servlets 都比其他方法更受欢迎,因为它能够支持各种协议。最后,我们可以得出结论,在开发 web 应用程序时,使用 servlet 可能是最合适的。


推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
author-avatar
nowemf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有