Java-servlet(一)Web应用与服务端技术概念知识讲解

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 应用程序的安全性。

|--------------------|
| 非常感谢您的阅读,喜欢的话记得三连哦 |

相关推荐
仟濹3 分钟前
【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·前端·爬虫·数据挖掘·数据分析·html
江沉晚呤时33 分钟前
SQL Server 事务详解:概念、特性、隔离级别与实践
java·数据库·oracle·c#·.netcore
泉飒39 分钟前
lua注意事项
开发语言·笔记·lua
小小小小宇1 小时前
前端WebWorker笔记总结
前端
hao_wujing1 小时前
使用逆强化学习对网络攻击者的行为偏好进行建模
开发语言·网络·php
还是鼠鼠1 小时前
单元测试-概述&入门
java·开发语言·后端·单元测试·log4j·maven
小小小小宇1 小时前
前端监控用户停留时长
前端
Li-Yongjun1 小时前
5G-A:开启通信与行业变革的新时代
运维·服务器·5g
小小小小宇1 小时前
前端性能监控笔记
前端
待什么青丝2 小时前
【Ubuntu】摸鱼技巧之虚拟机环境复制
linux·运维·ubuntu