监听器

引自csdn -监听器篇:https://blog.csdn.net/u011024652/article/details/52293932/

 

监听器的使用:
 *     作用:
 *         监听作用域对象:request  session   application  的创建,销毁和内容的改变
 *     使用:
 *         创建一个实现了指定接口的java 类
 *             监听 request-----> ServletRequestListener        监听request 对象的创建和销毁
 *                     requestInitialized(ServletRequestEvent arg0)    //创建
 *                     requestDestroyed(ServletRequestEvent arg0)        //销毁
 *                 注意:
 *                     形参可以获取被监听的request 对象
 *                         arg0.getServletRequest();
 *             监听 request---------> ServletRequestAttributeListener 监听request 作用域数据的变更
 *                     attributeAdded(ServletRequestAttributeEvent arg0)    //增加
 *                     attributeRemoved(ServletRequestAttributeEvent arg0)    //移除
 *                     attributeReplaced(ServletRequestAttributeEvent arg0)    //修改
 *                 注意:
 *                     形参可以获取被监听的数据:
 *                                     arg0.getName() ;        获取监听的键,
 *                                     arg0.getValue();        获取监听的值;
 *         在web.xml 中配置 监听器类
 *
 *             监听session----->HttpSessionListener 监听session  的 创建和销毁
 *                         sessionCreated(HttpSessionEvent arg0)        //创建
 *                         sessionDestroyed(HttpSessionEvent arg0)        //销毁
 *                 注意:
 *                     形参可以获取被监听的session 对象;
 *                     arg0.getSession();
 *             监听session----->HttpSessionAttributeListener    监听session 数据的变更
 *                         attributeAdded(HttpSessionBindingEvent arg0)
 *                         attributeRemoved(HttpSessionBindingEvent arg0)
 *                         attributeReplaced(HttpSessionBindingEvent arg0)
 *                 注意:
 *                     形参可以获取被监听的数据
 *                             arg0.getName()                age0.getValue();
 *
 *             监听application------>ServletContextListener
 *                             contextDestroyed(ServletContextEvent arg0)        //销毁:  服务器关闭
                            contextInitialized(ServletContextEvent arg0)    //创建:     服务器启动
                注意:
                    形参可以获取当前application 对象。
                        arg0.getServletContext();
            监听application------>ServletContextAttributeListener    监听application 数据的变更
                            attributeAdded(ServletContextAttributeEvent arg0)
                            attributeRemoved(ServletContextAttributeEvent arg0)
                            attributeReplaced(ServletContextAttributeEvent arg0)
                注意:
 *                     形参可以获取当前监听的数据:
 *                                     arg0.getName() ;        获取监听的键,
 *                                     arg0.getValue();        获取监听的值;
                        
        在web.xml 中配置监听器类
            <listener>
                  <listener-class>com.wxh.listener.MyListener</listener-class>
              </listener>
 *

testServlet:

    

package com.wxh.servlet;


import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class TestServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		 //获取请求信息
		 //处理请求信息
		req.setAttribute("str", "request 中增加了数据");
		HttpSession hs = req.getSession();
		hs.setAttribute("str", "session 中增加数据");
		hs.invalidate();
		ServletContext sc = this.getServletContext();
		sc.setAttribute("str", "application 总增加了数据");
		//响应处理结果
		resp.getWriter().write("this is listener");
	}
}

myListener:

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class MyListener implements ServletRequestListener,ServletRequestAttributeListener,HttpSessionListener,HttpSessionAttributeListener,ServletContextListener,ServletContextAttributeListener {
	//request 销毁
	public void requestDestroyed(ServletRequestEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("我被销毁了");
	}
	//request 创建
	public void requestInitialized(ServletRequestEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("我被创建了");
	}
	
	
	public void attributeAdded(ServletRequestAttributeEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("request作用域中增加了一条数据-"+arg0.getName()+":"+arg0.getValue());
	}
	public void attributeRemoved(ServletRequestAttributeEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	public void attributeReplaced(ServletRequestAttributeEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	//-------------------------------------------------------------------------------------------------
	//监听session 的创建
	public void sessionCreated(HttpSessionEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("session被创建了");
	}
	//监听session 的销毁
	public void sessionDestroyed(HttpSessionEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("session被销毁了");
	}
	
	//监听session 数据的变更
	public void attributeAdded(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("session中增加了一条数据-"+arg0.getName()+":"+arg0.getValue());
		
	}
	public void attributeRemoved(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	public void attributeReplaced(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	
	//-------------------------------------------------------------------------------------------------
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("application 被销毁了");
	}
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("application 被创建了");
	}
	public void attributeAdded(ServletContextAttributeEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("application 中存取了数据--"+arg0.getName()+":"+arg0.getValue());
	}
	public void attributeRemoved(ServletContextAttributeEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	public void attributeReplaced(ServletContextAttributeEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}

web.xml:

 <listener>
  	<listener-class>com.wxh.listener.MyListener</listener-class>
  </listener>

 

转载于:https://my.oschina.net/u/3788977/blog/2231370

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值