xml及javaweb基础Word文档格式.docx

上传人:b****8 文档编号:22177385 上传时间:2023-02-02 格式:DOCX 页数:48 大小:41.95KB
下载 相关 举报
xml及javaweb基础Word文档格式.docx_第1页
第1页 / 共48页
xml及javaweb基础Word文档格式.docx_第2页
第2页 / 共48页
xml及javaweb基础Word文档格式.docx_第3页
第3页 / 共48页
xml及javaweb基础Word文档格式.docx_第4页
第4页 / 共48页
xml及javaweb基础Word文档格式.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

xml及javaweb基础Word文档格式.docx

《xml及javaweb基础Word文档格式.docx》由会员分享,可在线阅读,更多相关《xml及javaweb基础Word文档格式.docx(48页珍藏版)》请在冰豆网上搜索。

xml及javaweb基础Word文档格式.docx

第一章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文档中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1