文档库 最新最全的文档下载
当前位置:文档库 › 窃听器

窃听器

装在火柴盒里的窃听器

几乎每个电子爱好者都有利用无线电的雄心壮志,不论遥控一架飞机或者与外界通讯,都表达他

们发射的期望讯号。

这里向各位介绍的一部袖珍发射机,十分适合初学者,电路简单易制,造价低廉,输出功率不超过5-8mW,发射范围在房屋区可至300米左右,用一部普通的FM收音机接收,显示其灵敏度和清晰度俱佳,电路设计中最富挑战性的部份就是只需用3V电源和半波天线便有如此的发射能力。另外,由于电路需要的零件十分之少,故可将之安放在一个火柴盒(比国内-般火柴盒大一些)里,作为窃听器,可谓神不知、鬼不觉,不过,并非限于这方面用途上,可将之安置在婴孩房、闸门或走廊通道,监视实际情况,此外亦可当作为夜间保安装置。

电路之电流损耗少于5mA,用两枚干电池可连续工作80至100小时之间。

电路在正常工作下非常稳定,频率漂移极小,测试:工作8小时之后,仍不需再校接收机。

唯一影响输出频率是电池的状况,当电池老化时,频率有轻微改变。

借这个制作,学习有关FM发送,可了解其优越的地方,特别它产生无噪声的极高质讯号,即使利用低功率发送,也很容易取得良好的范围。

电路工作原理

从图(1)电路可见分两级,一级音频放大器和一级RF振荡器。

驻极体话筒内实际藏有一枚FET,如您喜欢的话,可视之为一级,FET将话筒前振膜之电容

变化放大,这就是驻极休话筒很灵敏的原因。

音频放大级乃由其射极晶休管Q1担任,增益约20至50,将放大的讯号送往振荡级之基极。webbot bot="ImageMap" startspan rectangle="(132,291) (386, 312) downloads/qtq.sch" src="images/qtq1.gif" alt="窃听器电路图SCH点此下载" border="0" width="554" height=

"320"

webbot bot="ImageMap" i-checksum="18701" endspan

振荡级Q2工作于约88MHz之频率,这频率由振荡线圈(共5圈)和47pF电容器调整的,该频率也决定于晶体管、18pF回输电容器及还有少数偏压元件,例如470Ω射极电阻和22K基

极电阻。

电源接通时,1nF基极电容器通过22K电阻逐渐充电,而18pF则经振荡线圈的470Ω电阻充电,但更加之快,47pF电容也充电(其两端虽仅得小的电压),线圈产生磁场。

基极电压渐渐上升时,晶体管导通,并有效地将内阻并接在18pF两侧。当1nF电容充电至该极的工作电压时,就会发生好几个杂乱的周波,故此,我们假定讨论在靠近工作电压之时。

基极电压继续上升,18nF电容试图阻止射极用压的移动,到电容器内的能量耗尽及再不阻止射级移动之时,基一射极电压降低,晶体管截止,流人线圈的电流也停止,磁场衰溃。

磁场衰溃,产生一个相反方向的电压,集极电压反过来从原本的2.9V上升至超过。3V,并以相反方向47pF电容充电,这电压也影响到对18pF电容充电,及470Ω射极电阻上的电压降

使到晶休管进入更深的截止。

18pF电容充电时,射电压下跌,并跌到某一晶休管开始导通,电流流入线圈,与衰溃磁场

对抗。

线圈上之电压反转,形成集极电压下降,这个变化通过18pF电容传送到射极上,结果晶休管进入更深的导通,把18pF电容短路,周期再开始重复。

故此,Q2在此形成一个振荡,产生88MHz的交流讯号。放大后之音频讯号经0.1uF电容溃入到!Q2之基极,改变振荡频率,产生所需的FM讯号。

制作过

Activiti 监听器的配置使用

Activiti 监听器的配置使用 一)流程监听器的配置 此监听器的作用是记录流程的启动和结束事件日志,详细参考类 cn.bc.workflow.activiti.delegate.ProcessLogListener 用Activiti Designer打开流程图,点击空白处,在Properties的Listeners中如下配置流程的start和end两个事件: 二)任务监听器的配置 此监听器的作用是记录任务的创建、分派和完成的事件日志,详细参考类 cn.bc.workflow.activiti.delegate.TaskLogListener 用Activiti Designer打开流程图,点击要配置的任务节点,在Properties的Listeners中如下配置任务的事件监听:

