当前位置: 首页 > news >正文

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

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

  • 前言
  • 一、Web 应用
    • 1.WEB CS BS 对比
    • 2.WEB 介绍
    • 3.web 与 http 的关系
  • 二、servlet服务端技术
    • 1. 公共网关接口(CGI)
    • 2. servlet 是什么
    • 3.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 资源的地址
    例如
“http://localhost:8080/hellodemo/hello”
  • 在这个路径中
  • localhost” 是服务器的域名,它通常指向本地计算机,在实际应用中,这里可以是一个真实的域名,比如 “www.baidu.com”。
  • 8080” 是端口号,HTTP 协议的默认端口是 80,但在实际应用中,服务器可能会使用其他端口来提供服务,比如 8080、8081 等。
  • “hellodemo” 是 Web 应用程序的上下文路径,它用于区分不同的 Web 应用程序。
  • “hello” 是具体的资源路径,它指向 Web 应用程序中的某个具体的资源,比如一个 Servlet 或一个 HTML 页面。

再举一些例子,比如

“http://www.baidu.com:80/index.html”

这里 “www.baidu.com” 是域名,“80” 是默认端口,“index.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 应用程序的安全性。

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

在这里插入图片描述

相关文章:

  • Linux top 常用参数记录
  • 扫描局域网可用端口
  • 【计算机网络入门】初学计算机网络(五)
  • 常见的 Spring 项目目录结构
  • MAC OS安装Python教程
  • C++编程指南21 - 线程detach后其注意变量的生命周期
  • JavaScript异步处理确保排序不乱的方案
  • 16981等腰三角形
  • Difyにboto3を変更したカスタムDockerイメージの構築手順
  • Java 8 新特性
  • 2024蓝桥杯省赛真题-封闭图形个数
  • 蓝桥杯备考:从记忆化搜索到动态规划
  • 深入解析 Spring WebFlux:原理与应用
  • 链表OJ(十二)23. 合并 K 个升序链表 困难 优先级队列中存放指针结点
  • 什么是预训练语言模型下游任务?
  • 16.3 LangChain Runnable 协议精要:构建高效大模型应用的核心基石
  • LeetCode 27 移除元素
  • Linux(centOS) 命令提示符格式修改(PS1)
  • 数据结构(初阶)(七)----树和二叉树(堆,堆排序)
  • linux基础知识
  • 菲律宾华人“钢铁大王”撕票案两主谋落网,部分赎金已被提取
  • 减负举措如何助力基层干部轻装上阵?记者一线调查
  • 严打金融黑灰产,今年来上海警方破获各类经济犯罪案件690余起
  • 3年多来俄乌要首次直接对话?能谈得拢吗?
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 复旦相辉堂上演原创历史人物剧《王淑贞》,胡歌参演