HTML + HTTP请求 +CSS知识点

news/2024/5/1 5:14:58/文章来源:https://blog.csdn.net/qq_54773252/article/details/126924126

文章目录

  • HTML
    • 1.HTML元素
    • 2.HTML页面
    • 3.常见元素
      • 1)文本
      • 2)多媒体
      • 3)表单
        • 作用与语法
        • 常见表单项
        • 案例体验
    • 4.HTTP请求
      • 1)请求组成
      • 2) 请求方式与数据格式
        • get 请求示例
        • post 请求(默认格式)示例
        • json 请求(post请求json格式)示例
        • multipart 请求(post请求multipart格式)示例
      • 3) session 原理
      • 4) jwt 原理
    • 5. CSS
      • 1) 选择器
      • 2) 属性和值
      • 3) 布局


HTML

在Vscode安装idea插件——快捷键使用

1.HTML元素

HTML有各种标签(元素)构成!

  • 元素有起始和结束标签

  • 标签包围起来的称为内容

  • 元素有属性

  • id属性是元素的唯一标识

  • 元素之间可以嵌套

  • 不包含元素内容的成为空元素,如:

    <img src="1.png">
    <img src="1.png"/>
    

2.HTML页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello html</title>
</head>
<body>我是html
</body>
</html>
  • html 元素囊括了页面中所有其它元素,整个页面只需一个,称为根元素
  • head 元素包含的是那些不用于展现内容的元素,如 titlelinkmeta
  • body 元素包含了对用户展现内容的元素,例如后面会学到的用于展示文本、图片、视频、音频的各种元素

3.常见元素

1)文本

标题

    <h1>我是标题</h1><h2>我是标题</h2><h3>我是标题</h3><h4>我是标题</h4><h5>我是标题</h5><h6>我是标题</h6>

段落

<p>段落</p>

列表

无序列表

<ul><li>1</li><li>2</li><li>3</li>
</ul>

有序列表

<ol><li>1</li><li>2</li><li>3</li>
</ol>

多级列表

<ul><li>北京市<ul><li>海淀区</li><li>朝阳区</li><li>昌平区</li></ul></li><li>河北省<ul><li>石家庄</li><li>保定</li></ul></li>
</ul>

超链接

<a href="网页地址">超链接文本</a><a href="http://www.baidu.com">点我</a>

2)多媒体

图片

<img src="文件路径">

src 格式有 3 种

  • 文件地址

  • data URL,格式如下

    data:媒体类型;base64,数据
    
  • object URL,需要配合 javascript 使用

视频

<video src="文件路径"></video>

音频

<audio src="文件路径"></audio>

3)表单

注意:表单只能发post或者get请求

get:数据跟在URI后面

post:数据在请求体中

作用与语法

作用:表单用于收集用户填入的数据,并将这些数据提交给服务器

语法:

<form action="服务器地址" method="请求方式" enctype="数据格式"><!-- 表单项 -->// 提交表单数据 submit<input type="submit" value="提交按钮">
</form>
  • method有两种请求方式:

    • get(默认)提交时数据跟在URL地址后面
    • post提交时数据跟在请求体内
  • enctype:在post请求时,指定请求的数据格式

    • application/x-www-form-urlencoded(默认)
    • multipart/form-data(表单涉及文件时必须要用这个数据格式格式)
  • 其中表单项提供多种收集数据的方式

    • name属性的表单项数据,才会被发送给服务器(为此后端要有与之对应name属性的属性名·或者bean对象

常见表单项

文本框

<input type="text" name="uesrname">

密码框

<input type="password" name="password">

隐藏框

<input type="hidden" name="id">

日期框

<input type="date" name="birthday">

单选

<input type="radio" name="sex" value="" checked>
<input type="radio" name="sex" value="">

多选

<input type="checkbox" name="fav" value="唱歌">
<input type="checkbox" name="fav" value="逛街">
<input type="checkbox" name="fav" value="游戏">

文件上传

<input type="file" name="avatar">

案例体验

  • get请求前台发送from表单给后台(默认get请求)

前端根据action中服务器的具体路径(URL)定位到我们的boot项目的内置tomcat服务内对应端口程序,然后找到对应的controller

在这里插入图片描述

在这里插入图片描述

输出结果:

lwt 123456

  • 当使用post请求提交表单时,通常函数的参数里边传的是form表单中对应name属性的bean对象

实体类:

在前端日期控件输入的日期是String类型,String类型的日期无法转换成相应的Date日期格式,数据库的日期类型格式有date(年-月-日/yyyy-MM-dd)和datetime(年-月-日 时:分:秒/yyyy-MM-dd HH:mm:ss)

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String username;private String password;private int id;@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")private LocalDate birthday;private String sex;private List<String> fav;}
<form action="http://localhost:8888/test2" method="post">

遇到的坑(错误写法):

    @PostMapping("/test2")@ResponseBodypublic String getFormDatas3(@RequestBody User user){System.out.println(user);return "接收到数据!!";}

在这里插入图片描述

  • form表单中涉及文件时:必须method="post" enctype="multipart/form-data"

同理:

<form action="http://localhost:8888/test" method="post" enctype="multipart/form-data">
    @PostMapping("/test")public String getFormDatas2( User user, MultipartFile avatar){System.out.println(user);System.out.println(avatar.getOriginalFilename());return "接收到数据!!";}

在这里插入图片描述

4.HTTP请求

1)请求组成

