JavaWeb之 Web概述

目录

  • 前言
  • 1.1 Web和 JavaWeb的概念
  • 1.2 JavaWeb技术栈
    • 1.2.1 B/S架构
    • 1.2.2 静态资源
    • 1.2.3 动态资源
    • 1.2.4 数据库
    • 1.2.5 HTTP协议
    • 1.2.6 Web服务器
  • 1.3 JavaWeb 学习内容

前言

博主将用 CSDN 记录 Java 后端开发学习之路上的经验,并将自己整理的编程经验和知识分享出来,希望能帮助到有需要的小伙伴。
博主也希望和一直在坚持努力学习的小伙伴们共勉!唯有努力钻研,多思考勤动手,方能在编程道路上行至所向。
由于博主技术知识有限,博文中难免会有出错的地方,还望各位大佬包涵并批评指正,博主会及时改正;如果本文对小伙伴你有帮助的话,求求给博主一个赞支持一下,可以一起交流,一起加油!!

本文是博主在学习B站尚硅谷、黑马程序员等机构的JavaWeb网课时整理的学习笔记,在这里感谢各个机构的优质网课,如果有兴趣的小伙伴也可以去看看。

1.1 Web和 JavaWeb的概念

Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。

在我们日常的生活中,经常会使用浏览器去访问百度、京东等网站,这些网站统称为Web网站。如下就是通过浏览器访问百度官网的界面:

image-20240229141531124

我们知道了什么是 Web,那么 JavaWeb又是什么呢?顾名思义, JavaWeb就是用 Java技术来解决相关Web互联网领域问题的技术栈。

等学习完 JavaWeb之后,同学们就可以使用 Java语言开发我们上述所说的网站。而国内很多大型网站公司也是首选 Java语言来解决 Web互联网相关的问题。那都有哪些公司的系统是使用 Java语言的呢?如下图:

在这里插入图片描述

使用 Java语言开发互联网系统是有很多技术栈需要大家了解,具体都有哪些呢?接着往下看。

1.2 JavaWeb技术栈

了解 JavaWeb技术栈之前,有一个很重要的概念要介绍:B/S架构

1.2.1 B/S架构

什么是 B/S架构?

B/S 架构Browser/Server,浏览器/服务器 架构模式。它的特点是,浏览器只需要使用浏览器,而应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,然后由服务器将 Web资源发送给浏览器即可。大家可以通过下面这张图来回想下我们平常的上网过程:

1627031933553

  • 打开浏览器访问百度首页,输入要搜索的内容,点击回车或百度一下,就可以获取和搜索相关的内容。
  • 思考下搜索的内容并不在我们自己的电脑上,那么这些内容从何而来?答案很明显,是从百度服务器中返回给我们的。
  • 日常百度的小细节,逢年过节百度的 logo会自动更换不同的图片。也就是说服务器的数据发生变化,浏览器不需做任务事情就能获取最新的数据。

所以说B/S架构的好处:易于维护升级,即服务器端升级后,浏览器无需任何部署就可以使用到新版本的服务器。

了解了什么是B/S架构后,作为后台开发工程师的我们将来主要关注的是服务器的开发和维护工作。在服务器将来会放很多资源,那都有哪些资源呢?接着往下看。

1.2.2 静态资源

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

  • 我们之前已经学过前端网页制作三剑客HTML+CSS+JavaScript),使用这些技术我们就可以制作出效果比较丰富的网页,用来展现给用户。但是由于做出来的这些网页内容都是静态的,这就会导致所有用户看到的网页内容都是一模一样的。
  • 在日常上网的过程中,我们除了可以看到这些好看的页面以外,还会碰到很多动态内容,比如我们常见的百度登录页面效果:

1627037814180

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

1.2.3 动态资源

动态资源主要包含 ServletJSP等,主要用来负责业务逻辑处理。(后面我们会仔细解释Servlet,大家此处不用急着去弄懂,把它当成一个可以处理业务的资源即可)

  • 动态资源处理完业务逻辑后会把得到的结果交给静态资源来进行展示,动态资源和静态资源要结合一起使用。
  • 动态资源虽然可以处理业务逻辑,但是当用户来登录百度的时候,就需要输入用户名和密码。这个时候我们就又需要解决的一个问题是:用户在注册的时候填入的用户名和密码都是数据,而这些数据将会存储在哪里呢?当我们需要的获取这些数据的时候又应该从哪里取呢?这时候便出现了数据库的概念。

1.2.4 数据库

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

整个网络的访问过程就如下图所示:

1627039320220

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

从上面的网络访问过程可以看出,在整个Web网络的访问过程中,会设计到很多技术,这些技术有已经学习过的,也有还未涉及到的内容,都有哪些还没有涉及到呢?接着往下看。

1.2.5 HTTP协议

HTTP协议:主要定义通信规则

浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,之前大家学习过TCP、UDP协议,这些都是规则,这里我们需要使用的是HTTP协议,这也是一种规则。

1.2.6 Web服务器

Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据。

  • 浏览器按照HTTP协议发送请求和数据,后台就需要一个Web服务器软件来根据HTTP协议解析和处理浏览器发送的请求和数据,然后把处理的结果再按照HTTP协议发送回给浏览器。
  • Web服务器软件有很多,我们课程中将学习的是目前最为常用的Tomcat服务器。以后就简称为Tomcat或者服务器

