java学习第二十七天html&css、xml

时间:2022-11-18 23:04:57
eclipse与Myeclipse的区别
eclipse:没有插件,需要自己安装
Myeclipse:包含大量插件(收费)
首先要配置字体大小和编码格式
html概念:
HTML==>超文本标记语言
超文本:1、表达能力优于普通文本、声音、图像等
2、超链接
标记语言:标记构成的(html、XML XHTML)
html是干什么的?
1、网页
2、展示
html是由谁来解析的?
浏览器来负责解析html
html文档的后缀名
html
htm
以上两种后缀名没有区别
文档构成
html文档
最外层使用<html>标签包裹
<head> 头==>标题、网页属性信息,css
<body>体==>正文
标签的写法:
1、<>包裹一个英文单词
2、所有的标标签不区分大小写
3、标签分为两类:
1>围堵标记>有开始标签 有结束标签
2、自闭合标签=>例如<br>
注意:所有的标记语言,英文中的标签没有以数字开头的
排版标记:
注意:HTMl中不支持空格,回车,tab键(制表符),都会被解析成一个空格
标题标签h1-h6
字体标签<font>,必须配合属性使用
加粗标签:<strong><b>
size:大小,取值1-7
face:字体
color:1、直接填写英文名称2、#FF00003、rgb(255,0,0)
<strike>中划线
<big>变大
<small>变小
<u>下划线
<sup>上标<sub>下标
锚点跳转顶部:
<h1 id="top">顶部</h1>
name属性:表单提交时,键值对的键
value属性:1、对于需要提交的表单项:提交时的值
2、按钮类型的:按钮上显示的文字
readonly属性:1、制度属性,只是限制value属性值得变化
2、只能给text和password使用,textarea也有这个属性
disabled属性:
禁用:颜色变灰,不参与提交
适用范围,所有input都可以使用
checked属性:
默认被选中
只适用于:radio checkbox
maxlength定义最大长度
size属性:定义输入框的显示长度
以上两个属性只能放到text和password中
select标签:
name属性:提交的键
size属性:同时显示的选项的个数
multiple属性:变成多选
selected属性:让option默认被选中
textarea标签:
文本域
name属性:提交的键
col属性:列宽
row属性:行高
window对象==>代表一个HTML文档
BOM对象==>浏览器对象模型
属性:
页面导航的5个属性
self,parent,top,opener,frames
方法
弹出对话框 3个:alert confirm prompt
页面定时器:setInterval clearInterval setTimeout clearTimeout
窗口打开关闭:open close
History==>浏览器的历史记录==>前进 后退
属性:length
方法:forward前进 back后退 go前进/后退
Location==>浏览器地址栏==>舔砖刷新
属性:href==>改变当前页面位置
方法:reload==>刷新
DOM==>文档对象模型==>让JS和HTML,CSS结合,可以用JS来控制他们
原理:将页面中的所有内容,都封装成了对象
DOM中的五类对象:
Document 文档
Element 元素
Attribute 属性
Text 文本
Commons 注释
以上五类对象抽去了一个父类:
Node自身属性 nodeType nodeName nodeValue
导航属性:
父找儿:firstChild lastChild childNodes
儿找父:parentNode(重要)
找兄弟:NextSiblings previousSiblings
获取Element的方式(重点):
从DOM中获取element:
getElementById
getElementsByTagName
getElementsByClassName
getElementsByName
从Element中获得Element:
getElementsByClassName
getElementsByName
DOM中的事件
给Element对象添加一个function类型的属性,那么这个function的运行时机和属性的名称有关,例如:
属性名 触发时机
onClick 单击
onDbClick 双击
onLoad 当加载完毕
onBlur 当失去焦点时
onFocus 当得到焦点时
在事件中我们想要获得事件的详情,那么我们需要拿到Event对象
获得:
事件函数是由浏览器在对应时机调用的,浏览器在调用的时候,已经把Event传给我们了,对于我们来讲,接收下就可以了
属性:
keyCode:按键的编码
button:鼠标按键的编码
clientX/clientY:鼠标所在位置的X/Y轴
方法:
preventDefault:阻止默认行为。例如在点击submit按钮是,表单提交就是默认动作
StopPropagation:停止事件的传播。
DOM中常见的操作:
増:
创建元素:document.createElement
添加:element.appendChild()==>添加到末尾位置
element.insertBefore()==>指定添加位置
删:
removeAttribute 删除属性
removeChild 删除子节点
改:
replaceChild 改元素
setAttribute 改属性
查:
getAttribute 查属性值
getElementById
getElementsByTagName
getElementsByClassName
getElementsByName
DHTML技术:由微软提出,动态网页技术,整合了HTML、CSS、JS、DOM4个技术
可以理解为对DOM对象的增强,增加了一些新的属性和方法,让我们开发更加便捷
例如:
一个元素的class属性,我们想改变,我们使用setAttribute("class","类名")可以,但是DHTML 提供了更方便的操作,className属性

