JavaWeb之监听器

    科技2022-08-15  90

    一、JavaWeb中的监听器

    事件源:(三大域)

    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

    二、Java实现一个监听器

    就来实现一个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,查看输出 这就是一个简单的监听器的实现了

    Processed: 0.037, SQL: 8