Filter过滤器、Listener监听器

📅 2026/8/14 5:29:14
Filter过滤器、Listener监听器
目录一、Filter接口二、监听器触发器一、Filter接口Filter用于在Servlet执行前后添加过滤规则在服务器启动的时候会实例化Filter对象需要实现Filter接口的三个方法init()在Filter对象实例化后调用。doFilter()过滤规则过滤器指定路径下的servlet执行前先执行doFilter()。destroy()在Filter对象被释放/销毁之前调用。/* /crud/a精确匹配 * /*匹配所有路径 * *a后缀匹配 */WebFilter(/*)//匹配所有servlet,所有servlet执行前后都要走这个过滤器,Filter类名字典序小的先执行publicclassFilter1implementsFilter{Overridepublicvoidinit(FilterConfigfilterConfig)throwsServletException{}OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{...// serlvet执行前的过滤规则chain.doFilter(request,response);// 执行下一个过滤器如果下一个不是过滤器则执行目标servlet...// serlvet执行后向客户端发送响应前的过滤规则}Overridepublicvoiddestroy(){}}二、监听器触发器监听器用于监听一些事件当事件发生时会调用监听器中的方法。监听器有如下类ServletContextListenerServletContext对象创建销毁时分别执行类中两个方法。ServletContextAttributeListener向应用域存、删、取数据时调用分别执行类中的三个方法。ServletRequestListenerServletRequest对象创建销毁时分别执行类中两个方法。ServletRequestAttributeListener向请求域存、删、取数据时调用分别执行类中的三个方法。HttpSessionListenerSession对象创建销毁时分别执行类中两个方法。HttpSessionAttributeListener向会话域存、删、取数据时调用分别执行类中的三个方法HttpSessionIdListenerSession的id发生改变的时候监听器中的唯一一个方法就会被调用。HttpSessionBindingListener该监听器不需要使用WebListener进行标注。如果User类实现了该监听器那么User对象在被放入session的时候触发bind事件User对象从session中删除的时候触发unbind事件。publicclassMyListenerimplementsServletContextListener{OverridepublicvoidcontextInitialized(ServletContextEventsce){ServletContextListener.super.contextInitialized(sce);}OverridepublicvoidcontextDestroyed(ServletContextEventsce){ServletContextListener.super.contextDestroyed(sce);}}