如下是自动将任务分配到岗位或岗位内用户的任务监听器的配置: 详见类cn.bc.workflow.activiti.delegate.Assign2GroupUserListener,监听器在流程图中需要配置为"java class"类型,Fields参数中有两种配置方式:1)岗位名称+保存组织ID的流程变量名(全局变量),2)岗位编码。 监听器会根据配置方式先获取岗位,然后自动获取岗位内的用户信息,如果岗位内只有一个用户,就直接将任务分配给此用户,否则分配给岗位。

三)流向或网关监听器的配置 此监听器的作用是记录流向的执行事件日志,在平台中是可选的,视具体情况按需配置,详细参考类cn.bc.workflow.activiti.delegate.FlowLogListener 用Activiti Designer打开流程图,点击要配置的流向或网关,在Properties的Listeners 中类似任务监听器的方式进行配置即可:

Java+Swing+常用事件和监听器接口

Swing 常用事件和监听器接口 AncestorEvent AncestorListener ancestorAdded(AncestorEvent e) ancestorMoved(AncestorEvent e) ancestorRemoved(AncestorEvent e) CaretEvent 通知感兴趣的参与者事件 源中的文本插入符已经发 生更改 CaretListener caretUpdate(CareEvente) ChangeEvent 通知感兴趣的参与者事件 源中的状态已经发生更改 ChangeListener stateChanged(ChangeEvent e) HyperlinkEvent 通知感兴趣的参与者发生 了与超文本链接有关的事 情 HyperlinkListener hyperlinkUpdate(HyperlinkEvent e) InternalFrameEvent 以事件源的形式添加对J InternalFrame对象的支持的 A WTEvent InternalFrameListener internalFrameActivated(InternalFrameEvent e) internalFrameClosed(InternalFrameEvent e) internalFrameClosing(InternalFrameEvent e) internalFrameDeactived(InternalFrameEvent e) internalFrameDeiconified(InternalFrameEvent e) internalFrameIconified(InternalFrameEvent e) internalFrameOpened(InternalFrameEvent e) ListDataEvent 定义一个列表更改的事件ListDataListener contentsChanged(ListDataEvent e) intervalAdded(ListDataEvent e) intervalRemoved(ListDataEvent e)

监听器与过滤器

监听器与过滤器 监听器简介 什么是监听器 1.能监听某个对象的状态变化的组件 2.监听域对象的变化 监听器相关的概念 1.事件源:被监听的对象- request、session、servletContext 2.监听器:监听事件源的对象- 8个监听器 3.注册监听器:监听器与事件源相绑定 4.响应行为:监听到事件源变化时,去做什么事情 监听器划分 1.三个监听域对象的创建与销毁ServletContextListener HttpSessionListener ServletRequestListener 2.三个监听域对象当中属性变化ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener

域监听器 ServletContext域监听器监听ServletContext域的创建与销毁的监听器ServletContextListenerServletContext域生命周期:服务器启动创建、服务器关闭销毁监听器的编写步骤: 1.编写一个监听器类去实现监听器接口 2.覆盖监听器的方法 3.需要在web.xml中进行配置 作用 1.初始化的工作:初始化对象、初始化数据、加载数据库驱动、连接池的初始化 2.加载一些初始化的配置文件 3.任务调度

HttpSessionListener 监听HttpSession域的创建与销毁的监听器HttpSessionListener HttpSession的生命周期:第一次调用request.getSession时创建、服务器关闭session 过期或手动销毁 应用场景:记录访问人数 过滤器介绍 什么是过滤器 1.filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行 2.可以对目标资源访问前后进行逻辑处理 过滤器编写步骤 1.编写一个过滤器的类实现Filter接口 2.实现接口中尚未实现的方法(主要是DoFilter方法)

自定义监听器监听数据库中数据的变化

自定义监听器监听数据库中数据的变化 此程序只是一个简单的例子,主要监听数据库中Location的数据。 先写一个Event继承EventObject Java代码 package com.lbx.listong.servlet; import java.util.EventObject; public class LocationEvent extends EventObject { private static final long serialVersionUID = 1L; private Object obj; public LocationEvent(Object source) { super(source); obj = source; } public Object getSource(){ return obj; } } 然后写一个接口继承EventListener Java代码

