本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)》,章节分布参考视频教程,为同样学习JavaWeb系列课程的同学们提供参考。
01 学习路线

- 前端:基于
Vue脚手架 - 后端:基于
SpringBoot - 前后端分离开发,基于接口文档交互
- 需求分析 - 表结构设计 - 接口文档 - 功能实现 - 测试
02 学习目标
- 掌握数据库表的设计、操作
- 掌握主流的前后端分离开发模式
- 掌握
Web开发、接口开发 - 掌握文件存储、登录认证解决方案
03 什么是Web?
Web 又称万维网(www World Wide Web),即全球广域网,是能够通过浏览器访问的网站
① Web 网站工作流程

② Web 开发课程安排
前端:HTML、CSS、JavaScript、Vue、Element、Nginx
后端:Maven、SpringBoot Web、MySQL、SpringBoot Mybatis
③ Web 网页由文字、图片、音频、视频、超链接等组成,本质是前端代码,其通过浏览器核心(解析 + 渲染)转化成用户看到的页面
④ Web 标准由W3C(World Wide Web Consortium)制定,含三部分:
HTML:负责网页的内容
CSS:负责网页的设计
JavaScript:负责网页的交互
04 什么是HTML、CSS?
HTML(HyperText Markup Language):超文本标记语言
超文本:超越文本的限制
标记语言:标签构成的语言
CSS(Cascading Style Sheet):层叠样式表
注:HyperText / ˈhaɪpərtekst / 超文本、Cascading / kæˈskeɪdɪŋ / 层叠
05 HTML快速入门
- 新建
.html文本文件 - 编写
HTML结构标签 - 填写
<body>内容

<html>
<head>
<title>HTML快速入门</title>
</head>
<body>
<h1>Hello HTML</h1>
<img src="1.jpg"/>
</body>
</html>
注:html不关心大小写,不区分单引号双引号,语法结构松散
06 新浪新闻
① 标题排版
图片标签:<img>
src:指定图像的url(绝对磁盘路径 / 绝对网络路径 / 相对磁盘路径)width:指定图像的宽度 (px像素 / 相对于父元素的百分比)height:指定图像的高度 (px像素 / 相对于父元素的百分比)
标题标签:<h1> - <h6>,重要程度递减
水平线标签:<hr>
<!-- 文档类型为HTML -->
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 字符集为UTF-8 -->
<meta charset="UTF-8">
<!-- 浏览器兼容性 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
</head>
<body>
<!--
绝对路径:
绝对磁盘路径:E:\JAVA\0315\news_logo.png
绝对网络路径:https://i2.sinaimg.cn/dy/deco/2012/0613/yocc20120613img01/news_logo.png
相对路径:
./ :当前目录,可以省略 ./news_logo.png
../:上级目录,不能省略
-->
<img src="./news_logo.png"> 入口 > 正文
<h1>一二三四五六七八九十</h1>
<hr>
2023年03月02日 21:50 张三
<hr>
</body>
</html>
注:! + Enter 生成 HTML 框架,Ctrl + Shift + / 生成注释,img + Enter 生成图片框架,Ctrl + S 保存文件,右键 + Open In Default Browser 或者 Alt + B 在默认浏览器中打开,Ctrl + Y 删除注释。
default 默认的、browser / ˈbraʊzər / 浏览器
② 标题样式
Ⅰ CSS 引入方法
行内样式:
style属性
内嵌样式⭐:
style标签
外联样式:
link标签引入.css文件
Ⅱ 颜色表示

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
<!-- 内嵌样式 -->
<style>
h1{
/* color: brown; */
/* color: rgb(255, 0, 0); */
color: #4d4f53;
}
</style>
<!-- 外联样式 -->
<!-- <link rel="stylesheet" href="./CSS/news.css"> -->
</head>
<body>
<img src="./news_logo.png"> 入口 > 正文
<!-- 行内样式 -->
<!-- <h1 style="color: brown;">焦点访谈:中国底气 新思想夯实大国粮仓</h1> -->
<h1>一二三四五六七八九十</h1>
<hr>
2023年03月02日 21:50 张三
<hr>
</body>
</html>
Ⅲ CSS 选择器