XML的功能:1、保存数据 2、配置文件

XML语法:
一、文档声明
<??> ==> 加上版本声明<?xml version="1.0"?> ==>加上编码格式 <?xml version="1.0" encoding="gbk" ?> ==> standalone的取值为yes或no 是否为独立的文档,一般解析器不支持 <?xml version="1.0" encoding="gbk" stanalone="yes"?>
<?xml version="1.0" encoding="utf-8"?>
属性与属性之间必须有空格,必须是英文空格
注意:1、空格使用英文空格
2、顶着1行1列书写
二、元素
注意:1、元素可以分为自闭合和有开始结束标签两部分两种(都要闭合)
2、可以合理嵌套不能交叉嵌套
3、元素中的内容不要为了美化,加 空格。回车,制表符 之类的符号
4、元素名称区分大小写,例如<p><P>不是同一个标签
5、元素的命名:开始字符不能是数字,元素名称中不能包含"",":",元素名称中不能出现关键字:xml
下面两种是不同的格式,所以不要为了美观加换行
<age>7</age>
<age>
7
</age>
三、属性
注意:
1、必须是键值对
2、值必须用单引号或双引号包裹
3、属性必须出现在开始标签中
4、属性的命名必须遵循与元素相同的规则
四。注释 <!--注释区域-->
注意:
注释不能嵌套
五、CDATA=>Character DATA
<code><![CDATA[<]]></code>
CADATA块中所写的数据不会被XML解析

六、处理指令

schema的引入:
1、书写根元素(因为xsd文件的引入UShi在根元素上进行的)
2、在根元素上书写schemaLocation属性,填入命名空间,和xsd文件位置(可以引入多个,每个之间用空格/回车 隔开)
3、为引入的xsd定义一个前缀.xmlns="http://www.itcast.cn/xml"
4、固定值 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xml

1、什么是解析xml?
系统最终会从xml中读取数据,读取的过程就是解析
CRUD ==>增删改查 ==>解析指的就是读
2、什么是解析器?
就是用来解析xml的类
过滤器、拦截器、监听器......都是具备功能的java类而已
3、两个常见的解析xml的思路
思想:
DOM:将文档中所有内容都封装成对象,读取时,将所有对象都加载到内存中,在内存中创建一颗dom树(记录对象间的关系)
优点:方便的进行增删改查
缺点:会非常消耗内存
sax:事件驱动的,与pull解析相似,把xml文档的读取过程划分出5类事件,我们只要提供遇到每类事件做什么的提示即可
缺点:不能进行增删改查的操作
优点:内存占用小
DOM:把所有内容封装成了5类对象
document
element
attribute
text
commons
共同的父类
node
node的属性:
自身的属性:
nodeType
nodeName
nodeValue
导航属性:
找子节点的:firstchild
找父节点的:parentNode
找兄弟节点:nextSibling  previousSibing
获得element的方式
getElementById  ==>Document
getElementsByTagName ==>Document/Element
getElementsByClassName ==>Document/Element
getElementsByName ==>Document
对于增删改的操作:
创建一个元素:document.createElement
添加一个元素:element.appendChild ,element.insertBefore
替换一个元素:element.replaceChild
删除一个元素:element.removeChild



JAXP:===>JDK提供 ===>java api for xml parser
思想在java中的体现是接口
我们要开发的话需要接口的实现类
由各大解析器厂商提供实现接口的类
A a =new API1();
A a =new API2();
上面的切换实现类的方式,需要改源代码,太过原始
A a=JAXP.getXXX();====>配置文件 ===>我们通过修改配置文件就可以实现切换实现类

//反射 泛型
-------------------------------------------------------------------------------
DOM4J ==>框架===>DOM for Java
-DOM4J整合两种思想(SAXDOM)思想
使用sax的思想做读取xml
又参照dom的思想,也在内存中创建爱女了一颗dom树,我们在学习的时候,参照之前我们学习的dom树即可
使用dom4j如何避免乱码?
要保证写入的编码和读取的编码一致
1、 写入的编码如何控制?
XMLWriter writer=new XMLWriter(new PrintWriter("src/students_copy.xml","utf-8"),format);
2、读取的编码如何控制
<?xml version="1.0" encoding="GBK"?>其中encoding决定了读取时采用什么样的编码,而encoding属性由format.setEncoding("GBK");控制
只要保证这两个编码一致,就不会产生乱码
XMLWriter writer=new XMLWriter(new FileOutputStream("src/students_copy.xml"),format);//使用字节流绝对不会出现乱码