XML
1、什么是XML
 1)Extensible Markup Language,
  可扩展的标记语言。
  用于定义文档,使其具有结构化的特征。
  初衷是用于进行数据传输,目前也常用于做
  配置文件。
 2)背景
  –HTML,超文本标记语言,由万维网之父
   博纳斯.李创造,具有固定格式的文本语言。
  –基于HTML的思想,扩展设计出XML,用户
   可以自己定义XML文件的格式,具有很高的
   灵活性。
  –根据XML设计理念,重新的定义了HTML,
   即XHTML。
2、XML的基本语法
 1)XML由元素构成,元素是一对标记及其内容的
  组合,由标记开始,由标记结束。
  如:<result>/WEB-INF/find.jsp</result>
 2)有且只有一个根元素
  如:<struts></struts>
 3)元素可以为空,称之为空元素
  如:<br/>
 4)元素可以有属性,属性值由””括起来
  如:<result name=”success”>
 5)元素可以嵌套
  如:
  <action>
   <result>
    <param></param>
   </result>
  </action>
 6)大小写敏感
 7)实体引用
  < &lt;
  > &gt;
  & &amp;
  ‘ &apos;
  ” &quot;
 8)CDATA段
  <![CDATA[不希望被XML解析的内容]]>
  
*3、XML的解析
 1)SAX
  Simple API for XML,是以流的形式解析XML,
  边读取边解析,执行效率高,占用内存少。
  目前常用的XML解析工具往往底层是用SAX实现。
 2)DOM
  Document Object Model,是将XML数据读取到
  内存中,生成一棵完整的树,容易操作树结构的
  每一级数据,但是占用内存高,效率低。
 3)*DOM4J/JDOM
  a、写XML:Obj->xml
   –Obj->Document->xml
   –使用XMLWriter将Document生成xml文件
  b、读XML:xml->Obj
   –xml->Document->Obj
   –使用SAXReader将xml读取成Document
   –Document的每一级元素对象为Element
  c、对a进行扩展,将一组Emp数据写入到一个
   XML文件中。
   <emps>
    <emp></emp>
    <emp></emp>
   <emps>
  d、将生成的emps.xml读取,写入到List<Emp>中。
  e、读取privileges.xml
  f、用xml定义数据库连接参数,然后读取该数据,
   
4、XML的定义
 使用通用的语法,来描述XML的结构及含义,这个叫
 做XML的定义。
 1)DTD
  –采用一种特定的语法,来描述XML
  –这种语法相对Scheme更难,并且不通用
  –DTD出现的早,因此还广为使用
 2)Schema
  –w3c最新推出的标准,新一代的XML定义语法
  –此种定义的语法就是XML的语法
 XML定义参考:
  http://www.w3school.com.cn/schema/index.asp
5、XPath
 1)表达式语言,允许我们通过表达式来访问
  Document对象。
 2)基本语法
  –例如:/emps/emp[]
  –以/来区别每一级元素,并且以/开头
  –从根元素开始写起
  –可以给元素追加条件,条件以[]括起来
  –使用索引作为条件,如[1],注意这里下标从
   1开始
  –使用属性作为条件,如[@type=’simple’],
   注意属性名前要加@
  –使用下级元素作为条件,如[id=1]
反射
 一、Class类型
 1.创建对象的方式:class属性,对象.getClass()方法
 2.封装了类型的信息的一种特殊类型
 3.动态加载类信息Class.forName(“java.lang.String”);
 4.NET,C#语言中Assembly与java中的Class等价
二、什么是反射
 1.反射:运行时动态获取类的内部信息的一种方式
 2.java语言的一种特性,c,c++语言就不具备这种特性
 3.运行时自己查看自己信息的方式较自审、
 4.典型应用:IDE的提示,javabean的拷贝,简单工厂
三、简单工厂的使用
 1.编写配置文件
 2.定义接口
 3.编写实现类
 4.编写简单工厂
 5.编写测试类
四、Field类型:用于封装描述了类里面的字段信息的一种类型
 1.获取所有属性 getDeclaredFields()
 2.获取指定属性getDeclaredField(“fieldName”)
 3.获取属性的值  field.get(具体的对象引用);
 4.为属性赋值     field.set(对象,值);
 5.Modifier用于存储等级信息的类型
   Modifier.toString(f.getModifiers())
五、Method类型:用于封装描述了类内方法信息的一种类型
 1.获取所有方法对象 getDeclaredMethods()
 2.获取某一个方法对象getDeclaredMethod(“name”,paraType);
 3.调用方法 method.invoke(obj,values….);
 4.如果有返回值接收invoke方法的返回的object即可
 5.获取方法的参数类型getParameterTypes();
六、JavaBean拷贝
 1.什么是javabean:一种java类,重用的组件,符合
 一定设计规范的
 2.符合的规范如下:
     公开且完整的类
     所有属性需要隐藏
     提供公共的可访问私有属性的途径(getXXX,setXX)
   布尔类型的属性命名时把get/set换成is
   一定要提供一个无参的构造器
 3.javabean拷贝的意义
  在系统分层时,能够保证不同层之间传递对象的方便性

版权声明:本文为cholar原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cholar/p/11211162.html