目录:
视频: 13 DOM方式解析XML深入详解 2024
单词 事件 会唤起各种图像。对于一个非程序员来说,事件就是“发生的事情。 “如果你已经习惯了用Java处理窗口和框架,那么你可能会认为事件是唤醒一段代码的事件。例如,用户的鼠标点击或击键唤醒设置选项的代码并显示OK框。点击或按键本身被称为 事件 ,因为它独立于正在运行的程序而发生。只有用户知道他或她将何时按下该按钮。而当按钮被按下时,Java程序的某个部分就会唤醒并处理这种情况。这种情况被称为 事件驱动的编程 。
<! - 1 - >事件驱动的编程
SAX程序是 事件驱动的 。例如,你上床睡个好觉。你伸手去设置你的闹钟,然后安顿下来,闭上你的眼睛,并在几个小时内昏迷不醒。然后发生一件重要事件:一天中的某个时间到达。当事件发生时,闹钟会进入“唤醒”模式,并使您感到非常嘈杂,从而使您摆脱安宁的睡眠。
<! - 2 - >这是另一种情况。你是一个忙碌的行政人员,你会出去几个小时,但你不想错过任何重要的业务。在离开办公室之前,你告诉你的助理:“如果有什么重要的事情要打电话给我。 “发出这个命令就像设置闹钟一样。如果发生事件,你要告诉你的助手(你的闹钟)叫醒你。向助理(或闹钟)发出这个请求叫做 注册 。在任何一种情况下,你都注册一个唤醒服务。注册后,你可以追求自己悠闲的非活动,忽视所有真实的业务,直到发生某些事件。然后…
戒指,戒指你的手机在给你打电话。 “你好? “ “你好。这是你的助手。我有第一季度的销售数字。他们是100万,400万,200万。 “
”我们来看看。总共700万,“你说。 “我会在我的PalmPilot上记下它。谢谢。 “ 你挂了。
几秒钟后,你又接到一个电话。 “大型雄鹿公司的总裁想要完成这笔交易。他们在说1000万美元。 “
<! --1 - >
“唔,”你回应。 “这将使我们今年迄今为止的收入高达17百万美元。我会将这些信息存储在我的电子表格应用程序中。感谢您致电。 “这些交互中的每一个都被称为
回调 。今天早些时候,当你向助理登记你的愿望时,你要求回电。然后,每当发生事件时,助理都会回电通知您有关事件。在Java编程方面,助手会调用您的许多方法之一(您的一个Java子程序)。 <!事件驱动程序设计的本质
事件驱动程序设计由三部分组成:注册:
注册您希望在事件发生时得到通知。你用另外一段代码注册了这个愿望 - 另一个对象,通常是你导入的东西(比如一段代码是其他人的API的一部分)。然后这个对象从幕后观看你指定事件的发生。
- 回调: 另一段代码执行回调。你的一个方法被调用。
- 两种代码 区分
激活
代码和 被动 代码是有用的: 激活代码有一个主要方法。有效代码一旦开始运行,就占据中心舞台。活动代码包含控制整个球赛的执行线程。被动代码就在那里,等待被调用。一个被动的Dice类在别的代码调用Dice之前什么也不做。滚()。 现在,您可能认为被动代码是事件驱动编程所需要的,但事实并非如此。对于事件处理,您需要这个注册步骤。被动代码首先通过注册一些其他的代码。为了巩固这个注册的概念,从鼠标,窗口和按钮的屏幕世界中思考一个例子。您创建一个窗口或框架。你希望你的框架响应鼠标点击,所以你发出以下命令:
- 按钮。 addMouseListener将(本); 该命令用按钮注册您的框架。该命令实际上说,
- 每当发生鼠标事件时,请调用其中一个框架的鼠标处理方法 。之后,当用户单击鼠标时,框架会得到一个回调。计算机调用框架的mouseClicked方法。
SAX事件
当然,SAX是事件驱动的,但这并不意味着SAX程序等待鼠标点击。相反,SAX代码遵循最近几段中描述的注册事件回调模型。每个SAX程序都有两个必不可少的代码:
您写的一段代码 - 称为
处理程序 。 (您的处理程序可以扩展一个预先编写的DefaultHandler类。)
处理程序就像前一节中的百万美元执行程序。
一段通常不写的代码 -
- 解析器 。解析器扮演着行政助理的角色。 Java 1.4 API有一个内置的解析器。你创建这个解析器的一个 实例 ,然后用这个解析器实例注册你的处理器。实际上,当事件发生时,您告诉实例回调您的处理程序。任何与XML有关的东西都是新的,并且还处于不断变化的状态。正因为如此,这个术语是以一些奇特的方式拼凑在一起的。在开发SAX版本2的同时,一些技术人员举行了新的化妆节。通常称为“解析器”的东西包含在名为XMLReader的Java接口中。曾经有一个名为org的类。 XML。萨克斯。解析器,但是这个类已经被 弃用了
- (这意味着你应该把它从鞋底上刮掉)。为了使事情更复杂一些,还有另外一个解析工具,javax。 XML。解析器。 SAXParser的。你使用这个SAXParser来使自己成为一个XMLReader。运气好的话,你很快就会习惯这个令人费解的术语。现在,请记住,所谓的“解析器”通常是XMLReader的一个实例。 注册和回调场景是使SAX事件驱动的原因。现在有趣的是,一个SAX事件不是有形的。 SAX事件不会提醒您按键或点击按钮。在SAX中,解析器从上到下扫描一个XML文档。每当解析器遇到一些有趣的事情时,解析器就会触发事件并调用处理程序。然后,由处理者来处理这个有趣的事情。