xml及javaweb基础Word文档格式.docx
- 文档编号:22177385
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:48
- 大小:41.95KB
xml及javaweb基础Word文档格式.docx
《xml及javaweb基础Word文档格式.docx》由会员分享,可在线阅读,更多相关《xml及javaweb基础Word文档格式.docx(48页珍藏版)》请在冰豆网上搜索。
第一章eclipse使用和基础知识
第一节eclipse的使用
1、Badversionnumberin.classfile错误的版本号
编译的环境过高,而运行环境却过低,解决方案就是将编译环境和运行环境变为一致。
注意:
若是运行环境比编译环境过高是不会出现此问题的。
改变编译环境的方法:
右击工程名-->
选择“Properties”-->
选择“javaCompiler”-->
点击ConfigureWorkspaceSettings...-->
弹出Preferences(Filtered)对话框,选择编译器版本
改变运行环境的方法:
选择“JavaBuildPath”-->
选择Libraries-->
Remove运行环境,AddLibrary添加新的版本的运行环境
2、DebugAs
首先是设置断点
F5(stepinto)跳入F6(stepover)跳下一行F7(stepreturn)跳回
droptofram:
跳到当前方法的第一行resume:
跳到下一个断点,如果没有下一个断点,则程序会执行结束。
watch:
观察变量或者表达式的值
断点注意的问题:
1、断点调试完成后,要在breakpoint视图中清除所有断点。
2、断点调试完成后,一定要记得结束运行断点的jvm。
3、eclipise快键键的使用
windows-->
Preferences输入key可以在里面配置快键键
Alt+/内容提示Ctrl+1快速修复ctrl+shift+o导包
ctrl+shift+f快速排版Alt+方向键向前向后ctrl+shift+/添加注释
ctrl+shift+\去除注释F2查看方法说明重置透视图windows下的菜单
ctrl+shift+xctrl+shift+y大小写ctrl+alt+向下键(有些不能用)复制行
ctrl+T查看类的继承关系Alt+向上,向下ctrl+shift+t查看源代码
ctrl+shift+l查看所有快键键
4、junit测试框架
假设有这么一个类:
classPerson{
publicvoideat(){
System.out.println("
eat"
);
}
publicvoidrun(){
run"
publicintxx(){
return2;
}
要是测试上面的类,一般的做法就是使用main()方法,这样做着实太费事,此时我们可以新建一个测试类。
classDemo{
privatePersonperson=null;
@beforeClass
publicstaticvoidbeforeclass(){
会在类加载时运行,且在测试内只运行一次"
@befor
publicvoidbefore(){
person=newPerson();
@Test
publicvoidrunTest(){
p.run();
publicvoidxxText(){
Assert.assertEquals("
1"
p.xx())
建立测试类,在方法前加入@Test,在右边视图中选择方法,右击runas——>
JunitTest;
要是测试所有的方法,就点击测试类,右击runas——>
JunitTest。
@before----方法会在每个测试方法运行时执行一次,一般用于初始化资源
@after----方法会在每个测试方法结束后执行一次,一般用于释放资源
@beforeClass----方法是静态的,类加载的时候运行,只运行一次
@afterClass----方法是静态的,类释放的时侯运行,只运行一次
Assert断言
|--Assert.assertEquals("
p.run())在执行p.run()下的方法时,期望方法的返回值是1,若返回值不为1,则测试不通过。
|--Assert.assertArrayEquals(newint[]{1,1},newint[]{1,2})测试不通过,因为期望返回的值int[]{1,1}和实际返回的值int[]{1,2}不同。
|--断言下还有很多其他的功能,这里不再一一介绍。
第二节JDK5.0新特性
JDK5.0新增了很多新的java特性,利用这些新语法可以帮助开发人员编写更加高效,清晰,安全的代码。
一、静态导入
静态导入用于简化程序对类静态属性和方法的调用
语法为:
importstatic包名.类名.静态属性|静态方法
例如:
importstaticjava.lang.System.out
二、自动装箱/拆箱
自动装箱:
指开发人员可以把一个基本数据类型直接赋值给对应的包装类。
自动拆箱:
指开发人员可以把一个包装类对象直接赋值给对应的基本数据类型。
典型应用:
Listlist=newArrayList();
list.add
(1);
intj=(Integer)list.get(0);
三、增强for循环
引入增强for循环的原因:
在JDK5以前的版本中,遍历数组或者集合中的元素,需要先获得数组的长度或者集合的迭代器比较麻烦。
JDK5中定义了一种新的语法:
增强for循环,以简化此类操作。
增强for循环只能用在数组或者实现iterable接口的集合类上。
其语法格式为:
for(变量类型变量:
需要迭代的数组或者集合){}
Mapmap=newHashMap();
//传统方式1//传统方式2
Setset=map.keySet();
Setset=map.entrySet();
Iteratorit=set.iterator();
Iteratorit=set.iterator();
while(it.hasNext()){while(it.hasNext()){
Stringkey=(String)it.next();
Map.Entryentry=(Entry)it.next();
Stringvalue=(String)map.get(key);
Stringkey=(String)entry.getKey();
}Stringvalue=(String)entry.getValue(value)
//增强for循环1
for(Objectobj:
map.keySet()){
Stringkey=(String)obj;
//增强for循环2
map.entrySet()){
Map.Entryentry=(Entry)obj;
Stringvalue=(String)entry.getValue();
使用增强for循环需要注意的问题:
增强for循环只适合取数据;
要修改数组或者集合中的数据,要用传统方式。
四、可变参数
从JDK5开始,java允许为方法定义长度可变的参数,语法:
publicvoidfoo(int...args){}
注意事项:
1、调用可变参数的方法是,编译器将自动创建一个数组保存传递给方法的可变参数,因此,程序员可以再方法体中以数组的形式访问可变参数。
2、可变参数只能处于参数列表的最后,一个方法最多只能有一个长度可变的参数。
五、枚举
1、一些程序在运行时,它需要的数据不能是任意的,而必须是一定范围的值,JDK5以前采用自定义类来解决,JDK5以后可以直接采用枚举解决。
枚举出现之前,得这样写代码
classGrade{
privateGrade(){}
privatestaticfinnalGradeA=newGrade();
privatestaticfinnalGradeB=newGrade();
privatestaticfinnalGradeC=newGrade();
枚举出现以后,就可以这样写了:
enumGrade{
A,B,C;
2、一个枚举也可以有构造函数、字段和方法。
下面的代码是定义枚举的构造函数、方法和字段,去封装更多的信息
enmuGrade{
A("
100-90"
),B("
89-80"
),C("
79-70"
//封装每个对象对应的分数
privateStringvalue;
privateGrade(Stringvalue){this.value=value;
publicStringgetValue(){returnthis.value}
3、带抽象方法的枚举
){
publicabstractStringchinaValue(){return"
优"
;
},
B("
良"
C("
中"
};
publicabstractStringchinaValue();
//抽象方法,因为有抽象方法,所以新建对象的时候得复写其抽象方法。
4、枚举的常用方法和其它细节
a、枚举类也是一种特殊形式的java类
b、枚举类中声明的每一个枚举值代表枚举类的一个实例对象
c、与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数。
但是枚举类的构造函数必须是私有的(这点不难理解)
d、枚举类也可以实现接口
e、JDK5中还扩展了swith语句,它除了可以接受int,byte,char,short外,还可以接受一个枚举类型的对象
f、若枚举类只用一个枚举值,则可以当做单例设计模式使用。
g、java中声明的枚举类。
均是java.lang.Enmu类的孩子,他继承了Enum类的所有方法,常用方法:
name()返回枚举的名称;
ordinal()返回枚举常量的序数;
序号从0开始。
valueof(ClassenumClass,Stringname)返回带指定名称的枚举类型的枚举常量;
其实可以通俗的认为将字符串转变为枚举,一般可以用来检测该字符串是否为合法的枚举值。
values()此方法虽然在JDK文档中查不到,但是每个枚举类都具有该方法,它用于遍历枚举的所有枚举值。
例如:
Grade[]g=Gread.values();
六、反射(一般是做框架用的)
一个类有多个组成部分,例如:
成员变量,方法,构造函数等。
反射就是加载类,并剖析出类的各个组成部分。
1、加载类
java中有一个Class类用于代表某一个类的字节码。
Class类即然代表某个类的字节码,他当然就要提供加载某个字节码的方法:
forName()。
forName()方法用于加载某个类的字节码在内存中,并使用class对象进行封装。
获得class对象总共有三种方式:
类名.class;
对象.getClass();
Class.forName("
"
2、Class对象提供了如下常用方法:
getConstructor()getMethod()getMethods()getField()
getDeclaredConstructor()getDeclaredMethod()getDeclaredField()
这些方法分别用于从类中解剖出构造函数、方法和成员变量。
七、内省(Instrospector)
1、为什么要学内省?
开发框架中,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术来完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。
2、内省访问javaBean属性的两种方式
a、通过PropertyDescriptor类操作Bean的属性
b、通过Instrospector类获得Bean对象的BeanInfo,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的get/set方法,然后通过反射机制来调用这些方法。
3、代码示例
一个javaBean
ClassPerson{
privatestringname;
privateStringpassword;
privatrintage;
一些get和set方法...
publicvoidsetAA(){}
}//注意:
这个javaBean有哪些属性是通过有多少个get或者set来确定的,上面的这个javaBean中有五个属性,除了三个及其AA外,还有一个是从Object中继承的class属性(因为有getClass()方法)。
第二章xml语言
第一节xml语言和作用
一、概述
xml(extensiblemarkuplanguage)可扩展标记语言。
出现的根本目标是为了描述现实生活中有关系的数据,例如国家--省份--城市这样的关系。
它允许用户自定义标签。
一个标签用于描述一段数据,一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其他标签描述其他数据,以此来实现数据关系的描述。
xml技术除了用于保存有关系的数据之外,还经常用作于软件配置文件,以描述程序模块之间的关系。
在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定。
写好的配置文件可以在浏览其中打开以检查其正确性。
二、xml语法
一个xml文件分分为如下几个部分
1、文档声明
在编写XML文档时,需要先使用文档声明,声明XML文档的类型。
最简单的声明语句为:
<
?
xmlversion="
1.0"
?
>
用encoding属性说明文档的字符编码,用standalone属性说明文档是否独立
encoding="
UTF-8"
standalone="
yes"
备注:
上面所有的字符包括空格都得为半角的英文,否则会出现错误。
编写好的xml文件还可在eclipse中打开以检查其正确性。
2、元素
XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式,例如a、包含体标签:
<
a>
/a>
;
b、<
简写为<
a/>
。
一个标签中也可以嵌套若干个子标签,但所有的标签都必须是合理的嵌套。
格式良好的XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子孙标签。
对于XML标签中出现的所有空格和换行,在XML解析程序中都会当做标签内容进行处理,即空格和换行会当成原始内容进行处理。
一个XML标签元素可以包含字母,数字,以及其他一些可见字符,但是必须遵守一些规范:
区分大小写;
不能以数字或者下划线开头;
不能以xml或者XML等开头;
不能包含空格;
名称中间不能包含冒号。
3、属性
一个标签可以包含有多个属性,每个属性都有他自己的名称和取值例如<
inputname="
text"
属性值一定要用双引号或者单引号引起来。
定义属性必须遵循与标签相同的命名规范。
在XML技术中,标签属性所代表的信息,也可以被改为用子元素的形式来描述,例如:
input>
name>
text<
/name>
/input>
4、注释
!
--注释-->
注意XML声明之前不能有注释,注释不能嵌套。
5、CDATA区、特殊字符
在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,可以将这些内容放在CDATA区中,对于CDATA区域中的内容,XML解析程序不会处理,而是直接原封不动的输出,定义格式为:
[CDATA[内容]]>
对于一些单个字符,若想显示其原样样式,也可以使用转义的形式进行处理:
&
--&
amp;
lt;
>
gt;
quot'
apos
6、处理指令(processinginsruction)
处理指令,简称PI,用来指挥解析引擎如何解析XML文档内容。
例如在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示XML文档中的内容。
xml-stylesheettype="
text/css"
href="
1.css"
处理指令必须以<
作为开头,以?
作为结束。
声明语句就是最常见的处理指令。
第二节DTD约束
在XML技术中,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
常用的XML约束技术有XMLDTD和XMLSchema。
本节先介绍DTD约束。
一、语法
1、DTD约束既可以作为一个单独的文件编写,也可以在XML文件内编写。
2、XML文件使用DOCTYPE声明语句来指明它所遵循的DTD文件,DOCTYPE有两种形式:
a、当引用的文件在本地时,采用如下的方式
DOCTYPE文档根节点SYSTEM"
DTD文件的URL"
b、当引用的文件是一个公共的文件时,采用如下方式:
DOCTYPE文档根节点PUBLIC"
DTD名称"
3、元素定义
在DTD文档中使用ELEMENT声明一个XML元素,语法格式为:
ELEMENT元素名称元素类型>
元素类型可以直接是元素内容或者类型
(1)如果为元素内容,直接使用()括起来,例如<
ELEMENT书架(书名,作者,售价)>
<
ELEMENT书名(#PCDATA)>
元素内容可以使用如下方式来描述内容的组成关系:
a、用逗号分隔,表示内容的出现顺序必须与声明时一致
ELEMENTMYFILE(TITLE,AUTHOR,EMAIL)>
b、用|分隔,表示任选其一,即多个只能出现一个
ELEMENTMYFILE(TITLE|AUTHOR|EMAIL)>
1、在元素内容中可以使用+*?
等符号表示元素出现的次数,+代表一次或者多次;
代表0次或者一次;
*代表0次或者多次。
如果后面没有设置,则代表必须出现一次。
2、可以使用圆括号()批量设置,例如:
ELEMENTMYFILE((TITLE*,AUTHOR?
EMAIL)*|COMMENT)>
(2)如果为元素类型,则直接书写,DTD规范定义了两种类型EMPTY和ANY
4、属性定义(attribute)
XML文档中的标签属性需要通过ATTLIST为其设置属性。
【语法格式】<
ATTLIST元素名
属性名1属性值类型设置说明
......
【属性值类型】CDATA,ENUMERATEN,ID,ENTITY(见标题5)
【设置说明】#REQUIRED必须设置该属性;
#IMPLIED可以设置也可以不设置;
#FIXED说明该属性有一个固定值,在XML文件中不能为该属性值设置其它值。
但需要该属性提供这个值;
直接使用默认值:
在XML中可以设置该值也可以不设置该属性值,若没有设置使用默认值。
【举例】<
ATTLIST页面作者
姓名CDATA#IMPLIED
职务信息CDATA#FIXED"
工程师"
个人爱好CDATA"
上网"
5、属性值类型定义
(1)ENUMERATED
属性的类型可以是一组取值的列表,在XML文件中,设置的属性值只能在这个列表中的某个值(枚举)。
gk2312"
DOCTYPE购物篮[
ELEMENT肉EMPTY>
ATTLIST肉品种(鸡肉|牛肉|猪肉|鱼肉)"
鸡肉"
]>
(2)ID
表示属性的设置值为一个唯一值。
ID属性的值只能有字母、下划线开始,不能出现空白
DOCTYPE联系人列表[
ELEMENT联系人列表ANY>
ELEMENT联系人(姓名,EMAIL)>
ELEMENT姓名(#PCDATA)>
ELEMENTEMALI(#PCDATA)>
ATTLIST联系人编号ID#REQURED>
(3)ENTITY实体类型
实体就是用于为一段内容创建一个别名,以后在XML文档中就可以使用别名应用这段内容了。
在DTD定义中,一条<
ENTITY...>
语句用于定义一个实体。
实体分为两种类型,引用实体和参数实体
a、引用实体
引用实体主要在XML文档中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xml javaweb 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)