13.JavaWeb基础 监听器

来源:互联网 发布:魔域帐号交易淘宝 编辑:程序博客网 时间:2024/06/05 00:20





   监听器俗称监听Servlet。主要的功能是负责监听Web的各种操作,当相关的事件触发

之后将产生事件,并对此事件进行处理。在Web中可以对request、session、application

属性进行监听操作。








一.对application监听


ApplicationListener:



package com.zyy.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class ApplicationListener implements ServletContextListener {public void contextDestroyed(ServletContextEvent event) {System.out.println("*************************Application销毁:"+ event.getServletContext().getContextPath());}public void contextInitialized(ServletContextEvent event) {System.out.println("***************************Application初始化:"+ event.getServletContext().getContextPath());}}


web.xml:


  <listener>    <listener-class>com.zyy.listener.ApplicationListener</listener-class>    </listener>












ApplicationAttributeListener:



package com.zyy.listener;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;public class ApplicationAttributeListener implementsServletContextAttributeListener {public void attributeAdded(ServletContextAttributeEvent event) {System.out.println("Application增加属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeRemoved(ServletContextAttributeEvent event) {System.out.println("Application删除属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeReplaced(ServletContextAttributeEvent event) {System.out.println("Application更新属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}}



web.xml:

  <listener>    <listener-class>com.zyy.listener.ApplicationAttributeListener</listener-class>    </listener>



测试代码:


<%this.getServletContext().setAttribute("CaMnter", "Save you from anything 07") ;        this.getServletContext().setAttribute("CaMnter", "Save you from anything 07 forever") ;this.getServletContext().removeAttribute("CaMnter") ;%>



刷新好多次页面得到如下:











二.对session监听



SessionListener:


package com.zyy.listener;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class SessionListener implements HttpSessionListener {public void sessionCreated(HttpSessionEvent event) {System.out.println("***** Session创建  id:" + event.getSession().getId());}public void sessionDestroyed(HttpSessionEvent event) {System.out.println("***** Session摧毁  id:" + event.getSession().getId());}}



web.xml:

  <listener>    <listener-class>com.zyy.listener.SessionListener</listener-class>    </listener>


测试代码:


<%session.invalidate();%>



刷新好多次页面得到如下:








SessionAttributeListener:


package com.zyy.listener;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;public class SessionAttributeListener implements HttpSessionAttributeListener {public void attributeAdded(HttpSessionBindingEvent event) {System.out.println("Session增加属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeRemoved(HttpSessionBindingEvent event) {System.out.println("Session删除属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeReplaced(HttpSessionBindingEvent event) {System.out.println("Session更新属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}}



web.xml:

  <listener>    <listener-class>com.zyy.listener.SessionAttributeListener</listener-class>    </listener>



测试代码:


<%session.setAttribute("CaMnter", "Save you from anything 07") ;session.removeAttribute("CaMnter");%>



刷新好多次页面得到如下:












三.对request监听



RequestListener:


package com.zyy.listener;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;public class RequestListener implements ServletRequestListener {public void requestDestroyed(ServletRequestEvent event) {System.out.println("Request 销毁:"+ event.getServletRequest().getRemoteAddr()+ event.getServletContext().getContextPath());}public void requestInitialized(ServletRequestEvent event) {System.out.println("Request 初始化:"+ event.getServletRequest().getRemoteAddr()+ event.getServletContext().getContextPath());}}



web.xml:

  <listener>    <listener-class>com.zyy.listener.RequestListener</listener-class>    </listener>




这个不需要测试代码,发布项目后,连接到即可。比如(http://127.0.0.1:8080/Listener)。


然后多次刷新后得到:









RequestAttributeListener:

package com.zyy.listener;import javax.servlet.ServletRequestAttributeEvent;import javax.servlet.ServletRequestAttributeListener;public class RequestAttributeListener implementsServletRequestAttributeListener {public void attributeAdded(ServletRequestAttributeEvent event) {System.out.println("Request增加属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeRemoved(ServletRequestAttributeEvent event) {System.out.println("Request删除属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}public void attributeReplaced(ServletRequestAttributeEvent event) {System.out.println("Request更新属性:" + " name = " + event.getName()+ " ,value = " + event.getValue());}}



web.xml:

  <listener>    <listener-class>com.zyy.listener.RequestAttributeListener</listener-class>    </listener>



测试代码:


<%request.setAttribute("CaMnter", "Save you from anything 07") ;request.setAttribute("CaMnter", "Save you from anything 07 forever") ;request.removeAttribute("CaMnter") ;%>



















0 0
原创粉丝点击