到这为止,关于 JavaWeb中用到的技术栈我们就介绍完了,这里面就只有HTTP协议、ServletJSP以及Tomcat这些知识是没有学习过的,所以整个Web核心主要就是来学习这些技术。

这些技术都该如何来使用,我们后面会一个个进行详细的讲解。接下来我们来学习下 HTTP、Tomcat 和 Servlet。

1.3 JavaWeb 学习内容

1627043194238

整个JavaWeb核心知识,我们总共有以下的学习内容,

  • 一:HTTP、Tomcat、Servlet
  • 二:ServletRequest(请求)、ServletResponse(响应)
  • 三:会话技术(Cookie、Session)
  • 四:Filter(过滤器)、Listener(监听器)
  • 五:Ajax、Vue、ElementUI
  • 六:综合案例

(1) ServletRequest是从浏览器向服务器发出的请求对象,

(2) ServletResponse是从服务器响应给浏览器的结果对象,

(3) 会话技术是用来存储浏览器和服务器交互所产生的数据,

(4) 过滤器是用来拦截浏览器的请求,

(5) 监听器是用来监听特定事件,

(6) Ajax、Vue、ElementUI 都属于前端技术

这些技术都该如何来使用,我们后面会一个个进行详细的讲解。下一篇博文我们来学习下 HTTP

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yolo目标检测实战

该博客主要介绍了: 1. 如何制作yolo目标检测数据集 2.如何在自己的数据集上训练yolo 3.训练好后的模型如何进行推理 1.数据标注 关于数据如何标注,请查看这篇博文 2.数据集目录结构 重点关注红框内部的结构 images: 图片目录 images/train: 训练集…

Zookeeper学习1:概述、安装、应用场景、集群配置

文章目录 概述安装LinuxWindows 配置参数集群参考配置文件配置步骤流程启动 概述 Zookeeper: 为分布式框架组件提供协调服务的中间件 【类似:文件系统通知机制】 负责存储上下层应用关系的数据以及接收观察者注册监听,一旦观察查关心的数据发…

npm与包

包 包的概念 Node.js中的第三方模块又叫做包。包的来源 由第三方个人或团队开发出来的,免费提供给所有人使用。为什么需要包 由于Node.js内置模块仅提供了一些底层的API,导致在基于内置模块进行项目开发时,效率很低。包是基于内置模块封装出…

在idea中用模板骨架初始创建maven管理的web项目时没有src有关的目录的解决方案

一.问题如下 二.解决方法 首先关闭当前项目,接着修改全局设置,重新创建项目 在VM Options中添加"-DarchetypeCataloginternal",点击ok保存 点击创建,如果创建成功没报错且有src,就ok了。 当然如果出现以下…

Avalonia学习(二十八)-OpenGL

Avalonia已经继承了opengl,详细的大家可以自己查阅。Avalonia里面启用opengl继承OpenGlControlBase类就可以了。有三个方法。分别是初始化、绘制、释放。 这里把官方源码的例子扒出来给大家看一下。源码在我以前发布的单组件里面。地址在前面的界面总结博文里面。 …

vue cesium加载点与定位到指定位置

vue cesium定位到指定位置 window.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(point.longDeg, point.latDeg, 6500000), orientation: {heading: 6.2079384332084935, roll: 0.00031509431759868534, pitch: -1.535}, duration: 3})vue cesium加载点 …

[技巧]Arcgis之图斑四至范围批量计算

ArcGIS图层(点、线、面三类图形)四至范围计算 例外一篇介绍:[技巧]Arcgis之图斑四至点批量计算 说明:如下图画出来的框(范围标记不是很准) ,图斑的x最大和x最小,y最大,…

css实现居中

基础代码&#xff1a; <div class"box"><div class"content"></div> </div> css实现居中的几种方式&#xff1a; 1、flex布局&#xff08;水平垂直&#xff09; .box {width: 200px;height: 200px;background-color: pink;disp…

如何利用Flutter来写后端 服务端应用

前言 Flutter是谷歌推出的一款跨平台开发框架&#xff0c;现在属于此领域star最多的框架&#xff0c;其被广泛应用于构建前台界面&#xff0c;但或许很少人知道&#xff0c;他也可以写后端应用。 本文主角 flutter非常著名的getx库推出的get server jonataslaw/get_server:…

管家婆云上管家新帐套建立步骤

第一步&#xff0c;客户服务管理&#xff1b; 第二步&#xff0c;添加帐套&#xff1b; 第三步&#xff0c;点击“管理”进入&#xff1b;第四步&#xff0c;添加帐套信息&#xff1b; 第五步&#xff0c;找到客户&#xff0c;查看帐套信息&#xff1b; 第六步&#xff0c;确认…

ShardingJdbc分库分表-浅谈分表原理

文章目录 为什么要分库分表一、分库分表二、不停机分库分表数据迁移 为什么要分库分表 一般的机器&#xff08;4核16G&#xff09;&#xff0c;单库的MySQL并发&#xff08;QPSTPS&#xff09;超过了2k&#xff0c;系统基本就完蛋了。最好是并发量控制在1k左右。这里就引出一个…

Springboot+vue的制造装备物联及生产管理ERP系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的制造装备物联及生产管理ERP系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的制造装备物联及生产管理ERP系统&#xff0c;采用M&#xff…