请求由三部分组成:

  1. 请求行:只有一行,包含请求方式URI地址协议版本
  2. 请求头:可以有多行,格式:头名: 头值
  3. 请求体

2) 请求方式与数据格式

放请求前主机的IP和端口是我们预先要知道了的!!

get 请求示例

GET /test2?name=zhangsan&age=20 HTTP/1.1 // 请求行
Host: localhost // 请求头
GET /test2?name=%E5%BC%A0&age=20 HTTP/1.1 // 请求行
Host: localhost // 请求头
  • %E5%BC%A0 是【张】经过 URL 编码后的结果

post 请求(默认格式)示例

POST /test2 HTTP/1.1 // 请求行
Host: localhost // 请求头
Content-Type: application/x-www-form-urlencoded // 请求体格式(默认格式)
Content-Length: 21name=zhangsan&age=20 // 默认格式的请求体数据和get请求表示一样!
name=%E5%BC%A0&age=18// 汉字

application/x-www-form-urlencoed 格式细节:

  • 参数分成名字和值,中间用 = 分隔
  • 多个参数使用 & 进行分隔
  • 【张】等特殊字符需要用 encodeURIComponent() 编码为 【%E5%BC%A0】后才能发送

这种默认的方式对特殊字符必须进行编码处理,不然服务器不能识别

json 请求(post请求json格式)示例

POST /test3 HTTP/1.1
Host: localhost
Content-Type: application/json // 请求体数据类型为json
Content-Length: 25{"name":"zhang","age":18}

json 对象格式

{"属性名":属性值}

其中属性值可以是

  • 字符串 “”
  • 数字
  • true, false
  • null
  • 对象
  • 数组

json 数组格式

[元素1, 元素2, ...]

案例体验

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String username;private String password;
}

请求体的格式为json格式,这个时候User前就可以加@RequestBody了!!!!

    @PostMapping("/test3")@ResponseBodypublic String getFormDatas4(@RequestBody User user){System.out.println(user);return "接收到数据!!";}

在这里插入图片描述

multipart 请求(post请求multipart格式)示例

POST /test2 HTTP/1.1
Host: localhost
Content-Type: multipart/form-data; boundary=123
Content-Length: 125--123
Content-Disposition: form-data; name="name"lisi
--123
Content-Disposition: form-data; name="age"30
--123--
  • boundary=123 用来定义分隔符
  • 起始分隔符是 --分隔符
  • 结束分隔符是 --分隔符--

3) session 原理

Http 无状态,有会话

  • 无状态是指,请求之间相互独立,第一次请求的数据,第二次请求不能重用
  • 有会话是指,客户端和服务端都有相应的技术,可以暂存数据,让数据在请求间共享

由于http请求是无状态的,为了解决不能复用(下一次找不到)这一问题,服务端使用了 session 技术来暂存数据(存状态)

GET /s1?name=zhang HTTP/1.1
Host: localhost

取(取不到)

GET /s2 HTTP/1.1
Host: localhost

取(取得到)

GET /s2 HTTP/1.1
Host: localhost
Cookie: JSESSIONID=560FA845D02AE09B176E1BC5D9816A5D

session原理总结:

​ session在创建的时候(session对象key-value),会在应答里携带JSESSIONID的标识(服务器帮我们生成),下次请求的时候,客户端会将这个JSESSIONID随着请求一起发给服务器,那么服务器就可以根据这个标识定位到对应的session对象!

session技术的应用:session 技术实现身份验证

登录认证中,通常我们将用户名或者userId作为JSESSIONID的标识存入服务器!当用户访问受限资源时先经过登录拦截器,拦截器就去检查session中有没有这个userId,有的话说明通过前面的登录认证,反之得跳到登录页面进行登录验证!session 技术适用于单体项目

