Java Web总结二JavaBean、内省API、BeanUtils、泛型、XML

一、什么是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、其它字符:&#x2605;

    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中使用,使用%标识,通过%参数实体名;来引用。

原文地址:https://www.cnblogs.com/FlySheep/p/3603055.html