A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马