搞懂Servlet(1)- 介绍

在这里插入图片描述

介绍Servlet

今天,我们都意识到创建动态网页的必要性。动态网页就是网页内容会随着时间变化,或者内容会根据请求参数的不同而变化。如果你使用java编程,很幸运的是有一种使用Java生成动态网页的方式-Java Servlet。但是,在这之前,我们先来理解服务端需要的扩展。

什么是Java Servlet

Java Servlet是指在Java-enabled的web服务器或应用服务器上运行的Java程序。它们用于处理来web服务器接收的请求,处理请求,产生响应,把响应返回给web服务器。

Java Servlet的特性

Java Servlet的特性包括:

  • 工作在服务端
  • 可以处理来自web服务器的复杂的请求

Java Servlet的架构

Java Servlet的架构可以用下面的图描述:
在这里插入图片描述

Java Servlets的执行

Java Servlets的执行通常包括6个步骤:

  1. 客户端把请求发送到web服务器。
  2. web服务器收到请求。
  3. web服务器把请求发送给对应的servlet。
  4. servlet处理请求,产生输出格式的响应。
  5. servlet把响应返回给web服务器。
  6. web服务器把响应返回给客户端,客户端把响应显示在网页中。

现在,让我们讨论下为什么需要服务端的扩展。

服务端的扩展

服务端的扩展只是用于生成动态网页的技术。实际上,为了给动态网页提供一个生产车间,动态网页需要一个容器或者web服务器。为了实现这种需求,各个web服务器提供商提出了API形式的解决方案。
这些API可以让我们写出可以和服务器一起工作的程序。同样,Java Servlet 也是Java Platform Enterprise Edition(制定使用Java创建动态网页技术的标准)的API组件之一。
Java Servlet并不是实现动态网页唯一的技术。Java Servlet类似于其它的web服务器扩展,例如Common Gateway Interface(CGI)和Hypertext Preprocessor(PHP)。可是,Java Servlet更受欢迎,因为它解决了CGI的一些限制,例如,低性能和低扩展性。

什么是CGI(Common Gateway Interface)

CGI实际上是一个外部的用任何语言比如C、C++编写的程序,负责处理客户端的请求,生成动态内容。
在CGI程序中,当客户端请求动态网页时,web服务器执行下面的操作:

  1. 它首先找到处理这个动态网页请求的CGI应用程序。
  2. 然后,新建一个进程用户处理这个请求。
  3. 在这个新进程中运行CGI程序,并传入请求的信息。
  4. 从CGI进程中获取响应数据。
  5. 销毁进程,准备HTTP响应,返回给客户端。
    在这里插入图片描述
    所以,使用CGI,服务器必须为每一个请求创建和销毁进程。很容易理解这种方式在处理小量用户请求时是没有问题的,但是,随着用户量的增加,服务器的工作负载会增加,相应的,处理请求的时间也会增加。

Java Servlet和CGI的区别

ServletCGI(Common Gateway Interface)
Servlets可移植,高效CGI不可移植
Servlets可以共享数据CGI不可共享数据
Servlets可以直接跟web服务器通信CGI不可以直接跟web服务器通信
Servlets轻量级CGI重量级
Servlets可以操作cookiesCGI不可以操作cookies

Servlets APIs

Servlets由2个包组成:

  • javax.servlet(基础)
  • javax.servlet.http(高级)
    包里包括的类:
组件类型
ServletInterfacejavax.servlet.*
ServletRequestInterfacejavax.servlet.*
ServletReponseInterfacejavax.servlet.*
GenericServletclassjavax.servlet.*
HttpServletclassjavax.servlet.http*
HttpServletRequestinterfacejavax.servlet.http*
HttpServletResponseinterfacejavax.servlet.http*
FilterInterfacejavax.servlet.*
ServletConfigInterfacejavax.servlet.*

Java Servlet 的有点

  • 由于Servlets不像CGI,为每一个请求开启一个进程,它运行的更快。
  • Servlets由Java编写,它是平台无关的。
  • Servlets是服务端的组件,它可以继承web服务器提供的安全保证。
  • Servlets由Java编写,它可以使用Java平台提供的基础设施,比如,JDBC访问数据库。

Servlet 容器

Servlet容器,也被称为Servlet引擎,是一套为Servlet搭建的运行时环境。简单来说,它是构建在Web服务器之上,管理着Servlet,处理Web客户端请求的系统。
Servlet容器提供的服务包括:

  • 网络服务:加载Servlet类。加载源可以是本地文件系统,远程文件系统,或者其它网络服务。容器提供网络服务包括请求和响应的发送。
  • 解码和编码MIME-based信息:提供编解码MIME-based信息。
  • 管理Servlet:管理Servlet的生命周期。
  • 资源管理:管理动态和静态资源,例如:HTML,Servlet,JSP页面。
  • 安全服务:提供资源访问的鉴权。
  • Session管理:维护Session。

总结

Java Servlet是处理业务逻辑和处理复杂网络请求的关键组件,帮助开发动态网站。下面是我们这篇文章讨论过的要点:

  • Java Servlets 致力于服务端程序的开发,处理动态内容,创建健壮和交互性的网站。
  • Servlets 使我们的web程序更加响应快速。因为,它不需要为每一个请求创建和销毁进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【web网页开发制作】Html+Css+Js游戏主题特效及轮播效果网页作业天涯明月刀(7页面附源码)

HTMLCSSJS游戏主题轮播效果 🍔涉及知识🥤写在前面✨特效展示特效1、轮播幻灯效果特效2和3、鼠标悬浮及点击效果 🍧一、网页主题🌳二、网页效果Page1、首页Page2、游戏简介Page3、新闻中心Page4、互动专区Page5、视听盛宴Page6、用…

