一、什么是JavaBean?有何特征?
1、符合特定规则的类就叫JavaBean。
2、JavaBean分两类:
1)狭义的JavaBean包括以下内容:
a、私有的字段(Field)。
b、对私有字段提供存取方法(get和set方法)。
2)广义的JavaBean包括以下内容:
a、私有的字段(Field)。
b、对私有字段提供存取方法(get和set方法)。
c、数量任意的业务方法。
二、内省API(由SUN公司开发的)
1、内省技术访问JavaBean的两种方式:
(1)通过PropertyDescriptor类操作JavaBean的属性。
(2)通过Introspector类获得BeanInfo对象,通过BeanInfo对象获得属性描述器(PropertyDescriptor),通过属性描述器的getReadMethod()和getWriteMethod()方法来获得某个属性的getter和setter方法,然后通过反射来调用这些方法。
2、属性和getXxxxx()有关,同时必须有返回值。
3、任何一个JavaBean都有一个class属性,来自于Object类。
三、BeanUtils框架/工具(由APACHE开源组织开发)
1、BeanUtils框架能够完成内省的一切功能,而且做了优化。
2、使用BeanUtils框架必须在项目中导入commons-beanutils-1.9.1.jar和commons-logging-1.1.3.jar两个包。
3、BeanUtils框架能够对String到八种基本数据类型的自动转化。
4、对于不能自动转换的数据类型,BeanUtils提供了自定义转换器:ConvertUtils.register( 转换规则 ,目标对象的Class)。
5、向BeanUtils框架注册自定义转换器必须放在bu.setProperty()代码之前。
6、BeanUtils里面内置了一些装换器,如:内置了String→Date的装换器:ConvertUtils.register(new DateLocaleConverter(),java.util.Date.class);
四、泛型
1、注意JDK中的两个类:Collections和Arrays。
2、定义泛型的方法,在方法的返回值前面加上<T>。如:public static <T> void study(T t);
3、定义泛型类。public class BaseDao<T>{}
4、注意:静态方法不能使用类定义的泛型,而应单独定义泛型。因为泛型类是在实例化时确定具体的类型,而静态方法无需进行类实例化。
5、泛型通配符。如Class<?>。
五、XML
1、什么是XML?
Extensible Markup Language。可扩展标记语言。
2、XML的应用:1)保存有关系的数据。2)用作软件配置文件,以描述程序模块之间的关系。
3、XML语法:
1)文档声明
在编写XML文档时,需要先使用文档声明,声明XML文档的类型。语法:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2)元素
a、通常元素都有开始和结束标签,但也可以使用空标签,即<a></a>=<a/>。
b、XML中标签嵌入顺序必须一致,且字符大小写不一致。
c、程序会将标签内的空白字符当作有效字符对待。
3)属性
a、属性由属性名和属性值组成,属性值由定界符""或'组合。
b、当一个事务必须与对象绑定在一起,没有该对象,该事务就没有意义,此时该事务就应成为对象的属性。
4)注释
a、注释格式:<!--注释-->
b、不能嵌套使用。
5)CDATA区 、特殊字符
a、Character Data(字符数据区/段)。语法:<![CDATA[内容]]>
b、CDATA段中的数据不会被XML解析器所解析。
c、不能嵌套使用。
d、XML内置5种转义字符:< > & " '
e、其它字符:★
6)处理指令
a、processing instruction简称PI。处理指令用来指挥XML解析引擎如何解析XML文档内容。
b、处理指令必须以“<?”作为开头,以“?>”作为结尾。
c、可以使用CSS装饰XML文件中的内容。格式:<?xml-stylesheet type="text/css" href=“a.css"?>
d、CSS目前版本只能支持英文标签
4、xml约束
1)DTD是XML文件的约束。
2)浏览器对XML和DTD进行语法的检测,但是浏览器不会检测XML是否符合DTD规则。
3)正确的XML和有效的XML文件:正确的XML文件是指语法正确,而有效的XML文件是指语法和规则都正确。
4)XML中书写DTD有二种方式:a、DTD和XML分离。b、XML中嵌入DTD。
5)XML引用DTD有二种方式:a、SYSTEM:个人或组织,小范围内使用。b、PUBLIC:大范围内使用,例如:struts框架。。。
6)EMPTY和ANY,项目中尽量使用EMPTY,少用ANY。
7)在DTD中,必须将所有的标签全部都声明完才行。
8)在DTD中,定义元素时,可以使用如下符号:
a)+:有且只能出现1次或N次。
b)*:有且只能出现0次或N次。
c)?:有且只能出现0次或1次。
d)无:有且只能出现1次。
注意:以上符号用在()里面
9)DTD属性的设置值情况有四种:
a)#REQURIED:该属性必须出现。
b)#IMPLIED:该属性可有可无。
c)#FIXED "固定值":该属性可有可无,如果有的话,必须是"固定值"。
d)"默认值":该属性可有可无,如果没有的话,用默认值补充,如果有的话,用新值替代旧值。
10)当页面出现多个相同的字符串,此时可以使用引用实体来解决,在DTD中定义,在XML中使用。
11)当定义DTD时,出个相同的子元素,此时可以使用参数实体来解决,在DTD中定义,在DTD中使用,使用%标识,通过%参数实体名;来引用。