「java监听容器」java中监听

博主:adminadmin 2023-01-17 09:21:07 418

本篇文章给大家谈谈java监听容器,以及java中监听对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用java实现自动监听处理jsp页面的

一、监听域对象中属性的变更的监听器

域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。  

这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。

1.1、attributeAdded 方法

当向被监听对象中增加一个属性时,web容器就调用事件监听器的attributeAdded方法进行响应,这个方法接收一个事件类型的参数,监听器可以通过这个参数来获得正在增加属性的域对象和被保存到域中的属性对象

各个域属性监听器中的完整语法定义为:

public void attributeAdded(ServletContextAttributeEvent scae)

public void attributeReplaced(HttpSessionBindingEvent hsbe)

public void attributeRmoved(ServletRequestAttributeEvent srae)

1.2、attributeRemoved 方法

当删除被监听对象中的一个属性时,web容器调用事件监听器的attributeRemoved方法进行响应

各个域属性监听器中的完整语法定义为:

public void attributeRemoved(ServletContextAttributeEvent scae)

public void attributeRemoved (HttpSessionBindingEvent hsbe)

public void attributeRemoved (ServletRequestAttributeEvent srae)

1.3、attributeReplaced 方法

当监听器的域对象中的某个属性被替换时,web容器调用事件监听器的attributeReplaced方法进行响应

各个域属性监听器中的完整语法定义为:

public void attributeReplaced(ServletContextAttributeEvent scae)

public void attributeReplaced (HttpSessionBindingEvent hsbe)

public void attributeReplaced (ServletRequestAttributeEvent srae)

1.4、ServletContextAttributeListener监听器范例:

编写ServletContextAttributeListener监听器监听ServletContext域对象的属性值变化情况,代码如下:

package me.gacl.web.listener;

import java.text.MessageFormat;

import javax.servlet.ServletContextAttributeEvent;

import javax.servlet.ServletContextAttributeListener;

/**

* @ClassName: MyServletContextAttributeListener

* @Description: ServletContext域对象中属性的变更的事件监听器

* @author: 孤傲苍狼

* @date: 2014-9-11 下午10:53:04

*

*/

public class MyServletContextAttributeListener implements

ServletContextAttributeListener {

@Override

public void attributeAdded(ServletContextAttributeEvent scab) {

String str =MessageFormat.format(

"ServletContext域对象中添加了属性:{0},属性值是:{1}"

,scab.getName()

,scab.getValue());

System.out.println(str);

}

@Override

public void attributeRemoved(ServletContextAttributeEvent scab) {

String str =MessageFormat.format(

"ServletContext域对象中删除属性:{0},属性值是:{1}"

,scab.getName()

,scab.getValue());

System.out.println(str);

}

@Override

public void attributeReplaced(ServletContextAttributeEvent scab) {

String str =MessageFormat.format(

"ServletContext域对象中替换了属性:{0}的值"

,scab.getName());

System.out.println(str);

}

}

在web.xml文件中注册监听器

listener

descriptionMyServletContextAttributeListener监听器/description

listener-classme.gacl.web.listener.MyServletContextAttributeListener/listener-class

/listener

编写ServletContextAttributeListenerTest.jsp测试页面

%@ page language="java" pageEncoding="UTF-8"%

!DOCTYPE HTML

html

head

titleServletContextAttributeListener监听器测试/title

/head

body

%

//往application域对象中添加属性

application.setAttribute("name", "孤傲苍狼");

//替换application域对象中name属性的值

application.setAttribute("name", "gacl");

//移除application域对象中name属性

application.removeAttribute("name");

%

/body

/html

运行结果如下:

从运行结果中可以看到,ServletContextListener监听器成功监听到了ServletContext域对象(application)中的属性值的变化情况。

java语言中拦截器、过滤器、监听器都是什么意思?

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts2的

action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者

struts2的action前统一设置字符集,或者去除掉一些非法字符

拦截器,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

拦截器与过滤器的区别 :

拦截器是基于java的反射机制的,而过滤器是基于函数回调。

拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 -

过滤后。个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数

据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程,再向上返回到过滤器的后续操作。

监听器:这个东西在c/s模式里面经常用到,他会对特定的事件产生产生一个处理。监听在很多模式下用到。比如说观察者模式,就是一个监听来的。又比如struts2可以用监听来启动。Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。

好比如果说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener

接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:

做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

javaEE中的监听器有什么作用?

  一、概念

监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。

二、Servle监听器

1、编写 Servlet 监听器

(1)和编写其它事件监听器一样,编写servlet监听器也需要实现一个特定的接口,并针对相应动作覆盖接口中的相应方法。

(2)和其它事件监听器略有不同的是,servlet监听器的注册不是直接注册在事件源上,而是由WEB容器负责注册,开发人员只需在web.xml文件中使用listener标签配置好监听器,web容器就会自动把监听器注册到事件源中。

(3)一个 web.xml 文件中可以配置多个 Servlet 事件监听器,web 服务器按照它们在web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。

配置如下:

listener

listener-classorg.springframework.web.context.ContextLoaderListener/listener-class

/listener

三、就是gui里边控件的监听器了。具体是什么就要自己看看相关书籍或者源码了!

关于java监听容器和java中监听的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。