事件源:(三大域)
ServletContext (1)生死监听:ServletContextListener,它有两个方法,一个在出生时调用,一个在死亡时调用
(2)属性监听:ServletContextAttributeListener,它有三个方法,一个在添加属性时调用,一个在改变属性时调用,一个在移除属性时调用
HttpSession (1)生死监听: HttpSessionListener,它有两个方法,一个在出生时调用,一个在死亡时调用 (2)属性监听:HttpSessionAttributeListener,它有三个方法,一个在添加属性时调用,一个在改变属性时调用,一个在移除属性时调用
ServletRequest (1)生死监听:ServletRequestListener,它有两个方法,一个在出生时调用,一个在死亡时调用 (2)属性监听:ServletRequestAttributeListener,它有三个方法,一个在添加属性时调用,一个在改变属性时调用,一个在移除属性时调用 JavaWeb中完成编写监听器只需要两步
编写一个监听器类:要求必须实现某个监听器接口
注册:在web.xml中进行配置(或者采用注解的方式来实现) 事件对象:
ServletContextEvent:里面只有一个方法getServletContext
HttpSessionEvent:里面只有一个方法getHttpSession
ServletRequestEvent:里面有两个方法getServletContext和getServletRequest
就来实现一个ServletContext的属性监听器 (1)新建一个HttpServlet的继承类
@WebServlet(value = "/listener") public class AServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletContext servletContext = req.getServletContext(); servletContext.setAttribute("username","zhangsan"); } }当我们访问/listener对应的url时,往ServletContext添加一个名为username的属性 (2)新建一个ServletContextAttributeListener的属性监听器
@WebListener public class AttributeListener implements ServletContextAttributeListener { @Override public void attributeAdded(ServletContextAttributeEvent scae) { System.out.println("added a attribute named="+scae.getName()+" value="+scae.getValue()); } }地址栏输入对应的url,查看输出 这就是一个简单的监听器的实现了