当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 简要探讨 Jav
 

 

 ·tomcat中文问题--过滤器    »显示摘要«
    摘要: 转载请注明:http://www.csdn.net/develop/article/17/17204.shtm 作者:ggyy1977@hotmail.com 使用filter来改变request的编码 在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题! 知道当没有指定request的编码的时候,从客户端得到的数据是iso-8859-1编码的......
 ·朝着 零缺陷 的方向    »显示摘要«
    摘要:软件缺陷大致有三种:做的事情不是客户想要的、做了不该做的事情、做错了事情。 这里我们不认为第一种是缺陷,出现这种情况的原因非常多,比如需求没有挖掘到位、分析误差导致设计偏离、开发人员理解差异导致实现的与需求不一样,等等。 那么,对第二种和第三种,原因主要就是编码的问题了,基本上都是代码的bug问题,杜绝代码错误,就能朝着 零缺陷 的方法迈进。 代码错误只有通过测试来找,测试有黑盒测试、白盒测......


Java 中的 XML:Java 文档模型的用法
简要探讨 java 中不同 xml 文档模型的工作原理

dennis m. sosnoski(dms@sosnoski.com)

总裁,sosnoski software solutions, inc. 【程序编程相关:(转载)通用ShellCode深入剖析

【推荐阅读:吐水奉献 ——PHP常用函数

2002 年 2 月 【扩展信息:(转载)获取Windows 系统的内核变

 

在本系列的第一篇文章中,我研究了一些用 java 编写的主要的 xml 文档模型的性能.但是,在开始选择这种类型的技术时,性能只是问题的一部分.使用方便至少是同样重要的,并且它已是一个主要理由,来支持使用 java 特定的模型,而不是与语言无关的 dom .

为切实了解哪个模型真正的作用,您需要知道它们在可用性程度上是如何排名的.本文中,我将尝试进行这个工作,从样本代码开始,来演示如何在每个模型中编码公共类型的操作.并对结果进行总结来结束本文,而且提出了促使一种表示比另一种更容易使用的一些其它因素.

请参阅以前的文章(请参阅参考资料或本文“内容”下的便捷链接)来获取这个对比中使用的各个模型的背景资料,包含实际的版本号.还可以参阅“参考资料”一节中关于源代码下载.到模型主页的链接以及其它相关信息.

代码对比

在对不同文档表示中用法技术的这些对比中,我将显示如何在每种模型中实现三种基本操作: 根据输入流构建文档 遍历元素与内容,并做一些更改: 从文本内容中除去前导与尾随的空白. 如果结果文本内容为空,就删除它. 否则,将它包装到父元素的名称空间中一个名为“text”的新元素中. 将已修改的文档写入输出流

这些示例的代码是以我在上篇文章中使用的基准程序为基础的,并进行了一些简化.基准程序的焦点是为了显示每个模型的最佳性能;对于本文,我将尝试显示在每种模型中实现操作的最简便方法.

我已经将每个模型的示例结构化为两个独立的代码段.第一段是读取文档.调用修改代码与编写已修改文档的代码.第二段是真正遍历文档表示与执行修改的递归方法.为避免分散注意力,我已在代码中忽略了异常处理.

您可以从本页底部参考资料一节链接到下载页,以获取所有样本的完整代码.样本的下载版本包括一个测试驱动程序,还有一些添加的代码用于通过计算元素.删除与添加的个数来检查不同模型的操作.

即使您不想使用 dom 实现,但还是值得浏览下面对 dom 用法的描述.因为 dom 示例是第一个示例,所以与后面的模型相比,我用它来探究有关该示例的一些问题与结构的更详细信息.浏览这些内容可以补充您想知道的一些细节,如果直接阅读其它模型之一,那么将错过这些细节.

dom

dom 规范涵盖了文档表示的所有类型的操作,但是它没有涉及例如对文档的语法分析与生成文本输出这样的问题.包括在性能测试中的两种 dom 实现,xerces 与 crimson,对这些操作使用不同的技术.清单 1 显示了 xerces 的顶级代码的一种形式.

清单 1. xerces dom 顶级代码 1 // parse the document from input stream ("in") 2 domparser parser = new domparser(); 3 parser.setfeature("http://xml.org/sax/features/namespaces", true); 4 parser.parse(new inputsource(in)); 5 document doc = parser.getdocument(); 6 // recursively walk and modify document 7 modifyelement(doc.getdocumentelement()); 8 // write the document to output stream ("out") 9 outputformat format = new outputformat(doc); 10 xmlserializer serializer = new xmlserializer(out, format); 11 serializer.serialize(doc.getdocumentelement());

正如我在注释中指出的,清单 1 中的第一块代码(第 1-5 行)处理对输入流的语法分析,以构建文档表示.xerces 定义了 domparser 类,以便从 xerces 语法分析器的输出构建文档.
...   下一页

 ·atl窗口类源代码学习笔记    »显示摘要«
    摘要:atl 窗口类源代码学习笔记 本文是自己学习源代码的总结,在写作过程和察看代码寻找资料的时候,找到了些文章。 可参考: wtl流程分析-初稿 atl中的thunk机制学习 1,cwindow atl有一个专门为窗口设计的基础类,可以做全部的窗口操作,这就是cwindow。它实际上就是对hwnd操作的一个包装类,对几乎所有以hwnd句柄为第......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE