Servlet监听器

一、Servlet中对象作用域

1、  ServletContext 上下文

应用服务器一启动就产生该对象,服务器关闭即销毁

作用于全局,所有Servlet ,相当于静态变量

2、  HttpSession 会话

客户端第一次请求产生,session过期销毁

作用于同一个客户端,相当于成员变量

3、  ServletRequest请求

一次请求产生一个对象,请求结束即销毁

作用于同一次请求,相当于局部变量

二、Servlet监听器

                     工作流程:

                             (1)确定事件源

(2)写一个类,实现Servlet监听器接口,并从写接口里面的方法

(3)web.xml里注册建立联系,

<listener>

       <listener-class>Servlet类事件源全路径</listener-class>

</listener>

(4)事件源触发事件,监听器调用相应方法

           1ServletContext事件

               1ServletContextListener接口,用于监听ServletContext的创建与销毁

                     相应方法:

                     void contextInitialized(ServletContextEvent  e); ServletContext创建触发

                     void contextDestroyed(ServletContextEvent  e); ServletContext销毁触发

 

               2ServletContextAttribyteListener接口,用于监听ServletContext属性状态

                                  

                  相应方法:

                   void attributeAdded(ServletContextEvent  e); ServletContext属性加入触发

                            context.setAttribute(“a”,”b”);

                      void attributeRemovd(ServletContextEvent  e); ServletContext属性删除触发

                            context.removeAttribute(“a”,);

                      void attributeReplaced(ServletContextEvent  e); ServletContext属性修改触发

                            context.setAttribute(“a”,”c”);

               2HttpSession事件

                     1HttpSessionListener接口,用于监听session的创建与销毁

                            相应方法:

                            void sessionCreated(HttpsessionEvent e)   session 创建触发

                            void sessionDestroyed (HttpsessionEvent e)   session 销毁触发

                     2HttpSession AttributeListener接口,用于监听session属性状态

                                   相应方法:同ServletContextAttribyteListener

 

 

                     3HttpSessionBindingListener接口,用于监听绑定对象到Session属性监听

                                   唯一一个不用在web.xml里注册的监听接口

                            绑定

                            Ression.setAttribute(“a”, 实现该接口的对象)

                                   触发void valueBound(HttpSessionBindingEvent  e);方法

                            移除:

                            Ression.removeAttribute(“a”)

                                   触发void valueUnbound(HttpSessionBindingEvent  e);方法

 

3   SercletRequest事件

           1ServletRequestListener接口 用于监听request的销毁与创建

           2ServletRequesAttributetListener接口 用于监听request的属性状态

 

 

你可能感兴趣的:(c,xml,应用服务器,Web,servlet)