ClientLoginControllerLoginInterceptorSession登录请求检查用户名,密码,验证通过存入用户名登录成功其它请求获取用户名用户名存在,放行ClientLoginControllerLoginInterceptorSession

4) jwt 原理

jwt 技术实现身份验证

登录认证成功后会生成一个token令牌返回给客户端(与session的区别)客户端要把它记住,以后客户端的每一次请求都会携带token,那么登录拦截器就可以通过token去校验令牌,不用session也能实现,适用于分布式项目

ClientLoginControllerLoginInterceptor登录请求检查用户名,密码,验证通过登录成功,返回token其它请求,携带token校验token,校验无误,放行ClientLoginControllerLoginInterceptor

生成 token

GET /j1?name=zhang&pass=123 HTTP/1.1
Host: localhost

校验 token

GET /j2 HTTP/1.1
Host: localhost
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9._1-P_TLlzQPb1_lCyGwplMZaKQ8Mcw_plBbYPZ3OX28

5. CSS

即 Cascading Style Sheets,它描述了网页的表现与展示效果

1) 选择器

  • type (元素:标签名字)选择器 - 根据标签名进行匹配(元素选择器)

    标签名 { // 所以标签color: red;
    }p { // 所以p标签color: red;
    }
    
  • class 选择器 - 根据元素的 class 属性进行匹配

    .className {color: red;
    }
    
  • id 选择器 - 根据元素的 id 属性进行匹配

    #id {color: red;
    }
    

优先级:id 选择器 > class 选择器 > type 选择器

2) 属性和值

  • background-color : red;
  • display

3) 布局

与布局相关的 html 元素

  • div
  • template

参考链接:Java程序员用学前端么?java开发所需的前端技术全教程(HTML/CSS/js/vue2/vue3/react)_哔哩哔哩_bilibili

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

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

相关文章

Python必知必会 os 模块详解

文章目录Python os 模块os模块的常用操作os.path模块os.open()模块Python os 模块 os是“operating system”的缩写&#xff0c;os模块提供各种 Python 程序与操作系统进行交互的接口&#xff0c;使用os模块&#xff0c;一方面可以方便地与操作系统进行交互&#xff0c;另一方…

【SLAM】4李群李代数

文章目录4.1.基础群李代数的引出李代数李代数so(3)\mathfrak{so}(3)so(3)李代数se(3)\mathfrak{se}(3)se(3)4.2.指数与对数映射4.2.1.SO(3)SO(3)SO(3)指数映射4.2.2.SE(3)SE(3)SE(3)的指数映射4.3.李代数求导与扰动模型4.3.1.BCH公式&近似形式4.3.2.李代数求导4.3.4.扰动模…

redis下载与安装(Linux环境下)

用的是阿里云的深度os Linux系统 一&#xff0c;下载 键入命令&#xff1a; wget http://download.redis.io/releases/redis-6.2.1.tar.gz 检查时候有gcc环境 gcc --version 若有gcc环境会有类似于下图的提示 没有则执行&#xff1a; yum install gcc 下载完毕之后&…

JavaEE基础知识

文章目录前言计算机的基本组成CPUCPU运行程序的过程CPU的构造操作系统操作系统功能常见的操作系统操作系统的具体组成操作系统的进程管理(重点)操作系统安排程序进程PCB(进程管理块)进程调度关于进程的几个属性虚拟地址空间线程(thread [θred] )前言 之前已经学过很多的知识,…

企业薪资系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

PostgreSQL - 基于pg_basebackup实现主从流复制

PostgreSQL - 基于pg_basebackup实现主从流复制1 数据库节点2 安装PostgreSQL2.1 创建postgres用户2.2 安装PostgreSQL3 配置主节点4 配置从节点5 验证主从同步1 数据库节点 节点ip节点角色192.168.163.133主节点192.168.163.134从节点 2 安装PostgreSQL 2.1 创建postgres用户…

计算机网络——数据链路层(滑动窗口协议: 选择重传)(点对点协议 PPP)

目录 滑动窗口协议: 选择重传 选择重传协议 选择重传协议 点对点协议 PPP PPP 的主要特点 PPP 协议有三个组成部分 PPP 协议的帧格式 PPP 有一个 2 个字节的协议字段 透明传输问题 PPP 的字符填充 PPP 的工作状态 滑动窗口协议: 选择重传 选择重传协议 GBN相对简单&a…

【周末闲谈】谈谈数学转码这一年来的体会与反思

