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

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

相关推荐
练习&两年半14 分钟前
C语言:51单片机 基础知识
开发语言·51单片机
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS酒店管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源
充满诗意的联盟1 小时前
DDD该怎么去落地实现(4)多对多关系
java·开发语言
wyz09231 小时前
python 之协程笔记
开发语言·笔记·python
MarvelousJ1 小时前
Ubuntu解决Genesis报错
linux·运维·ubuntu
快乐非自愿1 小时前
Java中使用FFmpeg拉取RTSP流
java·开发语言·ffmpeg
天天向上杰1 小时前
地基简识Spring MVC 组件
java·spring·mvc·springmvc
武昌库里写JAVA1 小时前
【Redis学习】Redis Docker安装,自定义config文件(包括RDB\AOF setup)以及与Spring Boot项目集成
java·开发语言·spring boot·学习·课程设计
XiaoLeisj1 小时前
【CSS—前端快速入门】CSS 常用样式
前端·css
是一只派大鑫2 小时前
从头开始学SpringMVC—02获取请求参数&向域对象共享数据
java·后端·springmvc