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://xiahunao.cn/news/2821983.html

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

相关文章

2024年腾讯云服务器优惠活动,3月份价格曝光可领代金券

腾讯云优惠活动2024新春采购节活动上线,云服务器价格已经出来了,云服务器61元一年起,配置和价格基本上和上个月没什么变化,但是新增了8888元代金券和会员续费优惠,腾讯云百科txybk.com整理腾讯云最新优惠活动云服务器配…

[VNCTF2024]-PWN:preinit解析(逆向花指令,绕过strcmp,函数修改,机器码)

查看保护: 查看ida: 这边其实看反汇编没啥大作用,需要自己动调。 但是前面的绕过strcmp还是要看一下的。 解题: 这里是用linux自带的产生随机数的文件urandom来产生一个随机密码,然后让我们输入密码,用st…

C++ //练习 10.6 编写程序,使用fill_n将一个序列中的int值都设置为0。

C Primer(第5版) 练习 10.6 练习 10.6 编写程序,使用fill_n将一个序列中的int值都设置为0。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************************************…

7.1.2 Selenium的用法1

目录 1. 初始化浏览器对象和访问页面 2. 查找节点及节点交互 2.1 查找单个节点 (1)获取方法1——特定方法 (2)通用方法 2.2 查找多个节点 2.3 节点交互 3. 动作链 4. 执行 JavaScript 之下拉进度条 5. 获取节点信息 5.…

集群分发脚本xsync

集群分发脚本xsync 一、简介二、环境准备三、添加到机器的 hosts 文件四、ping 命令测试五、SSH 配置5.1.本地先生成公钥和私钥5.2.将公钥拷贝到其他机器 六、xsync 脚本编写6.1.安装 rsync6.2.新建 xsync.sh6.3.xsync.sh脚本6.4.赋予脚本执行权限6.5.测试 endl 一、简介 配置…

java项目打包运行报异常:xxxxx-1.0-SNAPSHOT.jar中没有主清单属性

pom.xml中加入这段话即可 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.4.4</version><executions><execution><…

又挖到宝了!国人团队研发的AI视频工具PixVerse,这么好用居然还完全免费!(强烈推荐)

昨天发了一款国产免费的 AI 绘画工具 Dreamina 的介绍&#xff1a; 居然才发现&#xff01;字节跳动旗下国产AI绘画工具Dreamina&#xff0c;这么好用居然还免费&#xff01;&#xff08;强烈推荐&#xff09; 发现大家对国产 AI 工具还挺感兴趣的。今天继续帮大家挖国产的 A…

从入门到精通的Android进阶学习笔记整理,你有过迷茫吗

面试题 一般Android面试分为两部分&#xff1a;Java部分和Android部分&#xff0c;下面说一下自己面试过程遇到的一些具体题目和一些相关知识点。 一 JAVA相关 1&#xff09;JAVA基础 1.java基本数据类型有哪些&#xff0c;int&#xff0c; long占几个字节 2. 和 equals有什…

MySQL-MHA搭建、故障测试

一、架构说明 MHA&#xff08;Master High Availability&#xff09;是一个用于 MySQL 主从复制管理和自动故障转移的开源工具集。MHA 的主要目的是提供 MySQL 环境的高可用性和自动故障转移功能&#xff0c;确保在主库发生故障时能够快速切换到备库&#xff0c;降低业务中断时…

map和set例题应用

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 第一题 第二题 第三题 第一题 随机链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 思路 首先遍历旧链表&#xff0c;并创建新节点&#xff0c;同时用map将旧节点与新节点…

lv20 QT 常用控件 2

1 QT GUI 类继承简介 布局管理器 输出控件 输入控件 按钮 容器 2 按钮示例 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QCheckBox> #include <QLineEdit> #include <QPushButton>class Widget : public QWidget {Q_OBJECTpublic…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目&#xff0c;于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 这个可以分为两大步去写&#xff0c;首先要判断链表是否有环&#xff0c;然后如果有环就去找到环的入口&#xff0c;没有环返…

几种经典的支持数据库的表单设计器参考

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…

38女神节送礼攻略:送给女友的5款超值礼物推荐,避免雷区!

女神节&#xff0c;又称为国际妇女节&#xff0c;是一个向女性表达尊重和爱意的特殊日子。对于那些正在寻找送给女友的理想礼物的人来说&#xff0c;这一天无疑是一个重要的时刻。为了帮助你在这个特别的日子里给你的女友留下深刻的印象&#xff0c;我们精心挑选了5款超值且实用…

MacBook将iPad和iPhone备份到移动硬盘

#创作灵感# 一个是ICloud不够用&#xff0c;想备份到本地&#xff1b;然而本地存储不够用&#xff0c;增加容量巨贵&#xff0c;舍不得这个钱&#xff0c;所以就想着能不能备份到移动硬盘。刚好有个移动固态&#xff0c;所以就试了一下&#xff0c;还真可以。 #正文# 说一下逻…

JAVA的学习日记

JAVA的学习日记&#xff08;2024.3.1&#xff09;&#xff08;b站韩顺平老师课程学习笔记版&#xff09; ps:捡起忘光光的Java语言 Sublime //1. public是公有&#xff0c;class是类 //2. public class Hello表示Hello是一个类&#xff0c;是一个public公有的类 //3. Hello{…

【王道数据结构】【chapter8排序】【P371t5】

编写一个算法&#xff0c;在基于单链表表示的待排序关键字序列上进行简单选择排序 #include <iostream> #include <time.h> #include <stdlib.h> typedef struct node{int data;struct node *next; }node,*pnode;pnode buynode(int x) {pnode tmp(pnode) mal…

信号系统之快速傅里叶变换

1 使用复数DFT的实数DFT 本文的主题&#xff0c;如何使用 FFT 计算真正的 DFT&#xff1f; 由于 FFT 是一种用于计算复数 DFT 的算法&#xff0c;因此了解如何将实数 DFT 数据输入和输出复数 DFT 格式非常重要。图 12-1 比较了实数 DFT 和复数 DFT 存储数据的方式。实数 DFT …

LNMP架构介绍及配置--部署Discuz社区论坛与wordpress博客

一、LNMP架构定义 1、LNMP定义 LNMP&#xff08;Linux Nginx Mysql Php&#xff09;是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写&#xff1b;Linux系统下NginxMySQLPHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称&#xff0c;是目…

线性规划在多种问题形式下的应用

线性规划的用处非常的广泛,这主要是因为很多类型的问题是可以通过转化的方式转化为线性规划的问题。例如需要再图论中寻找起始点到给定的点的最短路径问题: 添加图片注释,不超过 140 字(可选) 假设要计算从节点0到节点4的最短路径,用变量d1到d4来表示节点0到节点1,2,3,…