——我们走了太远&#xff0c;以至于忘了为何出发 前言 笔者本科读的是数学专业&#xff0c;就是每天和数学分析、高等代数、概率论、随机过程等等这些理论打交道的专业&#xff0c;这个专业出来工作好像一般有两个方向就是金融和计算机&#xff0c;我选择了计算机方向。主要…

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题

文章目录1、Web&#xff1a;nisc_easyweb2、Web&#xff1a;nisc_学校门户网站3、Web&#xff1a;吃豆人吃豆魂4、MISC&#xff1a;好怪哦5、RE&#xff1a;ManyCheck1、Web&#xff1a;nisc_easyweb 题目描述&#xff1a; 打开网站&#xff0c;是一个php的初始页面。 思路…

springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

技术架构 SprongBootMysql微信小程序 简介 本点餐小程序是使用Java/JavaScript编程语言开发的&#xff0c;存储数据方面则用到了MySQL数据库。顾客可以使用小程序扫码功能扫描餐厅桌角的二维码就座&#xff0c;也可以点击排号等位由后台工作人员安排就座&#xff1b;通过首页…

通关GO语言10 Context:你必须掌握的多线程并发控制神器

在上一节课中我留了一个作业&#xff0c;也就是让你自己练习使用 sync.Map&#xff0c;相信你已经做出来了。现在我为你讲解 sync.Map 的方法。 Store&#xff1a;存储一对 key-value 值。 Load&#xff1a;根据 key 获取对应的 value 值&#xff0c;并且可以判断 key 是否存在…

GO面试题集锦

GO面试题集锦 目录GO面试题集锦slice 扩容机制slice 为什么不是线程安全的map 底层原理map 扩容机制map 遍历为什么无序map 为什么不是线程安全的Map 如何查找Map 冲突解决方式Map 负载因子为什么是 6.5Map 和 Sync.Map 哪个性能好Channel 底层实现原理Channel 有什么特点Chann…

docker实战教程(七):镜像的分层概念

联合文件系统(UnionFS) 联合文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像…

Zookeeper简介

文章目录Zookeeper简介zookeeper能做什么zookeeper的数据模型zookeeper工作机制zookeeper集群的选举机制1、第一次启动选举机制2、非第一次启动选举机制搭建zookeeper的集群Zookeeper简介 zookeeper能做什么 master节点选举&#xff1a;主节点挂了以后&#xff0c;从节点就会…

基于 ANFIS 的非线性回归(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f468;‍&#x1f393;博主课外兴趣&#xff1a;中西方哲学&#xff0c;送予读者&#xff1a; &#x1f468;‍&a…

字符串函数以及内存函数的模拟实现(超详细,全面理解字符串函数!!!)

目录 一、strlen 1.参数指向的字符串必须要以 \0 结束。 2.注意strlen函数的返回值为size_t&#xff0c;是无符号的 3.模拟实现strlen 二、strcpy 1.源字符串中的 \0 拷贝到目标空间 2.源字符串必须以 \0 结束 3.目标空间必须足够大&#xff0c;以确保能存放源字符串 4…

@Conditional

条件装配:满足Conditional指定的条件,则进行组件注入 @Configuration//告诉springboot这是一个配置类 public class MyConfig {@Bean("tom")public Stu stu01(){return new Stu("汤姆");}@ConditionalOnBean(name="tom")//当容器中有tom组件时…

windows工具:推荐一款可以截长图(滚动截图)的工具FSCapture

windows工具&#xff1a;推荐一款可以截长图&#xff08;滚动截图&#xff09;的工具前言一、FSCapture是什么&#xff1f;二、使用方法1.下载地址和安装2.使用方法前言 有的时候你画的框架图太大&#xff0c;已经超过了一屏&#xff0c;想要导出图片&#xff0c;用普通窗口截…

汇编常用寄存器以及寻址方式

寄存器概览 常用寄存器 AX accumulator 累加寄存器 BX base 基址寄存器 CX count 计数寄存器 DX data 数据寄存器 SP stack pointer 堆栈寄存器 BP base pointer 基址指针寄存器 SI source index 源变址寄存器 DI destination index 目的变址寄存器 IP instruction pointer 指…

ch4 报错修正 Sophus使用

ch4 报错& 修正 &#xff08;1&#xff09; # 添加Eigen头文件 include_directories( "/usr/include/eigen3" )&#xff08;2&#xff09; #include "sophus/so3.hpp" #include "sophus/se3.hpp"&#xff08;3&#xff09; 大量报错但都…