public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri,举例如下:
假设UriMatcher 里注册的Uri共有一下类型:
1 、content://com.qin.cb/student (学生)
2 、content://com.qin.cb/student/#
3、 content://com.qin.cb/student/schoolchild(小学生,派生的Uri)
假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的 Uri 为
content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,
但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。
你说的是服务器端的监听是吧。listener.ora的文件中,有一个oracle_sid的字段,这个字段写的是oracle的sid,你和数据库的sid去对比,就知道监听的是哪一个数据库。
或者通过lsnrctl status能够调出监听状态,下面有四个监听正太,其中我忘了第几个,那个也是数据库的sid,跟数据库对比下,就知道了。
一本来说服务器监听的都是本机的数据库。 java监听器(Listener)和Servlet是两个不同功能的JavaWeb组件。
监听器是实现了javax.servlet.ServletContextListener这个接口的类,里面有两个方法需要你在子类实现:
public void contextDestroyed(ServletContextEvent evt) {
//监听器被销毁的时候调用
}
public void contextInitialized(ServletContextEvent evt) {
//监听启动的时候调用,初始化servletcontext事件
}
创建好后,配置到web.xml中即可。
对于Servlet自己没有监听器,只有当用户请求Servlet映射的路径时会触发Servlet对应的方法来处理,以此来响应客户的请求。
监听参数是用来初始化监听上下文使用的,不能被其他入口所调用。
<!--Spring ApplicationContext载入-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring ApplicationContext配置文件的路径,此参数用于后面的Spring-Contextloader -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!-- 系统服务初始化 -->
<listener>
<listener-class>pams.servlet.SysInitServlet</listener-class>
</listener>
方法1:可以利用ServletContext类的对象application解决,这个属于整个web应用都公用的内部对象。例如在监听器中public class GetConnListener implements ServletContextListener {
//例如这个是要传的数据
String data="0"
//当此web应用被访问后启用该方法
public void contextInitialized(ServletContextEvent sce) {
//创建application
ServletContext application=sce.getServletContext()
//将数据存入application的属性中
application.setAttribute("Data",data)}
然后再JSP页面,的JSP脚本中写入
String data=(String)sapplication.getAttribute("Data")
out.print(data)
就能狗获取和输出这个数据了。
方法二便是直接在JAVA中把数据存入数据库,JSP从数据库中读出数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)