您的位置:首页 > 编程语言 > Java开发

学习javaee的第五天

2016-07-12 00:00 267 查看
js的BOM和DOM

1、BOM 
1)BOM编程:浏览器对象模型编程。使用js代码控制浏览器。
原理:浏览器被封装不同对象,然后通过这些对象使用js代码控制浏览器
2)window对象:控制窗口
方法:
alert() / confirm() /prompt() /close()
setInterval()(执行多次) / clearInterval() / setTimeout()(执行1次)
open()
moveTo() / moveBy() / resizeBy() / resizeTo();
3)location对象:控制地址栏
属性:href
改变href,跳转页面
方法:reload() 刷新页面
4)history对象:控制浏览器的历史记录
方法:
back():
向后退1页
forword(): 前进1页
go(整数): 跳转n页。 正数:向前进n页面  负数:向后退n页
5)screen对象:控制屏幕
属性:
availWidth
availHeight
width
height

2、事件编程
js事件编程三要素:
事件源:事件发生的源头(html标签)
事件:鼠标,键盘,点击...
监听器:js函数

注册监听器的两种方式:
1)直接在标签内使用属性注册监听器
2)独立在script中注册监听器

事件的分类:
点击相关:onclick、ondblclick
页面相关:onload、onunload
鼠标相关:onmousedown onmouseup onmousemove  onmouseover onmouseout
焦点相关:onfoucs onblur
选项相关:onchang
表单相关:onsubmit

3、DOM编程
1)DOM编程:文档对象模型编程。使用js控制html或者css
原理:html页面被封装不同对象,通过这些对象使用js控制html页面
2)DOM对象:
document对象
element对象
attr对象
text对象
comment对象
3)DOM对象属性和常用方法:
得到:
document.getElementById()  元素
document.getElementsByName() 元素
document.getElementsByTagName() 元素

elment.parentNode
element.childNodes
element.firstChild
element.lastChild
element.nextSibling
element.previousSibling

element.getAttribute("name")
element.name  得到属性
element.innerHTML  得到文本

创建或者修改:
document.createElement();
element.setAttribute("name","value") 创建或者修改属性
element.name=属性值 修改属性
element.innerHTML=内容 修改文本内容
添加:
element.appendChild(element); 添加子节点
删除:
element.removeChild(element);  删除子节点

-------------------------------------------------------------------------------
js + xml : 使用js代码来读取xml文件
xml充当小型的数据库

-------------------------------------------------------------------------------

xml基础
一、xml概述
xml,extends markup language 可扩展标记语言。
html, 超文本标记语言
html目的,w3c设计的目的用来展示网页的结构(通用的,标准的)

html语言的问题:
1)html的标签不分大小写。<html></html>  <HTML></HTML>
2)html的标签可以不匹配。
html语法比较来说是松散的

xml的设计是拿来弥补html的缺陷,就是xml语法

xml语法比html语法更加严谨

xml的作用:
1)描述带关系的数据结构,所以可以作为软件的配置文件
2)存储数据,所以可以作为“小型的数据库”

=====================================================================
 html xml
名称:      超文本标记语言
 可扩展标记语言
标签的定义    w3c固定的标签    
  可以让开发者自己定义
作用 负责网页的结构(展示)
   1)软件的配置文件 ;2)充当小型的“数据库”

1)软件的配置文件
.properties文件    格式:key = value  没有相关的联系,不能描述数据的关系

.xml文件。格式:
<student>
<name>张三</name>
</student>
<student>
<name>李四</name>
</student>
xml可以描述包含与被包含的关系

1)作为软件的配置。例如。 struts,hibernate,spring的配置文件
2)小型的数据库。 例如。存储到mysql数据库,同样也可以从存储到xml文件

二、xml语法
作用:规定如何编写一个合法的xml文件

1)xml文档声明
第一行:<?xml version="1.0" encoding="utf-8" ?>

version:代表xml文件的版本  通常用1.0的版本
encoding:编码。解析器解析xml文件 的时候编码,默认的是utf-8

xml的编码问题:
1)保存xml文件的编码
2)文档声明的encoding
3)浏览器的设置编码

三个编码必须保持一致,这样才不会出现中文的乱码问题

