JSP程序设计教学.ppt_第1页
JSP程序设计教学.ppt_第2页
JSP程序设计教学.ppt_第3页
JSP程序设计教学.ppt_第4页
JSP程序设计教学.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章JDBC简介 数据库是数据管理最重要的途径之一 也是Web应用最重要的数据源 在早期 对数据库的访问都是使用数据库厂商提供的专用API applicationprogramminginterface 应用程序编程接口 进行的 Java语言发布后 为了支持数据库的访问操作 Sun公司于1996年推出了JDBC Javadatabaseconnectivity Java数据库连接 JDBC定义了一套访问关系数据库的标准Java类库 通过JDBCAPI 用户可以方便地操作关系数据库 此外 JDBC还为数据库厂商提供了一个标准的体系架构 厂商能够针对数据库产品提供特定的JDBC驱动程序 从而提高了Java访问数据库的效率 本章逐一介绍了JDBCAPI主要的接口功能和使用方式 并给出了相应的示例程序 最后利用JDBCAPI实现了一个简单的学生管理系统 其中包括学生信息的增加 查看 修改和删除等功能 4 1SQL语言与JDBC SQL structuredquerylanguage 结构化查询语言 语言是于1974年由Boyce和Chamberlin提出 并在1979年由IBM公司在其研制的关系型数据库SystemR中实现的 由于SQL语言功能丰富 语法简洁 因此深受用户的喜爱 1986年10月 美国国家标准局批准SQL语言作为关系型数据库的标准语言 SQL语言是一种介于关系代数和关系演算之间的结构化查询语言 但SQL语言不仅仅局限于查询 它是一个通用的 功能强大的关系型数据库语言 在基于Java的应用程序开发过程中 为了降低程序开发的复杂度 提高程序开发效率 通常使用JDBC和SQL相互配合 共同完成访问关系型数据库的工作 JDBC负责将SQL语句传递给数据库 然后从数据库中获取返回结果 并组装为结果集返回给客户 其运行方式如下图所示 4 2JDBCAPI JDBCAPI是Java平台提供的一个标准的数据库访问接口集 是支持数据库操作的类与方法的集合 利用它开发人员在编写应用程序时不必考虑所用的数据库 JDBCAPI包括java sql和javax sql两个包 java sql包包含了JDBC的核心API 而javax sql包则包含了JDBC标准的扩展API JDBCAPI提供了以下基本功能 1 建立与数据源的连接 2 向数据源发送查询和更新语句 3 处理从数据源得到的结果 实现上述功能的JDBCAPI的核心类和接口均定义在java sql包中 熟练掌握这些类和接口的使用方法 是JDBC程序设计的基础 也是构建更复杂 更高级的应用程序的必要条件 4 2 1管理驱动程序类DriverManager DriverManager类是JDBC的管理层 作用于用户和数据库驱动程序之间 它跟踪可用的驱动程序 并在数据库和相应驱动程序之间建立连接 另外 DriverManager类也处理诸如驱动程序登录时间限制 以及登录和跟踪消息的显示等事务 DriverManager类中常用的方法如下表所示 4 2 2数据库连接类Connection Connection对象代表与数据源进行的唯一对话 Connection类提供了进行事务处理 创建执行SQL语句和创建存储过程所用对象的方法 同时 Connection类还提供了一些基本的错误处理方法 Connection类的实例可以通过DriverManager getConnection 或DataSoure getConnection 方法创建 java sql Connection类提供的常用方法如下表所示 4 2 3SQL声明类Statement Statement类用于将SQL语句发送到数据库中 实际上有三种Statement类 Statement PreparedStatement和CallableStatement 它们都专用于发送特定类型的SQL语句 其中 Statement用于执行不带参数的简单SQL语句 Statement对象用Connection的createStatement方法创建 具体格式如下 Statementstmt conn createStatement 4 2 4PreparedStatement类 由上一节可知 Statement类使用SQL语句直接处理查询 在执行过程中 Statement类把SQL语句提交给数据库 数据库分析执行SQL语句 然后将执行结果返回给用户 值得注意的是 使用Statement类 即使重复执行同一查询 SQL语句也要由数据库再次格式化 尤其是当SQL语句中包含where子句时 每一次查询都需要数据库解析 优化 然后才能返回执行结果 因此 使用Statement类将会在很大程度上影响重复数据查询的执行效率 为了提高查询效率 对于同一个查询语句 JDBCAPI提供了PreparedStatement类来优化这一过程 PreparedStatement是Statement的扩展 代表了一条预设SQL语句 预设语句是指预先将SQL语句传送给数据库 并在数据库中被编译 优化并缓存 也就是说 使用PreparedStatement类 SQL语句不需要在每次执行时都由数据库重新编译和优化 而仅需编译和优化一次 这就提高了执行查询的效率和性能 另外 已编译的SQL语句可以指定输入参数 用于定制特殊SQL语句的执行效果 输入参数可以是select或者update语句中的where子句中的值 也可以是insert语句中的values子句中的值 使用预设语句时 PreparedStatement将SQL语句及其参数提交给数据库 由数据库对这些语句进行预处理 4 2 5查询结果类ResultSet 一旦建立了数据库连接并执行了SQL语句 就可以从Statement实例中获取一个以ResultSet表示的结果集 ResultSet类封装了执行SQL查询所得到的数据行或元组 ResultSet类提供了一系列的方法 用于在返回的结果集中自由移动指针 以加强应用程序的灵活性并提高访问数据的效率 这些方法如下表所示 4 2 2文本的编辑 4 2 6数据库操作异常类SQLException 基本上所有JDBCAPI的方法都会抛出SQLException异常 这个异常类继承了java lang Exception接口 并通过重写的getMessage 方法获取产生异常的原因和所生成异常的相关信息 SQLException类的构造方法包含了一个字符串 这是数据库服务器或JDBC驱动程序根据SQL状态给出的异常产生原因 SQL状态是一个标准化的字符串 包含了产生异常的SQL处理状态 以及与数据库厂商相关的错误码 一个整数 SQLException类提供的构造方法如下 1 SQLException 创建一个新的SQLException 将产生异常的原因 SQL处理状态以及厂商错误码的值设为NULL 2 SQLException Stringreason 创建一个新的SQLException 设置产生异常的原因 并将SQL处理状态以及厂商错误码的值都设为NULL 3 SQLException Stringreason StringSQLState 创建一个新的SQLException 设置产生异常的原因和SQL处理状态 并将厂商错误码的值都设为NULL 4 SQLException Stringreason StringSQLState intvendorCode 创建一个新的SQLException 并设置产生异常的原因 SQL处理状态以及厂商错误码的值 此外 SQLException类提供了如下方法 以实现被抛出异常的内部数据的访问 1 intgetErrorCode 返回异常的厂商错误码 2 SQLExceptiongetNextException 如果还有异常 则检索异常链中的下一个异常 3 StringsetNextException SQLExceptione 设置当前对象的异常链中的下一个异常 注意 由于大部分JDBC方法都会抛出SQLException异常 因此 在应用程序中 必须捕捉异常对象 并进行适当的处理 然后把错误码返回给调用者 此外 在程序运行结束时 必须使用finally语句块关闭Connection对象 而不管是否产生了SQLException异常 4 3JDBC驱动程序的类型 通常 当数据库厂商推出自己的数据库产品时 都会提供一套访问数据库的API 这些API能以各种编程语言的形式提供 客户端程序通过调用这些专有的API来访问数据库 各个厂商提供的数据库访问API不尽相同 导致构建在某一个特定数据库上的应用程序不能移植到另一个数据库上 JDBC以Java类库的形式取代数据库厂商的专有API 客户端只需要调用JDBCAPI 而处理与数据库通信的具体操作由JDBC的实现层 即JDBC驱动程序 完成 从而降低了应用程序与数据库之间的耦合度 JDBC驱动程序分为以下四类 1 JDBC ODBC桥 2 Java到本地API 3 JDBC网络纯Java驱动程序 4 本地协议纯Java驱动程序 4 3 1JDBC ODBC桥连接 因为Microsoft推出的ODBC比JDBC出现的时间要早 所以绝大多数的数据库都可以通过ODBC来访问 当Sun公司推出JDBC的时候 为了支持更多的数据库 特意提供了JDBC ODBC桥 JDBC ODBC桥本身也是一个驱动 利用这个驱动 用户可以使用JDBCAPI通过ODBC去访问数据库 这种桥机制实际上是把标准的JDBC调用转换成相应的ODBC调用 并通过ODBC把数据库调用发送给ODBC数据源 其原理如下图所示 由图可以看出 通过JDBC ODBC桥的方式访问数据库需要经过多层的调用 因此 利用JDBC ODBC桥访问数据库的效率比较低 然而 当数据库没有提供JDBC驱动 只有ODBC驱动的情况下 也只能利用JDBC ODBC桥的方式访问数据库 例如 在访问Access数据库时 就只能使用JDBC ODBC桥来访问 4 3 2Java到本地API 大部分数据库厂商都提供与他们的数据库产品进行通信所需要的调用API 这些API往往用C语言或类似的语言编写 依赖于具体的平台 此类型的JDBC驱动程序使用Java语言编写 并能够调用数据库厂商提供的本地API 此时 利用JDBCAPI访问数据库时 JDBC驱动程序将数据库调用请求转换为厂商提供的本地API调用 数据库处理请求 然后将处理结果通过这些API返回 进而返回给JDBC驱动程序 最后 JDBC驱动程序将结果转化为JDBC标准形式 再返回给客户程序 其原理如下图所示 从图中可以看到 通过这种类型的JDBC驱动程序访问数据库时 减少了ODBC的调用环节 提高了数据库访问的效率 并且能够充分利用厂商提供的本地API功能 但是 在这种访问方式下 需要在客户的机器上安装本地JDBC驱动程序和特定厂商的本地API 4 3 3JDBC网络纯Java驱动程序 这种驱动利用作为中间件的应用服务器来访问数据库 应用服务器作为一个或多个数据库的网关 客户端通过它可以连接到不同的数据库服务器 应用服务器通常都有自己的网络协议 Java程序通过JDBC驱动程序将JDBC调用发送给应用服务器 应用服务器使用本地驱动程序访问数据库 从而完成请求 其原理如下图所示 使用这类驱动程序的优点是可以直接通过JDBC访问网络数据库 不需要安装驱动程序 程序与平台无关 不仅可以用在一个第三方的解决方案中 而且可以在Internet上使用 4 3 4本地协议纯Java驱动程序 这种类型的JDBC驱动程序完全用Java语言编写 通过与数据库直接连接的套接字进行通信 它采用厂商相关的网络协议把JDBCAPI调用转换为直接的网络调用 如OraclethinJDBCdriver 其原理如下图所示 这种类型的驱动是四种类型驱动中访问数据库效率最高的 不过 由于每个数据库厂商 Oracle Microsoft Sybase等 都为自己的数据库产品提供了这种类型的驱动 因此 访问不同的数据库时 需要使用不同的JDBC驱动程序 在本章第4节中 将使用此类型的驱动程序操作数据库 本章小结 本章主要学习了关系型数据库中SQL语言的基本功能和使用方式 以及JDBCAPI的核心接口和常用方法 在此基础上 用JSP和数据访问对象实现了一个较为完整的数据显示Web应用程序 其中 SQL语言是操作关系数据库的标准语言 尽管SQL语言结构简单 但功能非常强大 可以完成数据库整个生命周期的管理和数据访问操作 JDBC提供了Java程序访问关系数据库的方法 在JDBC中 定义了一系列的接口 如Connection接口 Statement接口和ResultSet接口等 通过这些接口 用户可以方便地与数据库交互 构建更复杂 更高级 更易用的应用程序 第5章JavaBean技术 此前介绍的JSP页面中混合了HTML代码和Java代码 页面的显示逻辑和业务逻辑混杂在一起 代码的可读性差 维护难度高 为了分离页面中的HTML代码和Java代码 一个很自然的想法就是单独编写一个类来封装页面的业务逻辑 在页面中 只需简单地编写几句调用类中方法的代码 即可完成所需的功能 这种方式 不但提高了代码的复用率 多个页面可调用同一个类的方法 而且将页面的显示逻辑和业务逻辑也区分开了 在JSP技术中 负责完成业务逻辑的类可用JavaBean组件来实现 5 1JavaBean概述 JavaBean是描述Java的组件模型 类似于Microsoft的COM组件概念 在Java模型中 通过JavaBean可以扩充Java的程序功能 通过JavaBean的组合还可以快速生成新的应用程序 对于程序员来说 使用JavaBean可以实现代码的重复利用 使得程序更易维护 JavaBean就是一个特殊的Java类 这个类必须符合JavaBean的规范 JavaBean原来是为了能够在一个集成开发环境中可视化 模块化地利用组件技术开发应用程序而设计的 虽然在JSP中不需要使用任何可视化的功能 但仍然需要利用JavaBean的属性 事件 持久化和用户化来实现模块化的功能 5 1 1JavaBean特性 下面介绍在JSP开发中经常用到的JavaBean规范的一部分 主要有属性特点 构造方法等 1 构造方法标准的JavaBean中一定要有一个不需要任何参数的构造函数 这个构造函数在使用实例化JavaBean类时调用 如果JavaBean类中没有任何构造函数 系统会自动生成一个没有参数的构造函数 2 属性JavaBean中的属性都应该定义为私有的 这样这些属性就只能通过JavaBean内的方法访问或修改 从而较好地保护数据的完整性和封装性 也可以对数据加以约束 5 1 2属性的类型 JavaBean有简单 Simple 属性 索引 Index 属性 绑定 Bound 属性和约定 Constrained 属性四种类型的属性 1 简单属性简单属性表示伴随有一对get set方法的变量 属性名和该属性相关的get set方法名对应 2 索引属性索引属性表示一个数组值 使用该属性对应的set get方法可获取数组中的数值 该属性也可一次设置或取得整个数组的值 5 2使用JavaBean访问数据库 本节通过讲解如何利用JavaBean连接并显示数据库表中的记录 在第4章已讲过连接SQLServer数据库的方法 现以SQLServer为例 将连接封装在JavaBean中 通过Bean来连接数据库 并访问数据库中的表 5 2 1设计访问数据库的JavaBean 首先编写连接数据库的JavaBean程序conn java 数据库名为JspDataBase 用户名与密码已知 数据库JSP中已存在数据表student 主要存放关于学生学号 姓名和成绩的信息 在conn java程序中 首先加载SQLServer驱动 语句如下 Class forName com microsoft jdbc sqlserver SQLServerDriver 然后使用DriverManager对象的getConnection dbURL dbUser dbPassword 方法建立连接 其中指定参数dbURL为 jdbc microsoft sqlserver localhost DatabaseName JSP SelectMethod Cursor 然后创建SQL语句对象 关于数据库连接程序第4章已有介绍 这里不再详述 5 2 2在JSP中调用JavaBean访问数据库 下面介绍一个具体实例来演示如何在JSP中调用访问数据库的JavaBean 实例详见教材117页 5 3综合案例 JavaBean具体的实施部署步骤如下 首先建立Web项目 将编好的JavaBean代码放入项目文件夹中的WEB INF classes文件夹下 注意需要为JavaBean指定一个包名 然后就可在项目中的JSP文件中调用JavaBean了 以下是两个具体的实例 5 3 1用户注册的JavaBean 本节中 将通过一个简单的例子演示如何在JSP页面中访问JavaBean 首先提供一个注册表单 让用户输入相关的信息 在用户提交表单后 将用户的注册信息保存到JavaBean对象中 然后在另一个页面通过读取JavaBean的属性来获得用户的注册信息 5 3 2动态日历 本节主要讲解如何使用JavaBean实现一个能根据年 月进行查找的日历程序 本例具体步骤详见教材126页 本章小结 本章主要介绍了JavaBean的基本知识 利用JavaBean组件来封装业务逻辑 可以避免在HTML中嵌入大量的Java代码 使得页面的显示和业务逻辑分离 提高了代码的可维护性 通过JavaBean实现数据库连接及事物处理过程 可有效地将静态 动态工作分离开来 减少代码量 增强代码可读性并能极大地提高效率 第6章JSP与XML 随着Web的广泛运用 HTML的局限性逐渐显露出来 HTML缺乏扩展性 标记定义比较模糊 因此可能导致错误的蔓延 人们在开发Web应用时需要一种标准化的 具备高可扩展性并且结构严谨的新语言 由此诞生了XML XML是W3C推出的一种标记语言 它组合了其前身语言SGML的强大功能和可扩展性 以及Web应用的简洁性 目前 XML已经成为计算机行业内最热门的技术 它获得了广泛的行业支持 并且由于不断加强XML标准 从而使XML可以跨越所有边界 实现真正独立 跨平台的数据传送格式 6 1XML语法规则 XML的全称是extensiblemarkuplanguage 意思是可扩展的标记语言 它是标准通用语言 standardgeneralizedmarkuplanguage SGML 的一个子集 XML的语法规则既简单又严格 非常容易学习和使用 正因为如此 编写读取和操作XML文档的软件也是相对容易的事情 首先来看一个XML文档 CH6 1 xml 的例子 XML文档使用了自描述和简单的语法 古乐声国防科技大学计算机 代码的第1行是XML声明 并且定义XML的版本 目前发布的是1 0版本 使用gb2312字符集 代码的第2行是这段代码内容的根元素 类似文章的标题 是XML文档所必须声明的元素 代码的第3 5行是根元素的子元素 在这里有3个子元素 作者 出版社 题材 最后一行的代码则定义了根元素的结束 至此一段完整的XML代码就算完成了 从上面的例子可以看出 所有的元素都要有闭合标记 这并非是一个巧合 而是XML语法规则定义的 1 元素必须有闭合标记2 XML标记都是大小写敏感的3 在XML中必须正确嵌套4 所有XML文档必须有且只能有一个根元素5 XML文档元素的属性值必须使用引号6 XML文档中的空白将被保留 6 2XML文档结构 一个XML文档从逻辑上可以分为五个部分 XML声明 文档类型声明 元素 注释 处理指令 6 2 1XML声明 XML数据文件的定义不像HTML那样自由 它是非常严格的 XML文档总是从一个XML声明开始 在其中指明所有的XML版本和文档编码等信息 下面是一个完整的XML声明 XML文件的声明必须存在而且放在第一行 否则解析器不予解析 声明的作用是告诉浏览器或者其他处理程序这个文档是XML文档 声明语句中的 version 表示文档遵守的XML规范的版本 它必须在属性列表中第一个出现 standalone 表示文档是否是独立的 如果不带附带DTD DocumentTypeDefinition 文档类型定义 文件 则将该参数设置为yes 如果附带有DTD文档 则将该参数设置no encoding 表示文档所用的语言编码 默认是UTF 8 6 2 2文档类型声明 在一个XML文档中 用户可以任意定制标签 但是当将XML文档提交给其他人使用时 那么文档一定要有相应的DTD文件 并且要严格遵守DTD文件制定的规范 XML从SGML继承了用于定义语法规则的DTD机制 几乎所有的XML应用都是用DTD来定义的 HTML文件就是一个严格遵守DTD机制的文件 所以其组织结构和所有的标签都是固定的 DTD文件也是一个文本文档 通常用 dtd 作为其扩展名 通过文档类型声明 指出XML文档所使用的DTD DTD文件的声明语句紧跟在XML声明语句后面 文档类型声明有两种形式 一种是在一个外部的文件中声明DTD 格式如下 6 2 3元素 元素是XML文档的基本单元 基本XML文档必须包含一个或多个元素 一个XML文档必须包含根元素 并且只能包含一个根元素 一个元素的起始标签和结束标签的名字必须相匹配 并且标签名是大小写敏感的 所有以起始标签开始的元素都必须以与起始标签同名的结束标签作为结束 在起始和结束标签中间的文本是元素的内容 无内容的元素可以使用一种特殊的形式 即 这里 之前的斜线实际上代替了结束标签 元素名可以由字母 数字 连字符号 下划线 冒号以及句号组成 冒号用于划分命名空间 元素可以没有或者有一个或多个属性 属性名的命名规则同元素命名规则相同 其名字和值由 分隔 并且属性值必须在单引号或者双引号之间 如果要在属性值里面使用单引号或双引号 那么就必须使用反斜线来进行转义 元素和属性的格式如下 元素的数据XML元素的内容可以包含子元素 字符数据 字符引用和预定义实体引用 CDATA段 1 子元素子元素本身也是元素 被嵌套在上层元素之内 子元素是相对于父元素而言的 如果子元素还嵌套了其他元素 那么它同时也是父元素 2 字符数据在一个元素中 字符数据可以是不包括任何标记的起始定界符和CDATA段的结束定界符在内的任意字符串 就是说在元素的内容中 字符数据不能有和号 和小于号 在CDATA段中 字符数据可以是不包括CDATA段的结束定界符在内的任意字符串 3 字符引用和预定义实体引用在字符数据中 不能有和号 结束的 如果用的是字符引用 需要在和号 之后加上井号 之后是所需字符的十进制代码或十六进制代码 如果用的是预定义实体引用 在和号 之后写上字符的助记符 4 CDATA段CDATA段中包含的都是纯字符数据 在字符数据可以出现的任何地方都可以使用CDATA段 CDATA段主要用于需要将整个文本解释为字符数据而不是标记的情况下 CDATA段中的内容不被XML处理器分析 所以可以在其中包含任意的字符 例如 在XML文档中含有Java代码 而Java代码可能存在着小于号 双引号 单引号 和号 这些特殊字符 这个时候 CDATA段就派上用场了 CDATA段以 标记结束 6 2 4注释 在XML文档中 注释可以出现在文档中其他标记之外的任何位置 另外 它们还可以在文档类型声明中语法允许的地方出现 XML的注释和HTML的注释类似 都是以 结束 注意 注释文本中不能出现字符 和字符串 且注释不能被嵌套 6 2 5处理指令 处理指令 processinginstruction PI 允许文档中包含由应用程序来处理的指令 在XML文档中 有可能会包含一些非XML格式的数据 这些数据XML处理器无法处理 此时就可以通过处理指令来通知其他应用程序来处理这些数据 处理指令的语法和XML声明类似 以 标记结束 例如 一个常见的使用样式表单的处理指令如下所示 6 2 4幻灯片的编辑 开始标记 后的第一个字符串 xml stylesheet 是处理指令的目标 它是必须要用到的应用程序 要注意的是 对于其他的非W3C定义的处理指令不能以字符串 XML 或 xml 开头 其余的部分是传递给应用程序的字符数据 应用程序从处理指令中取得目标和数据 执行要求的动作 处理指令的目标可以是要使用的程序的名字 或者是一个类似于xml stylesheet这样的通用标识符 不同的应用程序支持不同的处理指令 对于不认识的处理指令 大多数应用程序采取忽略的方式进行处理 xml stylesheet处理指令总是放在XML声明之后 第一个元素之前 其他的处理指令可以放在除标记的内部和XML声明之前的任何位置 6 3JSP和XML的综合应用 JSP和XML是J2EE的两个至关重要的组件 作为建立在JavaServlet之上的表达层技术 JSP技术允许将HTML标记和服务器端脚本混合起来生成动态网页 从而使得动态网页的生成更加简单 同时 作为一种开发工具 XML简化了数据交换 因此受到开发人员喜爱并越来越流行 这使得在J2EE架构中利用JSP访问XML或集成XML成为一种趋势 在应用程序中 经常需要对XML文档进行分析 以检索 修改 删除或重新组织其中的内容 例如 将应用程序运行所需要的一些配置信息以XML文件格式进行保存 在程序启动时 读取XML文件 从中取出有用的信息 这就需要对XML文档进行解析 在解析XML文档时 通常是利用现有的XML解析器对XML文档进行分析 而编写的应用程序则通过解析器提供的API接口得到XML数据 整个过程如下图所示 6 3 1使用DOM解析XML DOM是documentobjectmodel的缩写 即文档对象模型 它是W3C组织推荐的处理XML的标准接口 有关DOM技术报告可以在http www w3 org DOM 上查看 DOM是独立于程序设计语言的 W3C组织以IDL interfacedefinitionlanguage 接口定义语言 的形式定义了DOM中的接口 某种程序语言要实现DOM 需要将DOM接口转换为本语言中的适当结构 为了保证不同语言的不同的DOM之间可以实现广泛的兼容 W3C组织在DOM规范的附录部分提供了Java和ECMAScript这两种语言绑定 DOM中的核心概念是结点 DOM在分析XML文档时 将组成XML文档的各个部分 元素 属性 文本 注释和处理指令等 映射为一个对象 这个对象就叫做结点 Node 在内存中 这些结点形成一棵文档树 整棵树是一个结点 树中的每一个结点也是一棵树 子树 可以说 DOM就是对这棵树的一个对象描述 通过访问树中的结点存取XML文档的内容 在使用DOM处理XML的时候 需要读入整个XML文档 然后在内存中创建DOM树 生成DOM树上的每个Node对象 当文档比较小的时候 这不会造成什么问题 但是一旦文档很大 处理DOM就会变得相当费时费力 1 DOM中的Node对象 DOM定义了一个Node对象 表示XML文档中的元素的Element对象和表示元素属性的Attr对象都是从Node对象派生而来 Node对象是DOM结构中最基本的对象 代表了文档树中的一个结点 然而在实际使用中 很少会真正用到Node对象 而是使用Element Attr Text等Node对象的子对象来操作文档 虽然在Node中定义了对其子结点进行存取的方法 但是一些Node对象的子对象 如Text对象 表示元素或属性的文本内容 并不存在子结点 2 DocumentBuilder类的parse 方法 在java xml parsers包中 定义了DOM解析器工厂类Do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论