ctfshow parse_url wp

第一关 这个parse_url函数就是解析URL并且进行拆分的 $url "https://www.example.com/path/to/page?param1value1&param2value2";$parsed_url parse_url($url);print_r($parsed_url); Array ([scheme] > https[host] > www.example.com[path] > /p…

【论文复刻】 堆叠柱状图变形

复刻了一下这篇论文里的fig4a:Impacts of COVID-19 and fiscal stimuli on global emissions and the Paris Agreement | Nature Climate Change 效果图:​ 主要步骤: 1. 数据准备:随机赋值 2. 数据处理:计算了一个…

机器学习中常用的几种距离——欧式、余弦等

目录 一、欧式距离(L2距离)二、曼哈顿距离(L1距离)三、汉明距离四、余弦相似度 一、欧式距离(L2距离) (1)二维空间的距离公式(三维空间的在这个基础上类推)&…

4.StableDiffusion各项参数解读

经过前期的努力,我想大家都已经生成了自己的第一张AI作品,但是充满了随机性,每次都是不一样的,并且有时候生成的图片效果还不是很让人满意,暂且先不要着急,先跟着本篇文章,学习一些每个选项和参…

Google Chrome GPU渲染抓包

非安全模式启动 "C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content --disable-web-security 配置环境 set RENDERDOC_HOOK_EGL0 "C:/Program Files/Google/Chrome/Application/chrom…

Windows本地部署直播录屏利器Bililive-go并实现远程添加直播间录屏

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. Bililive-go与套件下载1.1 获取ffmpeg1.2 获取Bililive-go1.3 配置套件 2. 本地运行测试3. 录屏…

【MySQL】事务及其隔离性/隔离级别

目录 一、事务的概念 1、事务的四种特性 2、事务的作用 3、存储引擎对事务的支持 4、事务的提交方式 二、事务的启动、回滚与提交 1、准备工作:调整MySQL的默认隔离级别为最低/创建测试表 2、事务的启动、回滚与提交 3、启动事务后未commit,但是…

MVP产品设计与数据指标

MVP(minimum viable product,最小化可行产品)概念最早由埃里克莱斯提出,刊载于哈弗商业评论,并有出版物《精益创业》 和常规产品不同,MVP更侧重于对未知市场的勘测,用最小的代价接触客户的方法…

学习Nginx(一):基础

介绍 Nginx是一个高性能的HTTP和反向代理的web服务器,它的设计重点是高并发、高性能和低内存消耗。它常被用于提供静态内容、负载均衡和作为Web服务器。 Nginx具有以下功能和特点: 静态文件服务:作为一个Web服务器,Nginx可以处…

GPT-4o可以用了

方法:挂日本/新加坡的梯子就可以了,打开就会弹出以下的弹窗。不过不知道可以用多久呢? 2024/5/15

木里风景文化|基于SSM+vue的木里风景文化管理平台的设计与实现(源码+数据库+文档)

木里风景文化管理平台 目录 基于SSM+vue的木里风景文化管理平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 3 用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

全知人工智能的黎明:OpenAI 革命性的 GPT-4o 揭晓

全知人工智能的黎明:OpenAI 革命性的 GPT-4o 揭晓 在一项突破性的公告中,OpenAI 推出了其最新的旗舰人工智能模型 GPT-4o,该模型有望彻底改变我们与人工智能交互的方式。这种无所不知的人工智能模型拥有前所未有的能力,从实时翻译…

Redis-持久化操作-AOF

持久化操作-AOF AOF是什么? 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只允许加文 件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之…

Axure10_win安装教程(安装、汉化、授权码,去弹窗)

1.下载Axure10 链接:https://pan.baidu.com/s/1fc8Bgyic8Ct__1IOv-afUg 提取码:9qew 2.安装Axure10 因为我的电脑是Windows操作系统,所以我下载的AxureRP-Setup-Beta v10.0.0.3816 (Win).exe 一直点下一步就行 3.Axure10中文 打开Axure…

LangChain-Chatchat 实践

目录 1. 说明 相关路径: 安装环境: 2. 安装 2.1 工具准备 2.2 资料准备 2.3 执行 3. 测试 3.1 LLM对话 3.2 知识库 3.3 API 接口 参考 1. 说明 比较了几个AI LLM的集成应用工具(比如Quivr, Dify, one-api), 还是LangChain-Chatchat更符合我的需要: 支持私有化部署…

RS485和RS232区别

RS485和RS232接口在物理外观上的区别主要在于连接器的类型和接线方式上。这两种串行通讯接口虽然在功能上有所不同,但外观上也有一些显著的特点。 连接器类型: RS232 接口通常使用DB9或DB25类型的连接器。DB9是较为常见的,拥有9个针脚&#x…

Adaboost集成学习 | Matlab实现基于CNN-BiLSTM-Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于CNN-BiLSTM-Adaboost集成学习时间序列预测(股票价格预测) 模型设计 融合Adaboost的CNN-BiLSTM模型的时间序列预测,下面是一个基本的框架。 数据准备: 收集并整理用于时…

卷积神经网络CNN的运行过程、常见术语与问题

目录 一、CNN运行过程 1、卷积(Convolution) 2、激活函数(activation function) 3、池化(pooling) 3.1 池化操作 3.2 池化过程 3.3 池化后结果 4、Flatten 5、全连接层 Flatten层的操作 全连接层…

语义分割——高分卫星土地覆盖数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …