• JSP教程:1天玩转JSP网站开发技术
  • JSP是什么?
  • JSP的特点与工作流程
  • JSP与ASP、PHP的比较
  • JSP页面的组成及其元素
  • JSP开发环境搭建(Tomcat的安装和配置)
  • 第一个JSP程序
  • JSP注释(多种注释详解)
  • JSP声明:变量、方法和类的声明
  • JSP中嵌入Java代码
  • JSP表达式
  • JSP开发模式(四种模式)
  • JSP常见错误以及解决方案
  • JSP指令详解(三大指令)
  • JSP page指令
  • JSP include指令
  • JSP指令应用实例
  • JSP动作
  • JSP include动作
  • JSP param动作
  • JSP forward动作
  • JSP plugin动作
  • JSP useBean动作
  • JSP setProperty动作
  • JSP getProperty动作
  • JSP application 对象
  • JSP out对象:向客户端输出数据
  • JSP request对象:获取客户端的请求信息
  • JSP response对象:响应客户端的请求并向客户端输出信息
  • JSP session对象
  • JSP pageContext对象
  • JSP page对象
  • JSP config对象
  • JSP获取并显示字符串长度
  • 什么是JavaBean?
  • JavaBean工具
  • JavaBean规范
  • JavaBean的属性(Simple、Indexed、Bound、Constrained)
  • JavaBean的Scope属性
  • JavaBean事件
  • JavaBean实现用户登录界面
  • Servlet是什么?
  • Servlet的生命周期
  • Servlet的类和方法
  • Servlet客户端跳转
  • EL是什么?(详解)
  • JSP EL表达式的基本语法及运算符的优先级(一览表)
  • JSP EL 点(.)运算符和下标([])运算符
  • JSP EL算数运算符
  • JSP EL关系运算符
  • JSP EL逻辑运算符
  • JSP EL条件运算符
  • JSP EL empty空运算符
  • EL表达式中的常量与变量
  • EL表达式的保留字
  • EL表达式的内置对象及其作用域
  • 使用EL表达式访问JavaBean
  • 使用EL表达式访问集合
  • EL表达式内置对象param和paramValues
  • EL表达式内置对象cookie
  • EL表达式内置对象initParam
  • JDBC 的定义及产品组件
  • 建立JDBC连接
  • 利用JDBC发送SQL语句
  • JDBC API ResultSet接口(记录集接口)
  • JDBC RowSet接口
  • JDBC BaseRowSet类和CachedRowSet类
  • 填充CachedRowSet对象记录集(三种方法)
  • File类(在JSP中的使用)详解
  • 使用字节流读/写文件
  • RandomAccessFile类
  • JSP文件上传
  • XML是什么?
  • XML的基本语法
  • JDK 中的 XML API
  • DOM解析XML
  • SAX解析XML
  • DOM4j解析XML
  • DOM 在解析的时候是把整个 XML 文件映射到 Document 的树型结构中,XML 中的元素、属性、文本都能在 Document 中看清,但是它消耗内存,查询速度慢。

    SAX 基于事件的解析,解析器在读取 XML 时根据读取的数据产生相应的事件,由应用程序实现相应的事件处理,所以它的解析速度快,内存占用少。但是 SAX 需要应用程序自身处理解析器的状态,实现起来比较麻烦,而且它只支持对 XML 文件的读取,不支持写入。

    DOM4j 是一个简单、灵活的开源库,前身是 JDOM。与 JDOM 所不同的是,DOM4j 使用接口和抽象类基本方法,用了大量的 Collections 类,提供一些替代方法以允许更好的性能或更直接的编码方法。DOM4j 不仅可以读取 XML 文件,而且还可以写入 XML 文件。

    目前越来越多的 Java 软件都在使用 DOM4j 读写 XML,例如 Hibernate,包括 Sun 公司自己的 JAXM 也使用 DOM4j。可以通过下载地址 http://sourceforge.net/projects/dom4j 下载最新的 D0M4j 包。下面用例子来说明其使用方法。

    【例 1】DOM4j 解析 XML 文件。

    XML 文件的内容还是上述中的内容,编写解析类 Dom4jDemo.java,其代码如下:

    1. package com.eshore;
    2. import java.io.File;
    3. import java.util.List;
    4. import org.dom4j.Document;
    5. import org.dom4j.DocumentException;
    6. import org.dom4j.Element;
    7. import org.dom4j.io.SAXReader;
    8. public class Dom4jDemo
    9. {
    10. /**
    11. * Dom4j解析XML文件
    12. */
    13. @SuppressWarnings("unchecked")
    14. public static void main(String[] args)
    15. {
    16. //创建待解析的XML文件,并指定目录
    17. File file=new File("F:\\users.xml");
    18. //指定XML解析器SAXReader
    19. SAXReader saxReader=new SAXReader();
    20. try
    21. {
    22. //SAXReader解析XML文件
    23. Document document=saxReader.read(file);
    24. //指定要解析的节点
    25. List<Element> list=document.selectNodes("/users/user");
    26. for(Element element:list)
    27. {
    28. //获得节点country属性值
    29. System.out.println("country----"+element.attributeValue("country"));;
    30. //获得节点的子节点
    31. List<Element> childList = element.elements();
    32. //遍历节点的子节点
    33. for(Element childelement:childList)
    34. {
    35. //如果是address子节点,遍历address的子元素
    36. if("address".equals(childelement.getName()))
    37. {
    38. //获得节点state属性值
    39. System.out.println("state----"+childelement.attributeValue("state"));
    40. //遍历address元素的子元素
    41. List<Element> addressElements=childelement.elements();
    42. for(Element e:addressElements)
    43. {
    44. System.out.println(e.getName()+"----"+e.getText());
    45. }
    46. }
    47. System.out.println(childelement.getName()+"----"+childelement.getText());
    48. }
    49. }
    50. }
    51. catch(DocumentException e)
    52. {
    53. e.printStackTrace();
    54. }
    55. }
    56. }

    上述代码讲解了用 D0M4j 来解析 XML 资源文件。通过上述代码可知,使用 D0M4j 解析 XML 时,主要有以下几步:

    • 创建 SAXReader 实例:
    1. SAXReader saxReader=new SAXReader();
    • 用 SAXReader 获取 xml 的 Document:
    1. Document document=saxReader.read(file);

    从上述步骤可以看出,用 DOM4j 解析 XML 便于使用。想要了解更多的 DOM4j 内容,请查询 DOM4j 的 API 和相关例子。