单一架构-html-css-JavaScript
第一节 单一架构
我们从现在的JavaWeb阶段到后面学习SSM(Spring MVC Spring MyBatis)框架阶段都是在学习单一架构项目开发的技术。
而在JavaWeb阶段由于重点是探讨如何实现Web开发,所以必须学习一部分前端开发的技术。
1、单一架构技术体系
视图:用户的操作界面+数据的动态显示
- 前端技术:HTML/CSS/JavaScript/jQuery
- 服务器端页面模板技术:Thymeleaf
控制层:处理请求+跳转页面
- 服务器:Tomcat
- 控制器:Servlet(处理单个请求)
- jsp内置对象:page、request、session、application
- 过滤器:Filter(处理字符串乱码,权限)
- 监听器:Listener(会员\游客人数)
- 异步交互:Ajax(局部更新页面)
业务逻辑层:业务逻辑计算
持久化层:操作数据库
2、视图层
严格来说视图分成两层:
- 前端技术:HTML/CSS/JavaScript/jQuery/Vue
- 服务器端页面模板技术:Thymeleaf
其中HTML、CSS、JavaScript、jQuery都是工作在浏览器上的,所以它们都属于前端技术。
而Thymeleaf是在服务器上把动态内容计算出具体数据,所以严格来说Thymeleaf是后端技术。
这里大家会有个疑问:为什么在『视图』这个地方已经有HTML、CSS、JavaScript、jQuery这些前端技术了,能够生成用户可以操作的界面,那为什么还需要Thymeleaf这样一个后端技术呢?
简单来说原因是Thymeleaf=HTML+动态数据,而HTML不支持动态数据,这部分需要借助Thymeleaf来完成。
更进一步的细节咱们讲到那再说啦!
3、Web2.0
Web2.0是相对于更早的网页开发规范而提出的新规范。Web2.0规范之前的网页开发并没有明确的将HTML、CSS、JavaScript代码分开,而是互相之间纠缠在一起,导致代码维护困难,开发效率很低。
在开发中我们把这样彼此纠缠、互相影响的现象称为『耦合』。而把耦合在一起的东西拆解开,让他们彼此独立出来称为『解耦』。各个组成部分独立完成自己负责的功能,和其他模块无关称为『内聚』。
将来大家经常会听到一句话:软件开发提倡『 高内聚,低耦合』。
一个软件项目只有做到了高内聚、低耦合才能算得上结构严谨,模块化程度高,有利于开发和维护。
所以Web2.0规范主张将网页代码分成下面三个部分:
- 结构:由HTML实现,负责管理网页的内容。将来网页上不管是静态还是动态的数据都是填写到HTML的标签里。
- 表现:由CSS实现,负责管理网页内容的表现形式。比如:颜色、尺寸、位置、层级等等。也就是给数据穿上一身漂亮的衣服。
- 行为:由JavaScript实现,负责实现网页的动态交互效果。比如:轮播图、表单验证、鼠标滑过显示下拉菜单、鼠标滑过改变背景颜色等等。
第二节 html简单回顾
有序列表,无序列表,h,p,img,form表单
https://www.runoob.com/html/html-tutorial.html
超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。
您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。
在本教程中,您将学习如何使用 HTML 来创建站点。
HTML 很容易学习!相信您能很快学会它!
https://www.runoob.com/html/html5-intro.html
HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。
HTML5的设计目的是为了在移动设备上支持多媒体,HTML5 简单易学。
HTML5 <!DOCTYPE>
声明必须位于 HTML5 文档中的第一行,使用非常简单:
1 | <!DOCTYPE html> |
FLASH,即Adobe Flash Player,被HTML5取代了。
自2017年Adobe宣布在2020年末放弃对Flash的更新与维护以来,Flash被各大厂商“抛弃”的消息就越来越多。微软在2019年宣布计划从所有的浏览器中移除Flash,苹果也宣布将在2020年早些时候从自家浏览器中移除Flash。2020年12月31日之后,Adobe不再支持Flash Player,这意味着Flash Player已经正式退出历史舞台。
在被众多主流平台排除在外后,HTML5逐渐取代了Flash在网页动画、视频和交互效果方面的地位。HTML5不仅支持更丰富的多媒体内容,还具有更好的安全性和性能,成为现代网页设计的首选技术。因此,可以说FLASH被HTML5取代了。
第三节 CSS简单回顾
https://www.runoob.com/css/css-tutorial.html
CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。
通过使用 CSS 我们可以大大提升网页开发的工作效率!
在我们的 CSS 教程中,您会学到如何使用 CSS 同时控制多重网页的样式和布局。
CSS3 现在已被大部分现代浏览器支持,而下一版的 CSS4 仍在开发中。
https://www.runoob.com/css3/css3-tutorial.html
CSS 用于控制网页的样式和布局。
CSS3 是最新的 CSS 标准。
本教程向您讲解 CSS3 中的新特性。
第四节 JavaScript基本语法(重要)
1、JavaScript代码嵌入方式
①HTML文档内
- JavaScript代码要写在script标签内
- script标签可以写在文档内的任意位置
- 为了能够方便查询或操作HTML标签(元素)script标签可以写在body标签后面
1 |
|
②引入外部JavaScript文档
在script标签内通过src属性指定外部xxx.js文件的路径即可。但是要注意以下两点:
- 引用外部JavaScript文件的script标签里面不能写JavaScript代码
- 先引入,再使用
- script标签不能写成单标签
引入方式如下:
1 | <body> |
2、声明和使用变量
①JavaScript数据类型
基本数据类型
数值型:JavaScript不区分整数、小数
字符串:JavaScript不区分字符、字符串;单引号、双引号意思一样。
布尔型:true、false
在JavaScript中,其他类型和布尔类型的自动转换。
true:非零的数值,非空字符串,非空对象
false:零,空字符串,null,undefined
例如:”false”放在if判断中
1
2
3
4
5
6// "false"是一个非空字符串,直接放在if判断中会被当作『真』处理
if("false"){
alert("true");
}else{
alert("false");
}
引用类型
- 所有new出来的对象
- 用[]声明的数组
- 用{}声明的对象(json)
②变量
关键字:var
数据类型:JavaScript变量可以接收任意类型的数据
标识符:严格区分大小写
变量使用规则
如果使用了一个没有声明的变量,那么会在运行时报错
Uncaught ReferenceError: b is not defined
如果声明一个变量没有初始化,那么这个变量的值就是undefined
3、函数
①内置函数
内置函数:系统已经声明好了可以直接使用的函数。
[1]弹出警告框
1 | alert("警告框内容"); |
[2]弹出确认框
用户点击『确定』返回true,点击『取消』返回false
1 | var result = confirm("老板,你真的不加个钟吗?"); |
[3]在控制台打印日志
1 | console.log("日志内容"); |
②声明函数
写法1:
1 | function sum(a, b) { |
写法2:
1 | var total = function() { |
写法2可以这样解读:
声明一个函数,相当于创建了一个『函数对象』,将这个对象的『引用』赋值给变量total。
最后加的分号不是给函数声明加的,而是给整体的赋值语句加的分号。
③调用函数
JavaScript中函数本身就是一种对象,函数名就是这个『对象』的『引用』。而调用函数的格式是:函数引用()。
1 | function sum(a, b) { |
或:
1 | var total = function() { |
4、对象
JavaScript中没有『类』的概念,对于系统内置的对象可以直接创建使用。
①使用new关键字创建对象
1 | // 创建对象 |
②使用{}创建对象
1 | // 创建对象 |
③给对象设置函数属性
1 | // 创建对象 |
或:
1 | // 创建对象 |
④this关键字
this关键字只有两种情况:
- 在函数外面:this关键字指向window对象(代表当前浏览器窗口)
- 在函数里面:this关键字指向调用函数的对象
1 | // 直接打印this |
5、数组
①使用new关键字创建数组
1 | // 1.创建数组对象 |
②使用[]创建数组
1 | // 8.使用[]创建数组 |
6、JSON
①JSON格式的用途
在开发中凡是涉及到『跨平台数据传输』,JSON格式一定是首选。
②JSON格式的说明
- JSON数据两端要么是{},要么是[]
- {}定义JSON对象
- []定义JSON数组
- JSON对象的格式是:
1 | {key:value,key:value,...,key:value} |
- JOSN数组的格式是:
1 | [value,value,...,value] |
- key的类型固定是字符串
- value的类型可以是:
- 基本数据类型
- 引用类型:JSON对象或JSON数组
正因为JSON格式中value部分还可以继续使用JSON对象或JSON数组,所以JSON格式是可以『多层嵌套』的,所以JSON格式不论多么复杂的数据类型都可以表达。
只要是key必须使用双引号,值非数字都要添加双引号
1 | { |
③JSON对象和JSON字符串互转
[1]JSON对象转JSON字符串
1 | var jsonObj = {"stuName":"tom","stuAge":20}; |
[2]JSON字符串转JSON对象
1 | jsonObj = JSON.parse(jsonStr); |
小结
理解单一架构技术体系
掌握JavaScript的常用用法
