Java笔记

Java XML

什么是 XML解析?

解析XML是指将通过XML文档访问数据或修改数据的一个操作或方法。

Java库中提供了两种XML解析器:

像文档对象模型(Document Object Model,DOM)解析器这的树型解析器(tree parse),它们将读入的XML文档转换成树结构。

像XML简单API(Simple API for XML,SAX)解析器这样的流机制解析器(streaming parser),它们在读入XML文档时生成相应的事件。

什么是 XML 解析器?

XML解析器提供方法来访问或修改 XML 文档中的数据。 Java 提供了多种解析 XML 文档的选项。 以下是通常用于解析 XML 文档的各种类型的解析器。

Dom 解析器 − 通过加载文档的完整内容并在内存中创建其完整的层次树来解析 XML 文档。

SAX 解析器 − 在基于事件的触发器上解析 XML 文档。 不将完整的文档加载到内存中。

JDOM 解析器 − 解析 XML 文档的方式与 DOM 解析器类似,但方式更简单。

StAX 解析器 − 以与 SAX 解析器类似的方式解析 XML 文档,但以更有效的方式。

XPath 解析器 − 基于表达式解析 XML 文档,并广泛与 XSLT 结合使用。

DOM4J 解析器 − 一个使用 Java Collections Framework 解析 XML、XPath 和 XSLT 的 java 库。 它提供对 DOM、SAX 和 JAXP 的支持。

Java DOM4J 解析器

DOM4J 是一个开源的、基于 Java 的库,用于解析 XML 文档。 它是一个高度灵活且内存高效的 API。 它是 Java 的优化,并使用 Java 集合,如 List 和 Arrays。

DOM4J 适用于 DOM、SAX、XPath 和 XSLT。 它解析大型 XML 文档时具有非常低内存占用。

环境设置:为了使用 DOM4J 解析器,应该包含 dom4j-1.6.1.jar 和 jaxen.jar在应用程序的类路径中。 下载 dom4j-1.6.1.zip。

    什么情况下使用?

应该在以下情况下使用 DOM4J 解析器 −

需要知道很多关于 XML 文档的结构

需要移动 XML 文档的各个部分(例如,可能想要对某些元素进行排序)。

需要多次使用 XML 文档中的信息。

是一名 Java 开发人员,希望利用 Java 优化的 XML 解析。

会得到什么?

当使用 DOM4J 解析器解析 XML 文档时,可以灵活地获取包含文档所有元素的树结构,而不会影响应用程序的内存占用。DOM4J 提供了多种实用功能,您可以使用这些功能检查 XML 文档的内容和结构,以防文档结构良好且结构已知。DOM4J 使用 XPath 表达式在 XML 文档中导航。

优势

DOM4J 为 Java 开发人员提供了 XML 解析代码的灵活性和易维护性。 它是一个轻量级的且快速的 API。

使用dom4j解析xml的大致步骤

  1.创建SAXReader

  2.使用SAXReader读取xml文档并且生成Document对象。

这一步也是dom解析耗资源的地方,因为首先要先将文档所有数据读取完毕,并且以一个Document对象的形式保存在内存当中

  3.通过Document对象获取根元素

  4.按照xml文档的结构从根元素开始逐级遍历xml文档数据的目的

Document提供了获取根元素的方法:Element getRootElement()

    而element的每一个实例用于表示当前xml文件的一个元素(一对标签),它提供了获取其元素相关的方法:

获取当前标签的名字:String getName()

获取当前标签中间的文本:String getText()

获取当前标签下指定名字的子标签:Element element(String name)

获取当前标签下的所有子标签:List elements()

获取当前标签下指定名字的子标签:List elements(String name)

获取当前标签下指定名字标签的属性:Attribute attribute(String name)

Attribute的每一个实例表示一个属性,它有两个方法:

获取属性名:String getName()

获取属性值:String getValue()

生成xml文件的大致步骤为:

1.创建一个Document对象,表示一个空白文档

2.向Document中添加根元素

3.按照xml文档结构从根标签开始逐级添加子标签以及对应的数据

4.创建XmlWrite

5.使用XmlWrite写出Document,生成文档

Document提供了添加根元素的方法:

 Element addElement(String name)

添加后会根据标签以一个Element实例返回,以便于我们对其继续操作,

注意:这个方法只能调用一次

Element也提供了添加相关信息的方法:

Element addElement(String name),向当前标签中添加给定标签名的子标签

Element addText(String text),向当前标签中添加指定的文本,返回的还是当前标签(这样做的好处是 ,可以继续添加其他内容)

WEB-SERVER

1、创建core.WebServer类,负责接收请求,生成socket对象

2、自定义异常exception.InitServerSocketException类,表示serverSocket初始化失败异常

3、定义日志信息类base.Log,负责打印日志信息

4、创建ClientHandler类,读取请求的相关数据

5、创建http.HttpServletRequest类,用途:封装请求数据,便于后期操作

        该类包含主要功能:解析请求头、解析请求行、解析请求数据、获取请求行数据

工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

介绍

意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

关键代码:创建过程在其子类执行。

注意事项:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。

设计模式的六大原则

工厂方法模式

  1. 普通工厂模式
  2. 多工厂模式

HTTP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值