监听器Listener总结笔记

本文详细介绍了web开发中的事件编程,重点讲解了ServletContextListener、ServletRequestListener和HttpSessionListener的作用和使用场景。通过监听这三个对象的创建、销毁及属性操作,实现如在线访客人数统计等实用功能。同时,还涵盖了事件监听器的配置和不同事件的处理方法。
摘要由CSDN通过智能技术生成

web开发事件编程

web开发事件编程三要素:

          事件源: ServletContext 、ServletRequest、HttpSession

           事件:

              (监听以上三个对象的 创建,销毁和 操作属性的行为,来触发方法)

             对象创建或销毁:ServletContextEvent、ServletRequestEvent、 HttpSessionEvent

               操作属性: ServletContextAttributeEvent、ServletRequestAttributeEvent、                                               HttpSessionBindingEvent

                事件监听器:  ServletContextListener 、 ServletRequestListener......

web开发监听器: 开发者在web开发的过程中,会频繁使用到三个对象。ServletContextServletRequestHttpSession。在创建销毁这些对象时,或者对这些对象进行属性操作时,触发一些事件,就可以使用web监听器去监听这些事件。

 

事件源

web事件对象

web事件监听器

ServletContext对象

ServletContextEvent

创建或销毁对象时触发

ServletContextListener

ServletContext属性

ServletContextAttributeEvent

属性操作(增加属性,修改属性,删除属性)

ServletContextAttributeListener

ServletRequest对象

ServletRequestEvent

创建或销毁对象时触发

ServletRequestListener

ServletRequest属性

ServletRequestAttributeEvent

属性操作(增加属性,修改属性,删除属性)

ServletRequestAttributeListener

HttpSession对象

HttpSessionEvent

创建或销毁对象时触发

HttpSessionListener

HttpSession属性

HttpSessionBindingEvent

属性操作(增加属性,修改属性,删除属性)

HttpSessionAttributeLisener

 ServletContextListener

         ServletContextListener主要用于监听ServetContext对象的创建和销毁。

好的,我可以和你讨论Servlet中的Filter和Listener。 在Servlet中,Filter和Listener是两个重要的组件,它们可以用于在Servlet容器中拦截请求和响应,以及处理Servlet容器中的事件。 Filter是一种拦截器,它可以在请求被Servlet处理之前或响应被发送回客户端之前拦截请求和响应,并对它们进行修改或处理。Filter可以用于对请求进行身份验证、授权、日志记录、压缩、加密等。 在Servlet中,Filter是通过实现javax.servlet.Filter接口来创建的。Filter接口有三个方法:init()、doFilter()和destroy()。其中,init()方法用于初始化Filter,doFilter()方法用于对请求和响应进行处理,destroy()方法用于销毁Filter。 下面是一个简单的Filter示例,它可以对请求进行日志记录: ```java public class LogFilter implements Filter { public void init(FilterConfig config) throws ServletException { // 初始化Filter } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 记录请求日志 System.out.println("Request received from " + request.getRemoteAddr()); // 继续处理请求 chain.doFilter(request, response); // 记录响应日志 System.out.println("Response sent to " + request.getRemoteAddr()); } public void destroy() { // 销毁Filter } } ``` Listener是一种监听器,它可以监听Servlet容器中的事件,例如Servlet的创建和销毁、Session的创建和销毁、ServletContext的创建和销毁等。Listener可以用于在Servlet容器中实现一些全局的业务逻辑,例如初始化数据库连接池、加载配置文件等。 在Servlet中,Listener是通过实现javax.servlet.ServletContextListener接口来创建的。ServletContextListener接口有两个方法:contextInitialized()和contextDestroyed()。其中,contextInitialized()方法在ServletContext被创建时调用,可以用于初始化全局资源;contextDestroyed()方法在ServletContext被销毁时调用,可以用于释放全局资源。 下面是一个简单的Listener示例,它可以在ServletContext被创建时初始化数据库连接池: ```java public class ConnectionPoolListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { // 初始化数据库连接池 ConnectionPool pool = new ConnectionPool(); event.getServletContext().setAttribute("connectionPool", pool); } public void contextDestroyed(ServletContextEvent event) { // 释放数据库连接池 ConnectionPool pool = (ConnectionPool) event.getServletContext().getAttribute("connectionPool"); pool.release(); } } ``` 以上就是Servlet中Filter和Listener的简单介绍,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值