1.创建监听器:
在chepter11创建一个chapter11.listener包,编写一个mylistener类,用来实现若干个监听器接口
mylistener.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| package chapter11.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener;
@WebListener public class mylistener implements ServletContextListener, HttpSessionListener, ServletRequestListener {
public void sessionCreated(HttpSessionEvent arg0) { System.out.println("servletsession被创建了"); }
public void requestDestroyed(ServletRequestEvent arg0) { System.out.println("servletrequest被销毁了"); }
public void requestInitialized(ServletRequestEvent arg0) { System.out.println("servletrequest被创建了"); }
public void sessionDestroyed(HttpSessionEvent arg0) { System.out.println("servletsession被销毁了"); }
public void contextDestroyed(ServletContextEvent arg0) { System.out.println("servletcontext被销毁了"); }
public void contextInitialized(ServletContextEvent arg0) { System.out.println("servletcontext被创建了"); } }
|
2.添加监听信息类,在web.xml文件中添加 mylistener事件监听器信息;
1 2 3 4 5
| <listener> <listener-class> chapter11.listener.mylistener </listener-class> </listener>
|
3.设置监听超时信息;
在web.xml文件中设置session的超时时间为2min
1 2 3
| <session-config> <session-timeout>2</session-timeout> </session-config>
|
2.创建测试页面:
在chepter11中新建一个testattribute.jsp用来观察属性事件监听器的作用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| **<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> </head> <body> <h3>这是个测试对象属性信息监听器的页面</h3> <% getServletContext().setAttribute("username", "itcast"); getServletContext().setAttribute("username", "itheima"); getServletContext().removeAttribute("username"); session.setAttribute("username", "itcast"); session.setAttribute("username", "itheima"); session.removeAttribute("username"); request.setAttribute("username", "itcast"); request.setAttribute("username", "itheima"); request.removeAttribute("username"); %> </body> </html>**
|
创建监听器,在chapter11.listener里创建myattributelistener.java的监听类;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| package chapter11.listener; import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; import javax.servlet.ServletRequestAttributeEvent; import javax.servlet.ServletRequestAttributeListener; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent;
@WebListener public class myattributelistener implements ServletContextAttributeListener, HttpSessionAttributeListener, ServletRequestAttributeListener {
public myattributelistener() { }
public void attributeAdded(ServletContextAttributeEvent sae) { String name = sae.getName(); System.out.println("servletcontext添加属性:"+ name + "="+sae.getServletContext().getAttribute(name)); }
public void attributeRemoved(ServletContextAttributeEvent sae) { String name = sae.getName(); System.out.println("servletcontext移除属性:"+name); }
public void attributeRemoved(ServletRequestAttributeEvent sra) { String name = sra.getName(); System.out.println("servletrequest移除属性"+name); }
public void attributeAdded(ServletRequestAttributeEvent sra) { String name = sra.getName(); System.out.println("servletrequest添加属性:"+ name + "="+sra.getServletRequest().getAttribute(name)); }
public void attributeReplaced(ServletRequestAttributeEvent sra) { String name = sra.getName(); System.out.println("servletrequest替换属性:"+ name + "="+sra.getServletRequest().getAttribute(name)); }
public void attributeAdded(HttpSessionBindingEvent hbe) { String name = hbe.getName(); System.out.println("httpsession添加属性:"+ name + "="+hbe.getSession().getAttribute(name)); }
public void attributeRemoved(HttpSessionBindingEvent hbe) { String name = hbe.getName(); System.out.println("httpsession移除属性:"+name); }
public void attributeReplaced(HttpSessionBindingEvent hbe) { String name = hbe.getName(); System.out.println("httpsession替换属性:"+ name + "="+hbe.getSession().getAttribute(name)); }
public void attributeReplaced(ServletContextAttributeEvent sea) { String name = sea.getName(); System.out.println("servletcontext替换属性:"+ name + "="+sea.getServletContext().getAttribute(name)); } }
|
添加监听信息,在web.xml文件中输入一下内容:
1 2 3 4 5
| <listener> <listener-class> chapter11.listener.myattributelistener </listener-class> </listener>
|