Listener监听器笔记

来源:互联网 发布:狼人杀online for mac 编辑:程序博客网 时间:2024/05/19 20:45

1.是什么?

Listener是Servlet监听器,可以监听客户端的请求、服务器端的操作。用于监听一些重要的事件发生,监听器对象可以在事件发生前,发生后自动地做必要的处理


2.分类

Servlet规范中共定义了八个监听器接口,根据监听器监听的对象:监听web对象创建与销毁的监听器            ServletContextListener            HttpSessionListener            ServletRequestListener  监听web对象属性变化            ServletContextAttributeListener            HttpSessionAttributeListener            ServletRequestAttributeListener 监听session绑定javaBean激活和钝化            HttpSessionBindingListener            HttpSessionActivationListener

3.监听事件

    事件源:事件产生的源头  (比如按钮)    监听器:用于监听事件的对象    注册监听:要监听某些事件的发生,必须要注册

4.Javaweb域监听器创建与销毁

- 创建一个类,实现指定的监听器接口  - 重写接口中的方法.- 在web.xml文件中配置监听
//HttpSessionListener public class MyHttpSessionListener implements HttpSessionListener {    @Override    public void sessionCreated(HttpSessionEvent se) {        System.out.println("sessionCreated");    }    @Override    public void sessionDestroyed(HttpSessionEvent se) {        System.out.println("sessionDestroyed");    }}

web.xml中注册

<listener>    <listener-class>com.cskaoyan.listner.fieldobject.MyHttpSessionListener</listener-class>  </listener>

Jsp中调用

 <%       HttpSession  s= pageContext.getSession();       s.invalidate(); %>

5.监听域对象属性的变化

//继承HttpSessionAttributeListener,实现并调用三个APIpublic class MyHttpSessionAttributionListener implements HttpSessionAttributeListener{@Override    public void attributeAdded(HttpSessionBindingEvent se)    {        System.out.println("attributeAdded");    }    @Override    public void attributeRemoved(HttpSessionBindingEvent se)    {        System.out.println("attributeRemoved");    }    @Override    public void attributeReplaced(HttpSessionBindingEvent se)    {        System.out.println("attributeReplaced");    }}
  //注册<listener>    <listenerclass>com.cskaoyan.listner.attribute.MyHttpSessionAttributionListener</listener-class></listener>
//调用<% User user = new User(); session.setAttribute("user", user); session.removeAttribute("user"); %>
0 0