JavaWeb技术栈概述

news2025/1/17 15:29:46

1.1 Web概述

Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
在我们日常的生活中,经常会使用浏览器去访问百度京东传智官网等这些网站,这些网站统称为Web网站。如下就是通过浏览器访问百度官网的界面:

在这里插入图片描述

1.2 JavaWeb技术栈

1.2.1 B/S架构

什么是B/S架构?
B/S架构:Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。大家可以通过下面这张图来回想下我们平常的上网过程:
在这里插入图片描述

  • 打开浏览器访问百度首页,输入要搜索的内容,点击回车或百度一下,就可以获取和搜索相关的内容
  • 思考下搜索的内容并不在我们自己的点上,那么这些内容从何而来?答案很明显是从百度服务器返回给我们的
  • 日常百度的小细节,逢年过节百度的logo会更换不同的图片,服务端发生变化,客户端不需做任务事情就能获取最新内容
  • 所以说B/S架构的好处:易于维护升级;服务器端升级后,客户端无需任何部署就可以使用到新的版本。
    了解了什么是B/S架构后,作为后台开发工程师的我们将来主要关注的是服务端的开发和维护工作。在服务端将来会放很多资源,都有哪些资源呢?

1.2.2 静态资源

  • 静态资源主要包含HTMLCSSJavaScript、图片等,主要负责页面的展示。

  • 前端网页制作三剑客HTML+CSS+JavaScript),使用这些技术我们就可以制作出效果比较丰富的网页,将来展现给用户。但是由于做出来的这些内容都是静态的,这就会导致所有的人看到的内容将是一模一样。

  • 在日常上网的过程中,我们除了看到这些好看的页面以外,还会碰到很多动态内容,比如我们常见的百度登录效果:
    在这里插入图片描述

    张三登录以后在网页的右上角看到的是 张三,而李四登录以后看到的则是李四。所以不同的用户访问相同的资源看到的内容大多数是不一样的,要想实现这样的效果,光靠静态资源是无法实现的。

1.2.3 动态资源

  • 动态资源主要包含ServletJSP等,主要用来负责逻辑处理。
  • 动态资源处理完逻辑后会把得到的结果交给静态资源来进行展示,动态资源和静态资源要结合一起使用。
  • 动态资源虽然可以处理逻辑,但是当用户来登录百度的时候,就需要输入用户名密码,这个时候我们就又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示(如下图所示),这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?
    在这里插入图片描述

1.2.4 数据库

  • 数据库主要负责存储数据。

  • 整个Web的访问过程就如下图所示:
    在这里插入图片描述

    (1)浏览器发送一个请求到服务端,去请求所需要的相关资源;
    (2)资源分为动态资源和静态资源,动态资源可以是使用Java代码按照ServletJSP的规范编写的内容;
    (3)在Java代码可以进行业务处理也可以从数据库中读取数据;
    (4)拿到数据后,把数据交给HTML页面进行展示,再结合CSSJavaScript使展示效果更好;
    (5)服务端将静态资源响应给浏览器;
    (6)浏览器将这些资源进行解析;
    (7)解析后将效果展示在浏览器,用户就可以看到最终的结果。

1.2.5 HTTP协议

  • HTTP协议:主要定义通信规则
  • 浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,TCPUDP这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。

1.2.6 Web服务器

  • Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据
  • 浏览器按照HTTP协议发送请求和数据,后台就需要一个Web服务器软件来根据HTTP协议解析请求和数据,然后把处理结果再按照HTTP协议发送给浏览器
  • Web服务器软件有很多,目前最为常用的Tomcat服务器

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

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

相关文章

实验三 第四章 MongoDB 副本集

一、实验目的: 了解MongoDB副本集 熟悉MongoDB副本集成员 掌握MongoDB副本集部署 掌握MongoDB副本集操作 理解副本集机制 二、实验环境: 一台win10系统的笔记本电脑 三、实验内容: 4.3部署副本集 4.3.1环境准备 创建的三台虚拟机配置如下&a…

python中的split()、rsplit()、splitlines()用法比较

1 split() 从左向右切割2 rsplit() 从右向左分割3 splitlines() 根据换行符切割4 rsplit()妙用split(分隔符,分割几次)从左向右寻找,分割元素并放入列表中,该分隔符丢弃; rsplit(分隔符,分割几次)从右向左寻找&#x…

算法的复杂性分析

算法的复杂性分析 文章目录算法的复杂性分析0、 算法评价的基本原则1、影响程序运行时间的因素2、算法复杂度2.1 算法的时间复杂度2.2 渐进表示法2.2.1 运行时间的上界2.2. 运行时间的下界2.2.3 运行时间的准确界3、总结4、参考0、 算法评价的基本原则 评价一个算法的好坏实际就…

第二证券|市场短期盘整 不改中期向好格局

12月初以来A股商场全体走势偏弱,上星期首要指数更是五连跌,上证指数重回3100点下方。关于商场近期的再度调整,本周组织观念显现,疫情带来的扰动或是首要原因。 不过,大都组织以为,心情面要素对商场的影响仅…

面试官:ui组件可以自动加载,那么业务组件可以吗?