package com.lbx.listong.servlet; import java.util.EventListener; public interface LocationListener extends EventListener { public void locationEvent(LocationEvent le); } 测试这个监听,实现他的接口 Java代码 package com.lbx.listong.servlet; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import com.lbx.listong.service.LocationService; import com.lbx.listong.thread.ListThread; public class TestLocationListener implements LocationListener { private LocationService ls; public TestLocationListener() { ls = new LocationService(); ls.addLocationListener(this);

第八讲 AWT和事件监听

第八讲AWT和事件监听打印本页 1 基本概念 下面几讲,我们就来学习AWT的各种容器和组件,并重点学习AWT的事件监听和处理方法。由于学习事件需要用到一些简单的构件,我们先学习几个简单的构件。现在,我们先来介绍AWT里面几个重要的概念:构件,容器,布局管理器和事件监听(AWT P4)。 1.1构件是图形用户界面的最小单位之一,它里面不再包含其他的成分. 构件的作用是完成与用户的一次交互,包括接受用户的一个命令,接受用户的一个文本输入,向用户显示一段文本或一个图形等。常用的构件有: 按钮构件 项目选择构件:复选框(Checkbox)列表(List或Choice) 文本构件:文本框文本区 对话框构件:对话框文件对话框提示框帮助 菜单构件:弹出式菜单复选框菜单 1.2容器 容器是用来组织构件的单元。常用的容器有:面板、窗口。 1.3布局管理器: 布局管理器用来布置容器和容器中的各个构件,比如他们的大小、位置等。AWT提供了几种标准的布局管理器。 1.4事件监听 要使点击鼠标、敲打键盘等实现特定的动作,我们需要捕捉事件并且加以实现。AWT里典型的事件有:鼠标事件、鼠标移动事件、键盘事件、窗口事件等。 我们通过学习最基本的构件和容器(标签、按钮和面板)来粗略理解这些概念。标签和按钮是显示标签的简单构件;而面板是AWT提供的最基本的容器。 2 几个简单的构件和容器 标签(https://www.wendangku.net/doc/ca12751999.html,bel) 标签用来显示文本。 演示(StarterApplet) 面板(java.awt.Panel) 面板是一个通用的容器,在上面可以放置各种构件。 我们经常用的Applet类,其实就是面板的一个子类 按钮(java.awt.Button) 按钮具有三维外型,当它们被激活时触发按钮事件,用户可以根据按钮事件,做出适当的反应,比如执行一系列操作等。 演示 3 事件 AWT有两种事件处理模型:一种是基于继承的模型,它在AWT1.1或以前的版本中使用,现在已经逐渐被淘汰;另一种是基于授权的事件模型。我们主要学习给予授权的事件模型。 授权事件模型的原理很简单:事件源激发事件、事件监听器监听事件,最后执行事件。可以通过调用addXYZListener(XYZListner)方法向构件注册监听器。把监听器加到构件中以后,如果构件激发相应类型的事件,

实例讲解oracle监听口令及监听器安全

很多人都知道,oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器。 相关示例: d:>lsnrctl stop eygle lsnrctl for 32-bit windows: version 10.2.0.3.0 - production on 28-11月-2007 10:02:40 copyright (c) 1991, 2006, oracle. all rights reserved. 正在连接到(description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521)) (connect_data=(service_name=eygle))) 命令执行成功 大家可以发现,此时缺省的监听器的日志还无法记录操作地址: no longer listening on: (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) 28-nov-2007 09:59:20 * (connect_data=(cid=(program=)(host=)(user=administrator))(command=stop) (arguments=64)(service=eygle)(version=169870080)) * stop * 0 为了更好的保证监听器的安全,大家最好为监听设置密码: [oracle@jumper log]$ lsnrctl lsnrctl for linux: version 9.2.0.4.0 - production on 28-nov-2007 10:18:17 copyright (c) 1991, 2002, oracle corporation. all rights reserved. welcome to lsnrctl, type help for information. lsnrctl> set current_listener listener current listener is listener lsnrctl> change_password old password: new password: reenter new password: connecting to (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) password changed for listener the command completed successfully lsnrctl> set password password: the command completed successfully lsnrctl> save_config connecting to (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) saved listener configuration parameters. listener parameter file /opt/oracle/product/9.2.0/network/admin/listener.ora old parameter file /opt/oracle/product/9.2.0/network/admin/listener.bak the command completed successfully 在我们设置密码后,远程操作将会因缺失密码而出现失败: d:>lsnrctl stop eygle lsnrctl for 32-bit windows: version 10.2.0.3.0 - production on 28-11月-2007 10:22:57 copyright (c) 1991, 2006, oracle. all rights reserved.

JSP中的Filter拦截器和Listener监听器

JSP中的Filter过滤器和Listener监听器 1. JSP中的过滤器 1.1 什么是过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet 或JSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择: (1)以常规的方式调用资源(即,调用servlet或JSP页面)。 (2)利用修改过的请求信息调用资源。 (3)调用资源,但在发送响应到客户机前对其进行修改。 (4)阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。 1.2 过滤器的基本原理 过滤器可以对客户的请求进行处理,处理完成后,它会交给下一个过滤器处理。这样,客户的请求在“过滤器链”里逐个处理,直到请求发送到目标为止。例如,某网站里有提交“修改业务数据”的网页,当用户填写完修改信息并提交后,服务器在进行处理时需要做两项工作:判断客户端的会话查看该用户是否有修改权限;对提交的数据进行统一编码。这两项工作可以在由两个过滤器组成的过滤链里进行处理。当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功,将把视图派发到指定的错误页面。 1.3 过滤器的使用 开发Servlet过滤器的步骤如下:(1)编写实现Filter接口的类;(2)在web.xml中配置Filter。 1.3.1 实现Filter接口类 Filter接口定义了以下方法: 成员描述 destory() 由Web容器调用,初始化此Filter。 init(FilterConfig filterConfig) 由Web容器调用,初始化此Filter。 doFilter(ServletRequest request, 具体过滤处理代码,其中FilterChain参数非常重要,允许通ServletResponse response,FilterChain chain) 过当前过滤器时须要调用FilterChain.doFilter() 下面示例实现一个权限过滤器,若用户尚未登录(Session中没有保存用户信息),将回到登录页面;若已经登录则继续该请求。 public class SecurityFilter implements Filter {

使用监听器的三种方法

使用监听器的三种方法.txt生活是过出来的,不是想出来的。放得下的是曾经,放不下的是记忆。无论我在哪里,我离你都只有一转身的距离。一、使用监听器的第一种方式 class cal implements ActionListener{//第一点:在类的后面写实现XXListener button1.addActionListener(this);//第二点:为某个组件注册XXListener //第三点:为XXListener中的监听器写实现的代码。 public void actionPerformed(ActionEvent e){ ..... } 二、使用监听器的第二种方式 //在为某组件注册监听器的同时,创建XXListener的匿名对象,并同时在该匿名对象后面写实现 //该监听器的抽象方法。 class cal { button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { ........ } }); //第二点:为某个组件注册XXListener 三、使用监听器的第三种方式 class cal { //注册XXListener,参数为XXListener 的一对象mylistener button1.addActionListener(mylistener);

//创建该XXListener监听器对象mylistener,并且写出其抽象方法的实现代码 ActionListener mylistener= new ActionListener() { public void actionPerformed(ActionEvent evt) { ........ } };

键盘监听器与鼠标监听器

键盘监听器 键盘监听器KeyListener用来监听键盘事件。键盘事件有三种:KEY_PRESSED键按下了,KE Y_RELEASED键松开了,KEY_TYPED键按过了。每个键都有一个键码,普通键的键码就是ASC II码。键码可通过int getKeyCode()方法获得。Java设置了一种“虚拟键码”(Virtual K ey Code),用“VK_”作为前缀,例如VK_G。下面是某些特殊键的虚拟键码。 VK_LEFT/VK_RIGHT 左右方向键VK_CONTROL Ctrl键 VK_KP_UP 小键盘向上VK_ATL Alt键 VK_PAUSE 暂停键VK_SHIFT Shift键 VK_NUMBER0 小键盘数字0 VK_F1 功能键F1 VK_0 数字键0 VK_B 字母键B 虚拟键码对应的是键位,不区分大小写。要想知道大小写还必须查看修饰键(modifier key)。这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONT ROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。 监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt), keyTyped(KeyEvent evt),分别用于相应事件发生后的处理。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。 除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKey Text(code)方法得到输入的字符串。用isShiftDown()判断shift键是否被按下等。当按下Control键时getKeyText返回的是“ctrl",Alt和Shift也类似。 下面的例子演示得到键码和字符的方法,在命令行上显示结果。 例15 本例程演示键盘监听器后键码的用法。 /// // KeyEvt.java

事件监听器

不同的事件源可以产生不同类别的事件。例如,按钮可以发送一个ActionEvent 对象,而窗口可以发送WindowEvent对象。 AWT时间处理机制的概要: 1.监听器对象是一个实现了特定监听器接口(listener interface)的类的实例。 2.事件源是一个能够注册监听器对象并发送事件对象的对象。 3.当事件发生时,事件源将事件对象传递给所有注册的监听器。 4.监听器对象将利用事件对象中的信息决定如何对事件做出响应。 下面是监听器的一个示例: ActionListener listener = ...; JButton button = new JButton("OK"); button.addActionListener(listener); 现在,只要按钮产生了一个“动作事件”,listener对象就会得到通告。对于按钮来说,正像我们想到的,动作事件就是点击按钮。 为了实现ActionListener接口,监听器类必须有一个被称为actionPerformed 的方法,该方法接收一个ActionEvent对象参数。 class MyListener implements ActionListener { ...; public void actionPerformed(ActionEvent event) { //reaction to button click goes here } } 只要用户点击了按钮,JButton对象就会创建一个ActionEvent对象,然后调用listener.actionPerformed(event)传递事件对象。可以将多个监听器对象添加到一个像按钮这样的事件源中。这样一来,只要用户点击按钮,按钮就会调用所有监听器的actionPerformed方法。 实例:处理按钮点击事件 为了加深对事件委托模型的理解,下面以一个响应按钮点击事件的简单示例来说明所需要知道的细节。在这个示例中,想要在一个面板中放置三个按钮,添加三个监听器对象用来作为按钮的动作监听器。 在这个情况下,只要用户点击面板上的任何一个按钮,相关的监听器对象就会接收到一个ActionEvent对象,它表示有个按钮被点击了。在示例程序中,监听器对象将改变面板的背景颜色。 在演示如何监听按钮点击事件之前,首先需要讲解一下如何创建按钮以及如何将他们添加到面板中。 可以通过在按钮构造器中指定一个标签字符串、一个图标或两项都指定来创建一个按钮。下面是两个示例: JButton yellowButton = new JButton("Yellow"); JButton blueButton = new JButton(new ImageIcon("blue-ball.gif")); 将按钮添加到面板中需要调用add方法:

Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置

Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置 分类:Oracle 基础知识2009-11-24 10:12 8315人阅读评论(7) 收藏举报 一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。 二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。 本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。 三、Oracle网络连接配置方法 配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle 服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如: $ netmgr Windows下启动Net Manager图形窗口如下图示:

弄懂事件源、事件对象和监听接口

事件源:组件,例如Button 事件对象:event,例如MouseEvent类的对象 事件监听接口:EventListener,例如MouseListener EventListener 接口是处理事件的主要方法。用户实现EventListener 接口,并使用AddEventListener 方法在EventTarget 上注册其侦听器。用户还应该在使用完侦听器后从其EventTarget 移除EventListener。 MouseListener用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。(要跟踪鼠标移动和鼠标拖动,请使用MouseMotionListener。) 旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类MouseAdapter(仅重写所需的方法)。 然后使用组件的addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将MouseEvent 传递给该方法。 每个事件类型都有相对应的监听者接口。想要接受WindowEvent吗?那就实现WindowListener接口。 一般会用到事件监听接口中的某一种或几种方法,所以应该一般会用扩展抽象类MouseAdapter的方法。那是怎么个扩展法呢??? 虽然鼠标事情只有MouseEvent一种事件对象,却有不同的事件方法来表示不同类型的鼠标事件。 很重要的一句话:"实现监听接口让按钮有一个回头调用程序的方法。Interface正是声明调用(call-back)方法的地方" 下面用button、ActionEvent和ActionListener来说明事件源、事件对象和事件监听接口之间的关系: 1.先来看button怎样来添加一个监听接口 addActionListener(ActionListener l) ActionListener:继承AWTEvent,指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener 对象,这些对象是使用组件的addActionListener 方法注册的,用以接收这类事件。 因为ActionListener是个接口,所以要用类来继承它,然后实现它的actionPerformed方法。actionPerformed方法定义如下: void actionPerformed(ActionEvent e)

Oracle 监听器 Listener资料

Oracle 监听器Listener资料 Oracle 监听器Listener 是一个重要的数据库服务器组件,在整个Oracle 体系结构中,扮演着重要的作用。它负责管理Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,下面的部分,会从几个方面对监听器进行简单介绍。 1.监听器的功能 从当前的Oracle 版本看,Listener 主要负责下面的几方面功能: 1. 监听客户端请求。监听器运行在数据库服务器之上,与Oracle 实例(可为多个) 相关关联,是一个专门的进程process,在Windows 的服务项目或者Linux 的运行进程列表中,都会看到对应的运行进程。Windows 上名为TNSLSNR,Linux/Unix 平台上是lsnrctl。监听器守候在服务器制定端口(默认为:1521),监听客户端的请求。 2. 为客户端请求分配Server Process。监听器只负责接听请求,之后将请求转接给 Oracle Server Process。在Oracle 的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程Server Process(也称为影子进程)作为代理。监听器接受到请求之后,就向操作系统(或者Dispatcher 组件)要求fork (或分配)一个Server Process 与客户端相连。 3. 注册实例服务。本质上讲,Listener 是建立实例和客户端进程之间联系的桥梁。 Listener 与实例之间的联系,就是通过注册的过程来实现的。注册的过程就是实例告诉监听器,它的数据库数据库实例名称instance_name 和服务名

黑马程序员安卓教程:案例-短信监听器

黑马程序员安卓教程:案例-短信监听器 一、需求 系统接收到短信时会将该事件以有序广播(部分自定义的ROM可能已经修改了这个策略,比如:小米的MIUI系统)的形式发送出去,因此我们只需要自定义一个BroadCastReceiver监听该广播(android.provider.Telephony.SMS_RECEIVED)即可监听到短信的到来。由于该广播是有序的,因此如果将我们自定义的BroadCastReceiver配置了较高的优先级,那么我们就能先于系统短信app接收到该广播,然后终止该广播,从而就实现了短信拦截功能。 通过该案例我们可以学到: 1、什么是有序广播? 2、如 何终止有序广播3、如何从 广播中获取短信4、广播的 优先级概念 在该案例中我们要做一个类似短信黑名单的应用,主界面提供一个EditText和一个Button,让用户输入一个“黑名单” ,点击保存之后,如果该号码发短信过来,那么我们的应用就将其拦截。 布局界面很简单,如【文件1-6】所示。 【文件1-6】activity_main.xml 1. 9

5. 6. 11. 17. 18. 三、代码 在该工程中总共用到了两个类,一个是主界面对应的MainActivity,另外一个是广播接收者SmsListenerReceiver。 【文件1-7】MainActivity.java 1. package com.itheima.smslistener; 2. 3.import android.os.Bundle; 4.import android.text.TextUtils; 5.import android.view.View; 6.import android.widget.EditText; 7.import android.widget.Toast; 8.import android.app.Activity; 9.import android.content.SharedPreferences; 10./** 11.* 让用户输入要拦截的号码 12.* 13.* @author wzy2015-11-19 14.* 15.*/ 16.public class MainActivity extends Activity{ 17. 18.private EditText et_num; 19.private SharedPreferences sp; 20. 21.@Override 22.protected void onCreate(Bundle savedInstanceState){

Android事件监听器

第一种:匿名内部类作为事件监听器类 大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适,实际上,这种形式是目前是最广泛的事件监听器形式。上面的程序代码就是匿名内部类来创建事件监听器的!!! 对于使用匿名内部类作为监听器的形式来说,唯一的缺点就是匿名内部类的语法有点不易掌握,如果读者java基础扎实,匿名内部类的语法掌握较好,通常建议使用匿名内部类作为监听器。 第二种:内部类作为监听器 将事件监听器类定义成当前类的内部类。1、使用内部类可以在当前类中复用监听器类,因为监听器类是外部类的内部类,2、所以可以自由访问外部类的所有界面组件。这也是内部类的两个优势。上面代码就是内部类的形式!! 第三种:Activity本身作为事件监听器

这种形式使用activity本身作为监听器类,可以直接在activity类中定义事件处理器方法,这种形式非常简洁。但这种做法有两个缺点:(1)这种形式可能造成程序结构混乱。Activity 的主要职责应该是完成界面初始化;但此时还需包含事件处理器方法,从而引起混乱。(2)如果activity界面类需要实现监听器接口,让人感觉比较怪异。 上面的程序让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器对象即可。 第四种:外部类作为监听器 ButtonTest类 当用户单击button按钮时,程序将会触发MyButtonListener监听器 外部MyButtonListener类 使用顶级类定义事件监听器类的形式比较少见,主要因为如下两个原因: 1、事件监听器通常属于特定的gui界面,定义成外部类不篮球提高程序的内聚性。 2、外部类形式的事件监听器不能自由访问创建gui界面的类中的组件,编程不够简洁。 但如果某个事件监听器确实需要被多个gui界面所共享,而且主要是完成某种业务逻辑的实现,则可以考虑使用外部类的形式来定义事件监听器类。 第五种:直接绑定到标签 Android还有一种更简单的绑定事件监听器的的方式,直接在界面布局文件中为指定标签绑定事件处理方法。 对于很多Android标签而言,它们都支持如onClick、onLongClick等属性,这种属性的属性值就是一个形如xxx (View source) 的方法的方法名。在布局文件中为button添加属性,如一代码:

java_listener监听器教程及实例

一.基础知识 JSP/Servlet 中的事件处理写过AWT或Swing程序的人一定对桌面程序的事件处理机制印象深刻:通过实现Listener接口的类可以在特定事件(Event)发生时,呼叫特定的方法来对事件进行响应。 其实我们在编写JSP/Servle程序时,也有类似的事件处理机制,所不同的是在JSP/Servlet 中是在web.xml中注册Listener,由Container在特定事件发生时呼叫特定的实现Listener 的类。 1. Servlet中的Listener和Event: 在JSP 2.0/Servlet 2.4中,共有八个Listener接口,六个Event类别。ServletContextListener接口 [接口方法] contextInitialized()与 contextDestroyed() [接收事件] ServletContextEvent [触发场景] 在Container加载Web应用程序时(例如启动 Container之后),会呼叫contextInitialized(),而当容器移除Web应用程序时,会呼叫contextDestroyed ()方法。ServletContextAttributeListener [接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved() [接收事件] ServletContextAttributeEvent [触发场景] 若有对象加入为application(ServletContext)对象的属性,则会呼叫attributeAdded(),同理在置换属性与移除属性时,会分别呼叫attributeReplaced()、attributeRemoved()。 HttpSessionListener [接口方法] sessionCreated()与sessionDestroyed () [接收事件] HttpSessionEvent [触发场景] 在session (HttpSession)对象建立或被消灭时,会分别呼叫这两个方法。

Java监听器机制ServletContextListener实现执行某方法函数

Java监听器机制ServletContextListener实现执行某方法/函数 在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件、初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作。 在工作中遇到了项目初始数据需要跟其他项目同步的问题,也就是说在项目部署后,启动的时候就要同步另外一个项目的数据,这里写了个简单的实例,用的是监听器机制,创建一个类实现ServletContextListener接口,实现里面的contextInitialized和contextDestroyed方法,[java] view plain copy packagecom.test. listener; importjavax.servlet.ServletContextEvent; importjavax.servlet.ServletContextListener; //创建的类名根据需要定义,但一定要实现ServletContextListener接口 public class WebContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub //这里可以放你要执行的代码或方法 } @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } } 其中contextInitialized方法是项目在启动初始化的时候就会执行的方法,contextDestroyed是在消亡的时候执行的方法,这里我们需要把随项目启动时执行的代码放在contextInitialized 方法中。 然后在web.xml中为这个监听器添加配置, [html] view plain copy com.test. listener.WebContextListener 其中listenner-class配置的是上面定义的监听器类路径 这样就就可以了,部署好项目,启动就可以执行contextInitialized里面的代码了。 如果你需要在项目启动的时候加载解析你自定义的配置文件,可以将加载解析配置文件的代码放在contextInitialized方法里面,这样在你项目启动的时候就可以解析你配置文件里的信

监听器代码

web.xml中listener的作用及使用 一.WebContextLoaderListener 监听类 它能捕捉到服务器的启动和停止,在启动和停止触发里面的方法做相应的操作! 它必须在web.xml 中配置才能使用,是配置监听类的 二.下面是搜集的一些listener方面的知识 简例一 监听用户上线与退出,显示在线用户 1、登陆页面Login.jsp <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %> <% session=request.getSession(false); if(session!=null)session.invalidate(); %>

用户名:
2、控制页面(只是为了说明监听器问题,所以简单了点...)isOnline.jsp <%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %> <% session=request.getSession();

相关文档
相关文档 最新文档