day20
web概念概述
JavaWeb:
* 使用Java语言开发基于互联网的项目
软件架构:
1. C/S: Client/Server 客户端/服务器端
* 在用户本地有一个客户端程序,在远程有一个服务器端程序
* 优点:
1. 用户体验好
* 缺点:
1. 开发、安装,部署,维护 麻烦
2. B/S: Browser/Server 浏览器/服务器端
* 只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
* 优点:
1. 开发、安装,部署,维护 简单
* 缺点:
1. 如果应用过大,用户的体验可能会受到影响
2. 对硬件要求过高
B/S架构详解
* 资源分类:
1. 静态资源:
* 使用静态网页开发技术发布的资源。
* 特点:
* 所有用户访问,得到的结果是一样的。
* 如:文本,图片,音频、视频,
HTML,CSS,JavaScript
* 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
2. 动态资源:
* 使用动态网页及时发布的资源。
* 特点:
* 所有用户访问,得到的结果可能不一样。
* 如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器
HTML
Hyper Text Markup Language 超文本标记语言
* 超文本:
* 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.
* 标记语言:
* 由标签构成的语言。<标签名称> 如 html,xml
* 标记语言不是编程语言
标签
文件标签
构成html最基本的标签
* html
* head
* title
* body
* <!DOCTYPE html>
文本标签
和文本有关的标签
* 注释:<!-- 注释内容 -->
* <h1> to <h6>
* <p>
* <br>
* <hr>
* 属性:
* color
* width
* size
* align
* center
* left
* right
* <b>
* <i>
* <font>
* <center>
* 属性:
* color
* size
* face
图片标签
img:展示图片
* 属性:
* src
* alt
列表标签
* 有序列表:
* ol:
* li:
*type
*start
* 无序列表:
* ul:
* li:
*type
disc
square
circle
链接标签
a:定义一个超链接
* 属性:
* href
* target
* _self
* _blank
块标签
* div
* span
语义化标签
html5中为了提高程序的可读性,提供了一些标签。
1. <header>
2. <footer>
表格标签
table
* width
* border
* cellpadding
* cellspacing
* bgcolor
* align
* tr
* bgcolor
* align
* td
* colspan
* rowspan
* th
* <caption>
* <thead>
* <tbody>
* <tfoot>
表单标签
form
* action
* method
* get:
1. 请求参数会在地址栏中显示。会封装到请求行中
2. 请求参数大小是有限制的。
3. 不太安全。
* post:
1. 请求参数不会再地址栏中显示。
2. 请求参数的大小没有限制。
3. 较为安全。
* 表单项中的数据要想被提交:必须指定其name属性
* input
* placeholder
* type属性:
* text
* password
* radio
* 注意:
1. 要想让多个单选框实现单选的效果,则多个单选框的name属性值必须一样。
2. 一般会给每一个单选框提供value属性,指定其被选中后提交的值
3. checked属性,可以指定默认值
* checkbox
* file
* hidden
* submit
* button
* reset
* image
* src
* select
* 子元素:option
* textarea
* cols
* rows
* button
day21
CSS
Cascading Style Sheets 层叠样式表
* 层叠:多个样式可以作用在同一个html的元素上,同时生效
好处:
1. 功能强大
2. 将内容展示和样式控制分离
CSS与html结合方式
1. 内联样式
* 在标签内使用style属性指定css代码
2. 内部样式
* 在head标签内,定义style标签,style标签的标签体内容就是css代码
3. 外部样式
1. 定义css资源文件。
2. 在head标签内,定义link标签,引入外部的资源文件
css语法
选择器 {
属性名1:属性值1;
属性名2:属性值2;
...
}
选择器:筛选具有相似特征的元素
1. 基础选择器
1. id选择器:选择具体的id属性值的元素.建议在一个html页面中id值唯一
* 语法:#id属性值{}
2. 元素选择器:选择具有相同标签名称的元素
* 语法: 标签名称{}
* 注意:id选择器优先级高于元素选择器
3. 类选择器:选择具有相同的class属性值的元素。
* 语法:.class属性值{}
* 注意:类选择器选择器优先级高于元素选择器
2. 扩展选择器:
1. 选择所有元素:
* 语法: *{}
2. 并集选择器:
* 选择器1,选择器2{}
3. 子选择器:筛选选择器1元素下的选择器2元素
* 语法: 选择器1 选择器2{}
4. 父选择器:筛选选择器2的父元素选择器1
* 语法: 选择器1 > 选择器2{}
5. 属性选择器:选择元素名称,属性名=属性值的元素
* 语法: 元素名称[属性名="属性值"]{}
6. 伪类选择器:选择一些元素具有的状态
* 语法: 元素:状态{}
属性
1. 字体、文本
* font-size
* color
* text-align
* line-height
2. 背景
* background
3. 边框
* border
4. 尺寸
* width
* height
5. 盒子模型:控制布局
* margin
* padding
* 默认情况下内边距会影响整个盒子的大小
* box-sizing: border-box; 设置盒子的属性,让width和height就是最终盒子的大小
* float
* left
* right
day22
JavaScript
一门客户端脚本语言
功能:
* 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
JavaScript = ECMAScript + (BOM+DOM)
ECMAScript
客户端脚本语言的标准
基本语法
1. 与html结合方式
1.行内式
* 在标签内使用javascript语句
2. 内部JS:
* 定义<script>,标签体内容就是js代码
3. 外部JS:
* 定义<script>,通过src属性引入外部的js文件
* 注意:
1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
2. <script>可以定义多个。
2. 注释
1. 单行注释://注释内容
2. 多行注释:/*注释内容*/
3. 数据类型:
1. 原始数据类型(基本数据类型):
1. number:数字。 整数/小数/NaN
2. string:字符串。
3. boolean: true和false
4. null:一个对象为空的占位符
5. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
2. 引用数据类型:对象
4. 变量
* 变量:一小块存储数据的内存空间
* Java语言是强类型语言,而JavaScript是弱类型语言。
* 语法:
* var 变量名 = 初始化值;
* typeof运算符:获取变量的类型。
* 注:null运算后得到的是object
5. 运算符
1. 一元运算符:只有一个运算数的运算符
++,-- , +(正号)
* ++ --: 自增(自减)
* ++(--) 在前,先自增(自减),再运算
* ++(--) 在后,先运算,再自增(自减)
* +(-):正负号
* 其他类型转number:
* string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
* boolean转number:true转为1,false转为0
2. 算数运算符
+ - * / % ...
3. 赋值运算符
= += -+....
4. 比较运算符
> < >= <= == ===(全等于)
* 比较方式
1. 类型相同:直接比较
2. 类型不同:先进行类型转换,再比较
* ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
5. 逻辑运算符
&& || !
* 其他类型转boolean:
1. number:0或NaN为假,其他为真
2. string:除了空字符串(""),其他都是true
3. null&undefined:都是false
4. 对象:所有对象都为true
6. 三元运算符
? : 表达式
6. 流程控制语句:
1. if...else...
2. switch:
* 在JS中,switch语句可以接受任意的原始数据类型
3. while
4. do...while
5. for
7. JS特殊语法:
1. 语句以;结尾,如果一行只有一条语句则 ;可以省略
2. 变量的定义使用var关键字,也可以不使用
* 用: 定义的变量是局部变量
* 不用:定义的变量是全局变量
基本对象
1. Function:函数(方法)对象
1. 创建:
1. var fun = new Function(形式参数列表,方法体);
2. function 方法名称(形式参数列表){}
3. var 方法名 = function(形式参数列表){}
2. 方法:
3. 属性:
length:代表形参的个数
4. 特点:
1. 方法定义是,形参的类型不用写,返回值类型也不写。
2. 方法是一个对象,如果定义名称相同的方法,会覆盖
3. 在JS中,方法的调用只与方法的名称有关,和参数列表无关
4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
5. 调用:方法名称(实际参数列表);
2. Array:数组对象
1. 创建:
1. var arr = new Array(元素列表);
2. var arr = new Array(默认长度);
3. var arr = [元素列表];
2. 方法
join(参数)
push()
3. 属性
length:数组的长度
4. 特点:
1. JS中,数组元素的类型可变的。
2. JS中,数组长度可变的。
3. Boolean
4. Date:日期对象
1. 创建:
var date = new Date();
2. 方法:
toLocaleString()
getTime()
5. Math:数学对象
1. 创建:
* 特点:Math对象不用创建,直接使用。 Math.方法名();
2. 方法:
random():返回 0 ~ 1 之间的随机数。 含0不含1
ceil(x)
floor(x)
round(x)
3. 属性:
PI
6. Number
7. String
8. RegExp:正则表达式对象
1. 正则表达式:定义字符串的组成规则。
1. 单个字符:[]
* 特殊符号代表特殊含义的单个字符:
\d:单个数字字符 [0-9]
\w:单个单词字符[a-zA-Z0-9_]
2. 量词符号:
?:表示出现0次或1次
*:表示出现0次或多次
+:出现1次或多次
{m,n}:表示 m<= 数量 <= n
* m如果缺省: {,n}:最多n次
* n如果缺省:{m,} 最少m次
3. 开始结束符号
* ^:开始
* $:结束
2. 正则对象:
1. 创建
1. var reg = new RegExp("正则表达式");
2. var reg = /正则表达式/;
2. 方法
test(参数)
9. Global
1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。 方法名();
2. 方法:
encodeURI()
decodeURI()
encodeURIComponent()
decodeURIComponent()
parseInt()
isNaN()
eval()
day23
BOM
Browser Object Model 浏览器对象模型
组成:
* Window
* Navigator
* Screen
* History
* Location
Window:窗口对象
1. 创建
2. 方法
1. 与弹出框有关的方法:
alert()
confirm()
prompt()
2. 与打开关闭有关的方法:
close()
open()
3. 与定时器有关的方式
setTimeout()
clearTimeout()
setInterval()
clearInterval()
3. 属性:
1. 获取其他BOM对象:
history
location
Navigator
Screen:
2. 获取DOM对象
document
4. 特点
* Window对象不需要创建可以直接使用 window使用。 window.方法名();
* window引用可以省略。 方法名();
Location:地址栏对象
1. 创建(获取):
1. window.location
2. location
2. 方法:
* reload()
3. 属性
* href
History:历史记录对象
1. 创建(获取):
1. window.history
2. history
2. 方法:
* back()
* forward()
* go(参数)
3. 属性:
* length
DOM
Document Object Model 文档对象模型
* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作
3 个不同的部分:
* 核心 DOM - 针对任何结构化文档的标准模型
* Document
* Element
* Attribute
* Text
* Comment
* Node:节点对象,其他5个的父对象
* XML DOM - 针对 XML 文档的标准模型
* HTML DOM - 针对 HTML 文档的标准模型
Document:文档对象
1. 创建(获取):在html dom模型中可以使用window对象来获取
1. window.document
2. document
2. 方法:
1. 获取Element对象:
1. getElementById()
2. getElementsByTagName()
3. getElementsByClassName()
4. getElementsByName()
2. 创建其他DOM对象:
createAttribute(name)
createComment()
createElement()
createTextNode()
Element:元素对象
1. 获取/创建:通过document来获取和创建
2. 方法:
1. removeAttribute()
2. setAttribute()
Node:节点对象,其他5个的父对象
* 特点:所有dom对象都可以被认为是一个节点
* 方法:
* appendChild()
* removeChild()
* replaceChild()
* 属性:
* parentNode 返回节点的父节点。
HTML DOM
1. 标签体的设置和获取:innerHTML
2. 使用html元素对象的属性
3. 控制元素样式
1. 使用元素的style属性来设置
2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值
事件监听机制
概念:某些组件被执行了某些操作后,触发某些代码的执行。
* 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
* 事件源:组件。如: 按钮 文本输入框...
* 监听器:代码。
* 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。
常见的事件:
1. 点击事件:
1. onclick
2. ondblclick
2. 焦点事件
1. onblur
2. onfocus
3. 加载事件:
1. onload
4. 鼠标事件:
1. onmousedown
2. onmouseup
3. onmousemove
4. onmouseover
5. onmouseout
5. 键盘事件:
1. onkeydown
2. onkeyup
3. onkeypress
6. 选择和改变
1. onchange
2. onselect
7. 表单事件:
1. onsubmit
2. onreset
|
|