优先级:id > 类 > 元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
<style>
h1{
color: #4d4f53;
}
/* 元素选择器 */
/* span{
color: #968d92;
} */
/* 类选择器
.cls{
color: #968d92;
} */
/* id选择器 */
#time{
color: #968d92;
font-size: 13px; /* 字体大小 */
}
</style>
</head>
<body>
<img src="./news_logo.png"> 入口 > 正文
<h1>一二三四五六七八九十</h1>
<hr>
<span id="time" class="cls">2023年03月02日 21:50</span> <span>张三</span>
<hr>
</body>
</html>
③ 超链接
超链接标签:<a herf="..." target="...">张三</a>
href:指定资源访问urltarget:指定资源链接打开位置,其中_self在当前页面打开,_blank在空白页面打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
<style>
h1{
color: #4d4f53;
}
#time{
color: #968d92;
font-size: 13px;
}
a{
color: black; /* 默认蓝色 -> 黑色 */
text-decoration: none; /* 标准文本 */
}
</style>
</head>
<body>
<img src="./news_logo.png"> <a href="https://gov.sina.com.cn/" target="_self">入口</a> > 正文
<h1>一二三四五六七八九十</h1>
<hr>
<span id="time" class="cls">2023年03月02日 21:50</span> <span><a href="https://news.cctv.com/2023/03/02/ARTIUCKFf9kE9eXgYE46ugx3230302.shtml" target="_blank">张三</a></span>
<hr>
</body>
</html>
④ 正文排版
视频标签:video
src:指定视频访问urlcontrols:指定播放控件width:宽度height:高度
音频标签:audio
src:指定音频访问urlcontrols:指定播放控件
段落标签:<p>
加粗标签:<b> / <strong>
注:indent / ɪnˈdent / 缩进、align / əˈlaɪn / 调整
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
<style>
h1 {
color: #4d4f53;
}
#time {
color: #968d92;
font-size: 13px;
}
a {
color: black;
text-decoration: none;
}
p {
text-indent: 35px; /* 首行缩进 */
line-height: 45px; /* 行间距 */
}
#editor {
text-align: right;
}
</style>
</head>
<body>
<img src="./news_logo.png"> <a href="https://gov.sina.com.cn/" target="_self">入口</a> > 正文
<h1>一二三四五六七八九十</h1>
<hr>
<span id="time" class="cls">2023年03月02日 21:50</span> <span><a href="https://news.cctv.com/2023/03/02/ARTIUCKFf9kE9eXgYE46ugx3230302.shtml" target="_blank">张三</a></span>
<hr>
<!-- 正文 -->
<!-- 视频 -->
<!-- <video src="xxx" controls width="900px"></video> -->
<!-- 音频 -->
<!-- <audio src="xxx" controls></audio> -->
<p>
<b>消息</b>
</p>
<p>
人勤春来早,春耕农事忙。
</p>
<img src="./123.png">
<p>
春眠不觉晓,处处闻啼鸟。
</p>
<p id="editor">
责任编辑:大树 SN242
</p>
</body>
</html>
⑤ 页面布局
盒子:页面中所有的元素,都可以看做是一个盒子,将页面中的元素包含在一个矩形区域内,包括内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin)
注:如果只需要设置某一个方位的边框、内边距、外边距,可以在属性名后加上位置,如:padding-top、padding-left、padding-right...

布局标签:<div> <span>
<div>一行只显示一个,宽度默认父元素,高度默认内容撑开,可改宽高
<span>一行可显示多个,宽高默认内容撑开,不改宽高
前端代码:

网页效果:


注:margin 外边距不算在盒子之内。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>一二三四五</title>
<style>
h1 {
color: #4d4f53;
}
#time {
color: #968d92;
font-size: 13px;
}
a {
color: black;
text-decoration: none;
}
p {
text-indent: 35px; /* 首行缩进 */
line-height: 45px; /* 行间距 */
}
#editor {
text-align: right;
}
#center {
width: 65%;
/* margin: 0% 17.5% 0% 17.5%; 外边距,上 右 下 左*/
margin: 0 auto;
}
</style>
</head>
<body>
<div id="center">
<img src="./news_logo.png"> <a href="https://gov.sina.com.cn/" target="_self">入口</a> > 正文
<h1>一二三四五六七八九十</h1>
<hr>
<span id="time" class="cls">2023年03月02日 21:50</span> <span><a href="https://news.cctv.com/2023/03/02/ARTIUCKFf9kE9eXgYE46ugx3230302.shtml" target="_blank">张三</a></span>
<hr>
<!-- 正文 -->
<!-- 视频 -->
<!-- <video src="xxx" controls width="900px"></video> -->
<!-- 音频 -->
<!-- <audio src="xxx" controls></audio> -->
<p>
<b>消息</b>
</p>
<p>
人勤春来早,春耕农事忙。
</p>
<img src="./123.png">
<p>
春眠不觉晓,处处闻啼鸟。
</p>
<p id="editor">
责任编辑:大树 SN242
</p>
</div>
</body>
</html>
07 表格、表单标签
① 表格标签
表格在网页中以行和列形式展示数据


② 表单标签
表单在网页中负责注册、登录等采集数据

Ⅰ 标签:<form>
属性
action:规定提交表单时向何处发送表单数据(url)method:规定发送表单数据方式(get、post)
<body>
<form action="" method="get">
用户名: <input type="text" name="username">
年龄: <input type="text" name="age">
<input type="submit" name="提交">
</form>
</body>
get 提交方式:当前页面,url拼接

post 提交方式:网络请求,消息体中传递

Ⅱ 表单项
<input>:定义表单项,通过type属性控制输入形式
<select>:定义下拉列表,通过<option>定义下拉列表项<textarea>:定义文本域