2)注释
<!-- xml注释-->
3)标签,属性
命名规则:
1、区别大小写,例如 <p> <P>是两个不同的标签
2、不能以数字开头。
3、不能以xml(或者XML、或Xml等开头)。
4、中间和开头不能包含空格
5、名称中间不能包含冒号(:)

标签:
注意:在一个xml文件中,有且仅有一个根标签

属性:
1、可以有很多个属性,每个属性以name=“值”形式存在
2、属性值必须使用引号包含,要么是单引号,要么是双引号,不能单双引号混合使用
3、在同一个标签内不能出现两个同名的属性

4)转义字符

5)CDATA
CDATA可以同时对CDATA块的内容进行转义
<![CDATA[
<itcast>
<br />
</itcast>
]]>

6)处理指令

三、xml约束(DTD)
1、什么是良好的xml?
符合w3c制定xml语法
2、什么是有效的xml?
符合约束规则(例如一个学生出现多个性别标签,这不是有效的)

约束xml:
1、dtd约束:语法比较简单,功能不够丰富(数据类型比较单一)
例如:Struts2,hibernate的xml约束就是使用dtd
2、schema约束:为了替代dtd约束,语法相对强大,功能比较丰富(数据类型丰富,支持名称空间)
例如:spring,tomcat的xml和web.xml就是用schema

1)dtd的约束的导入方式:
1、内部导入
特点:
dtd内容和xml内容放在一个文件

2、外部导入
特点:
本地外部导入:dtd文件保存在本地文件系统中
<!DOCTYPE 根元素 SYSTEM "文件名" >

网络外部导入:dtd文件保存在互联网上
<!DOCTYPE 文档根节点 PUBLIC “DTD名称” “DTD文件 URL” >

2)dtd语法:
约束元素
<!ELEMENT 元素名称 类别>  或 <!ELEMENT 元素名称 (元素内容)>

类别:(粗略控制,不像schema)
EMPTY:空元素
PCDATA:普通字符串(包括空字符,不包括子元素)
ANY:任意内容(包含子元素)

元素内容

顺序问题:  (子元素1,子元素2,..) 一定从左到右按顺序出现,否则违反约束
数量问题:
子元素1:有且仅出现1次
子元素1+:至少出现1次
子元素1?:出现0或1次
子元素1*:出现0或多次

约束属性
<!ATTLIST 元素名称 属性名称 属性类型 默认值>

默认值: 控制属性是否必须
#REQUIRED 属性值是必须的
#IMPLIED 属性不是必须的
#FIXED value固定值的

属性类型:控制属性值的内容
CDATA:普通字符串
(值1|值2|值3):枚举,任选其一值
ID:唯一值

四、xml解析之DOM解析

1)用java代码去操作xml文件。

2)xml解析方式:
DOM解析:
xml DOM解析原理:xml文档被封装成不同的对象,通过这些对象操作xml文档
特点:一次性把整个xml文档读入内存,然后组建DOM树。占用较大的内存
不适合读大文件,容易内存溢出
面向对象的编程的编程方式

SAX解析:解析原理,读取一点,解析一点,占用内存非常小。比较适合读大文件,基于事件驱动的

3)DOM解析工具
jaxp:
jdom:
dom4j:

4)按照DOM原理使用jaxp解析xml文件

1、读取xml开发步骤:

1)创建DocumentBuilderFactory实例,用newInstance创建
2)通过DocumentBuilderFactory实例创建DocumentBuilder
3)通过DocumentBuilder的parse方法读取xml文件,返回一个Document对象

        常用的方法:
getElementsByTagName()  根据标签名查元素
getElementById()    根据id元素
getAttribute("name")  属性
getTextContent()   文本

NodeList: 
getLength()  获取节点的长度
item(index) :  根据下标找节点     
 
     b)修改xml开发步骤:

1)创建TransformerFactory实例
2)通过TransformerFactory实例得到Transformer
3)通过Transformer的transfer方法把Document写出xml文件

常用的方法:
createElement("name")  创建元素
        setAttribute("name","value");  创建或修改元素的属性

removeAttribute("name"): 删除属性
setTextContent("内容")  设置文本内容
removeChild(node)   删除节点(元素)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java ee