大厂面试题分享 面试题库 前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 背景 笔者在最近在公司接手了一个老的对内使用的项目,接手后体验了下 发现首屏加载比较慢。分析了下大概的原因是main.js挂…

算法进阶:双指针(一)c++leetcode例题

82. 删除排序链表的重复元素 力扣传送: https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/description/ 给一个排好序的链表,删除把链表中出现的所有的重复的项: 1 2 2 3 3 3 4 5 -----> 1 4 5 这道题有很多种解法&a…

Unity3D——第一人称FPS生存游戏(resident zombies)

游戏源文件和游戏试玩程序:链接: 链接:https://pan.baidu.com/s/1Ln2tFizqEO_uEoQhuxvgrQ?pwdl6w0 提取码:l6w0 游戏思路前身搭建: 用一些正方体和胶囊做出来的基础场景, 人物设计:红色的胶囊体是敌人,手持枪械是…

一文说透BIO以及非阻塞IO

目录1. 一次I/O到底经历了什么2. 什么是Socket3. 阻塞I/O(Blocking I/O,BIO)3.1. 客户端的socket流程3.1.1. 何为socket?3.1.2. 何为连接?3.2. 服务端的socket流程3.2.1. 创建socket3.2.2. 绑定端口号3.2.3. listen()的…

项目实战之旅游网(六)认证与授权

一.编写相关页面 在本项目中,我们使用Spring Security 进行认证和授权,首先我们先编写相关页面。 1.编写登录页面admin_ login.html 2.编写登录失败页面admin_ fail.html 3.编写权限不足页面no_ permission.html 略过。知道其功能即可。 二.编写配置…

数字孪生城市可视化大屏设计,智慧楼宇开源项目

纵观城市发展历史,技术的革命必然会带动城市内部的变革。当前,以数字孪生为代表的前言信息技术飞速发展,必然会使社会对数字城市的深度和广度有着更为清晰的认知。加快构建数字孪生城市管理平台,通过三维可视化大屏直观展示&#…

图表控件LightningChart.NET 系列教程(六):许可证管理介绍(中)

LightningChart.NET SDK 是一款高性能数据可视化插件工具,由数据可视化软件组件和工具类组成,可支持基于 Windows 的用户界面框架(Windows Presentation Foundation)、Windows 通用应用平台(Universal Windows Platfor…

Apache ShardingSphere-Proxy <5.3.0 存在身份认证绕过漏洞

漏洞描述 Apache ShardingSphere 是一款分布式的数据库生态系统,ShardingSphere-Proxy 是支持 MySQL、PostgreSQL 和 openGauss 协议的数据库代理模块。 ShardingSphere-Proxy 5.3.0 之前的版本中在使用 MySQL 作为后端数据库时,在客户端认证失败后没有…

Linux进程状态与优先级

Ⅰ. OS进程状态的概念 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。 在三态模型中,进程状态分为 运行态,就绪态,阻塞态。 在五态模型中,进程状态分为 新建态、终止态,运行态&a…

服务雪崩预防Sentinel

服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了 问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等 待,进而导致服务瘫痪。 由于…

【HTML+CSS+JavaScript】实现鼠标点击烟花效果

文章目录【HTMLCSSJavaScript】实现鼠标点击烟花效果(爆炸型、心型、圆形)一. 效果图二. 鼠标点击烟花效果 - 心型实现代码(1) HTML部分代码(2) CSS部分代码(3) 内部的JavaScript部分代码三. 鼠标点击烟花效果 - 圆型实现代码(1) HTML部分代码(2) CSS部分…

【mysql】优化系列文章之一-索引

mysql优化系列 不是教程,不是官方文档,而是自己实战的点滴记录,不一定适合新手和系统学习者 第一章 mysql索引 文章目录mysql优化系列前言1、Mysql索引2、B Tree2.1.特点2.2. 结构分解2.3. 例题分析2.4. 验证索引2.5.索引插入耗时3. MySQL 中…

Oracle数据库同步复制工具Beedup产品功能(一)

1、全量复制 Beedup全量复制功能通过遍历比对主从库用户模式及其下包含的各类对象来保证主从库的相关对象一致性。 支持角色、用户、架构、登录用户、表 (列定义 主外键 索引)、视图存储过程、函数、触发器、类型、类型体、包、包体、序列、同义词、数据库链接等对象复制全量…

技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析

在之前的文章《技术干货:人大金仓KFS精准过滤和分片并行入库技术解析》中,KFS利用分片并行入库技术,解决了某金融POC数据同步项目中数据入库持续积压问题。经过优化后,在200并发的压测场景中,整体同步性能指标从压测30…

基于BP神经网络、RBF神经网络以及PSO优化的RBF神经网络进行数据的预测(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

IT30--IT之职能部门(3年之约已满)

IT作为一个职能部门,肯定跟业务不同,具体有哪些事情要做,我们一一道来。 年终规划的二三事 组织体系规划及梳理 预算编制 今天我们先来说说组织体系规划。 1 从愿景使命价值观到行动及思考方法 无论是企业还是部门,软文件建设肯…