使用Xerces-J的DOM方式进行XML程序设计
--一个应用DOM的实例:留言板
下面我们做一个使用DOM进行设计的程序,一个基于JSP的WEB留言板程序。在这个程序中,使用一个XML文件来保存留言信息,这个文件处于运行目录下面的Data子目录中,叫做notepad.xml。在JSP程序第一次运行的时候会检查这个文件是否存在,若不存在则自动创建这个用来保存信息的XML文件,同时在内存中创建一个Document对象,为这个Document对象创建根Element并添进去SysOp的留言(最后这一部分不是必须的),最后把Document对象中的内容保存到文件中;若这个文件已经存在则使用Xerces中的DOMParser解析notepad.xml文件,返回DOM文档树。当客户端提交浏览请求时,程序遍历DOM文档树,输出每个节点的信息。当客户端提交信息时,服务器端会把提交的内容创建为一个能够表示提交信息全部内容的Element并且插入到DOM文档树中。在这一步,我们判断了客户端提交信息的回复关系并把新生成的Element插入相应的位置。最后把更新后的DOM文档树存盘。在整个JSP程序的生存期中,Document对象的全部内容是一直驻留内存的,因此可以有很快的访问速度,整个程序的瓶颈在于保存文件,在这里我并没有给出优化,希望大家能够在读完源程序后自己进行优化。
这个留言板的界面设计非常粗糙,程序也有很多需要修改的地方,在这里仅仅用来使大家更加清楚地理解XML在程序设计中的应用。
下图为该程序在Mozilla0.8和IE5.5上面的运行效果图。在这里我们还可以看到Mozilla 0.8英文版的一个中文显示的bug,楷体不能正确显示。不过话说回来,对英文版还有那么高的要求就有点过分了。
源文件请从此处下载。