小工具      在线工具  汉语词典  css  js  c++  java

什么是Servlet容器?

Java 额外说明

收录于:45天前

在本文中,我写了一些关于Web服务器、Servlet容器以及它与JVM的关系的基本概念。我想表达的是,Servlet容器也仅仅不过是一个Java程序。

1. 什么是Web服务器?

要知道什么是Servlet容器,我们首先需要知道什么是Web服务器。

Web 服务器使用 HTTP 协议来传输数据。最简单的情况是用户在浏览器(客户端)中输入一个URL(例如www.programcreek.com/static.html),然后获取网页进行浏览。因此,服务器所做的就是将网页发送给客户端。传输过程遵循HTTP协议,规定了请求消息和响应消息的格式。

2. 什么是Servlet容器?

在这里,我们发现用户/客户端只能向服务器请求静态网页。如果用户想要根据自己的输入来阅读网页,这种方法就不能满足用户的要求。 Servlet容器的基本思想是在服务器端使用Java来动态生成网页。因此,Servlet容器是Web服务器和Servlet之间交互的重要组件。

    小服务程序容器就是用来装Servlet的。

3. 什么是Servlet?

    服务程序是在javax.serlvet包中定义的一个接口。它声明了servlet生命周期中必不可少的三个方法-init()、service()和destroy()。每个servlet(无论是在SDK中定义的,或是自定义的)都必须实现这三个方法,而且由服务器在特定的时刻调用。

1. init()方法在servlet生命周期的初始化阶段被调用。它传递一个实现 javax.servlet.ServletConfig 接口的对象,以便 servlet 可以从 Web 应用程序获取初始化参数。

2.servlet初始化时,每次收到请求都会调用service()方法。每个请求都在单独的线程中处理。 Web 服务器为每个请求调用一次 service() 方法。 service()方法判断请求的类型,并将其转发给相应的方法进行处理。

3、当servlet对象需要销毁时,必须调用destroy()方法。该方法释放占用的资源。

与所有 Java 程序一样,Servlet 在 JVM 中运行。引入 servlet 容器是为了处理复杂的 HTTP 请求。 Servlet容器负责Servlet的创建、执行和销毁。

4. Servlet容器和Web服务器如何处理一个请求?

1. Web服务器接收HTTP请求

2. Web服务器将请求转发给servlet容器

3. 如果容器中不存在所需的servlet,容器将检索该servlet并将其加载到容器的地址空间中

4、容器调用servlet的init()方法来初始化servlet(只有第一次加载servlet时才会调用该方法)

5、容器调用servlet的service()方法来处理HTTP请求,即读取请求中的数据并创建响应。 Servlet 将保留在容器的地址空间中并继续处理其他 HTTP 请求。

6. Web服务器将动态生成的结果返回到正确的地址。

下图概括了以上六个步骤:

5. JVM扮演的角色

使用 servlet 允许 JVM 分配独立的 Java 线程来处理每个请求。这也是Servlet容器的主要优点之一。每个 servlet 都是一个 Java 类,具有响应 HTTP 请求的特定元素。 Servlet容器的主要功能是将请求转发给相应的Servlet进行处理,并在JVM处理完请求后,将动态生成的结果返回到正确的地址。在大多数情况下,Servlet 容器在单独的 JVM 中运行,但如果容器需要多个 JVM,则有解决方案。

相关文章:

1. Servlet 重定向到重命名的文件下载

2. 在Java Servlet中使用Aapache commons FileUpload组件实现文件上传(附源码)

3. 为什么我们需要像 Struts 2 这样的 Java Web 框架?

4. 从 JAX-WS Web 服务获取 ServletContext

. . .

相关推荐

额外说明

SpringCloud的SPI机制

这里先说下SPI的一个概念,SPI英文为Service Provider Interface单从字面可以理解为Service提供者接口,正如从SPI的名字去理解SPI就是Service提供者接口;我对SPI的定义:提供给服务提供厂商与扩展框架功能的开发者

额外说明

Linux内核的反向路由检查机制rp_filter

环境:centos7,双网卡 ens18: 192.168.6.51 ens19: 192.168.2.111 client:192.168.6.41访问192.168.6.51正常, client:192.168.6.41访问192.168.2.111

额外说明

MYSQL07_获取日期函数、聚合函数和字符串函数

文章目录 ①. 获取日期、时间 - current_timestamp ②. 计算日期和时间的函数 - DATE_ADD ③. 日期的格式化与解析 - DATE_FORMAT ④. 聚合函数 - AVG、SUM、MIN、MAX、COUNT ⑤. 基本函数

额外说明

rabbitmq实现秒杀中订单流量削峰

前言 在Redis秒杀功能设计与实现一篇中,我们使用redis实现了商品的秒杀抢购功能,在当前的设计中,只涉及到商品抢购,即用户锁定名额,并将成功抢购到的用户信息保存到redis中了 但是一个完整的抢购流程在业务流程中看到,包括锁定名额和下单,在超卖问题

额外说明

mybatis使用总结

前言 mybatis作为一门市面上使用比较多的持久层框架,熟练掌握其使用是每一个开发人员必备的技能,下面就mybatis在开发使用中常用的技术点做一下汇总,以便后续使用中迅速查阅 1、参数输入类型 mybatis支持多种参数类型,对应的标签即为param

额外说明

NPDP日常记忆知识点一

IDOV四阶段是:识别、设计、优化、验证 产品创新章程的内容是:背景、重点舞台、目标和目的、特备准则 领先指标——未来绩效 实时指标——当前绩效 滞后指标——过去绩效 新产品机会的来源之一是通过分析当前的产品组合 特性与益处的区别是:特性由公司设计,益处

额外说明

MR案例:计算学生成绩(总分和平均分)

文章目录 一、提出任务 二、完成任务 (一)准备数据 1、在虚拟机上创建文本文件 2、上传文件到HDFS指定目录 (二)实现步骤 1、创建Maven项目 2、添加相关依赖 3、创建日志属性文件 4、创建成绩映射器类 5、创建成绩驱动器类 6、启动成绩驱动

额外说明

关于缓存问题的思考与总结

提到缓存,最容易想到的便是Redis了。Redis凭借其出色的性能表现,十分适合做缓存。那么为什么需要缓存这个东西以及缓存用在哪些地方呢? 一、基本原理 存储层次模型 注:也是背景来源 想要设计好的架构或者应用、程序,一个稳定的思想、原理至关重要。计算机

额外说明

Redis 远程字典服务及shell全部命令汇总【点击可查看高清原图】(附 xmind思维导图原文件 百度网盘)

xmind思维导图原文件分享 链接:https://pan.baidu.com/s/10lGFF9OlxU8a5cfzCYYJKA 提取码:ugi2

额外说明

遇到mfc110jpn.dll文件丢失找不到等问题修复

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个mfc110jpn.dll文件进行安装(前提是找到适合的版本)

ads via 小工具