Java-servlet(一)Web应用与服务端技术概念知识讲解
- 前言
- [一、Web 应用](#一、Web 应用)
- 二、servlet服务端技术
-
- [1. 公共网关接口(CGI)](#1. 公共网关接口(CGI))
- [2. servlet 是什么](#2. servlet 是什么)
- [3.servlet 作用](#3.servlet 作用)
- [4. servlet 特性](#4. servlet 特性)
前言
- 在当今时代,Web 应用已经成为了我们日常生活和工作中不可或缺的一部分。
- 无论是浏览网页、使用在线购物平台,还是进行各种在线办公操作,背后都离不开 Web 应用和相关的服务端技术的支持。
- 本文将详细介绍 Web 应用的基本概念、与 HTTP 的关系,以及常见的服务端技术,包括公共网关接口(CGI)和 Servlet 等,帮助大家对这一领域有更清晰的认识。
一、Web 应用
1.WEB CS BS 对比
比较项目 | C/S(客户端/服务器)架构 | B/S(浏览器/服务器)架构 | WEB(基于B/S模式) |
---|---|---|---|
硬件要求 | 客户端需较高配置,服务器处理数据 | 客户端只需能运行浏览器,服务器负荷大 | 客户端只需能运行浏览器,服务器负荷大 |
软件安装 | 需在客户端安装特定软件,维护更新麻烦 | 客户端用浏览器访问,服务器端更新维护 | 客户端用浏览器访问,服务器端更新维护 |
访问方式 | 限安装软件的设备,跨平台性差 | 有网络和浏览器即可,跨平台性好 | 有网络和浏览器即可,跨平台性好 |
性能 | 客户端分担任务,响应速度可能快 | 数据处理在服务器,网络差时性能受影响 | 网络好时满足多数需求,复杂处理性能弱 |
安全性 | 客户端和服务器都需防护,客户端有漏洞风险 | 依赖服务器防护,面临网络攻击风险 | 依赖服务器防护,面临网络攻击风险 |
开发成本 | 需开发客户端和服务器端,成本高 | 主要开发服务器端,成本低 | 侧重服务器和前端,成本相对可控 |
用户体验 | 可定制个性化界面,专业用户体验好 | 界面标准化,学习成本低,个性化弱 | 注重界面友好,受限于浏览器功能 |
-
在深入了解 Web 应用之前,我们先来对比一下常见的两种软件架构:
-
C/S(Client/Server,客户端 / 服务器)架构和 B/S(Browser/Server,浏览器 / 服务器)架构 。
- C/S 架构需要在用户的设备上安装专门的客户端软件,
- 用户通过客户端与服务器进行交互。这种架构的优点是可以充分利用客户端设备的性能,在处理复杂业务逻辑和图形渲染等方面表现出色。
- 例如,一些大型的游戏和专业的设计软件通常采用 C/S 架构。然而,C/S 架构也存在一些缺点,比如客户端软件的安装、更新和维护比较麻烦,不同操作系统和设备版本可能需要开发不同的客户端,成本较高。

- B/S 架构则是通过浏览器来访问服务器上的应用程序,
- 用户不需要安装额外的客户端软件,只需要有一个浏览器即可。Web 应用就是基于 B/S 架构的典型代表。B/S 架构的优点是部署和维护简单,只需要在服务器端进行更新和维护,用户可以在任何支持浏览器的设备上访问应用,具有很好的跨平台性。
- 例如,我们常用的在线购物网站、社交媒体平台等都是基于 B/S 架构的 Web 应用。但 B/S 架构在处理复杂的本地操作和高性能要求的任务时,可能会受到浏览器性能的限制。
2.WEB 介绍
- Web(World Wide Web,万维网)是一个基于超文本和 HTTP 协议的全球性信息系统。
- 由无数的网页组成,这些网页通过超链接相互连接,用户可以通过浏览器在这些网页之间进行浏览和交互。
- 当我们在浏览器中输入一个网址,比如
"select * from user where name = "...""
- 浏览器会按照一定的工作原理来获取并展示网页内容。
- 首先,浏览器会解析输入的网址,确定要访问的服务器的 IP 地址(如果输入的是域名,需要通过 DNS 解析将域名转换为 IP 地址)。
- 然后,浏览器会与服务器建立 TCP 连接,并发送 HTTP 请求。服务器接收到请求后,会根据请求的内容进行处理,比如查询数据库、读取文件等,然后将处理结果以 HTTP 响应的形式返回给浏览器。
- 最后,浏览器接收到响应后,会解析响应内容,将网页的 HTML、CSS 和 JavaScript 等元素进行渲染,展示给用户。
Servlets 是服务端的一种技术,它是运行在 Web 服务器上的 Java 程序,用于处理客户端的请求并生成响应。Web 应用程序就是由一系列的 Servlets、HTML 页面、CSS 样式表、JavaScript 脚本等组成的。Web 应用程序可以提供各种功能,比如用户注册登录、数据查询、文件上传下载等。
3.web 与 http 的关系
- HTTP (HyperText Transfer Protocol,超文本传输协议)是 Web 应用的基础协议,定义了客户端和服务器之间进行通信的规则
- HTTP 路径是用来标识 Web 资源的地址
例如
c
"http://localhost:8080/hellodemo/hello"
- 在这个路径中
- "
localhost
" 是服务器的域名,它通常指向本地计算机,在实际应用中,这里可以是一个真实的域名,比如 "www.baidu.com
"。 - "
8080
" 是端口号,HTTP 协议的默认端口是 80,但在实际应用中,服务器可能会使用其他端口来提供服务,比如 8080、8081 等。 - "hellodemo" 是 Web 应用程序的上下文路径,它用于区分不同的 Web 应用程序。
- "hello" 是具体的资源路径,它指向 Web 应用程序中的某个具体的资源,比如一个 Servlet 或一个 HTML 页面。
再举一些例子,比如
html
"http://www.baidu.com:80/index.html"
这里 "www.baidu.com"
是域名,"80
" 是默认端口,"index.html"
是资源路径;
html
"http://www.github.com:443/login",
"www.github.com"
是域名,"443" 是 HTTPS 协议默认端口(HTTPS 是 HTTP 的安全版本),"login" 是资源路径。在这些域名中,域名本身(如 "www.baidu.com
""www.github.com"
)是可变的,
它们对应着不同的服务器;而协议(如 "http""https")和默认端口(如 80 对于 HTTP,443 对于 HTTPS)在一般情况下是相对固定的,当然也可以根据服务器的配置进行修改
二、servlet服务端技术
1. 公共网关接口(CGI)
- 公共网关接口(Common Gateway Interface,CGI)是一种早期的服务端技术,它定义了 Web 服务器如何与外部应用程序进行通信。
- 当 Web 服务器接收到一个请求,并且该请求需要由外部应用程序处理时,服务器会启动一个新的进程来运行这个应用程序,并将请求的相关信息传递给它。
- 外部应用程序处理完请求后,将结果返回给 Web 服务器,服务器再将结果发送给客户端。
CGI 的优点是可以使用多种编程语言来开发,比如 C、Perl、Python 等,具有很强的灵活性。然而,CGI 也存在一些缺点,比如每个请求都会启动一个新的进程,这会消耗大量的系统资源,导致性能较低。而且,CGI 程序的开发和维护相对复杂,需要处理很多底层的细节。
2. servlet 是什么

- Servlet 是 Java 语言中用于开发 Web 应用程序的一种技术,它是运行在 Web 服务器上的 Java 类。Servlet 可以处理客户端的 HTTP 请求,并生成相应的 HTTP 响应。Servlet 是基于 Java EE(Java Enterprise Edition)平台的一部分,它提供了一种标准的方式来开发 Web 应用程序的服务端逻辑。
3.servlet 作用
Servlet 的主要作用是处理客户端的请求,并根据请求的内容进行相应的处理。例如,当用户在浏览器中提交一个表单时,Servlet 可以接收表单数据,进行验证和处理,然后将处理结果返回给用户。Servlet 还可以与数据库进行交互,查询或更新数据,将数据库中的数据以网页的形式展示给用户。此外,Servlet 还可以处理文件上传下载、生成动态网页等功能。
4. servlet 特性
- 平台无关性:由于 Servlet 是基于 Java 语言开发的,而 Java 具有 "一次编写,到处运行" 的特性,所以 Servlet 可以在不同的操作系统和 Web 服务器上运行,具有很好的平台无关性。
- 高效性:Servlet 运行在 Web 服务器的进程中,不需要像 CGI 那样为每个请求启动一个新的进程,因此可以大大提高性能。Servlet 还可以使用多线程来处理多个请求,进一步提高处理效率。
- 可扩展性:Servlet 可以通过编写过滤器(Filter)和监听器(Listener)来扩展其功能。过滤器可以在请求到达 Servlet 之前或响应离开 Servlet 之后对请求和响应进行处理,比如进行权限验证、数据加密等。监听器可以监听 Web 应用程序的生命周期事件,比如应用程序的启动和停止,以及会话的创建和销毁等。
- 安全性:Servlet 可以使用 Java 语言的安全机制,比如访问控制、加密等,来保证 Web 应用程序的安全性。
|--------------------|
| 非常感谢您的阅读,喜欢的话记得三连哦 |
