目录
- 一、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(){}}二、监听器(触发器)
监听器用于监听一些事件,当事件发生时会调用监听器中的方法。监听器有如下类:
ServletContextListener:ServletContext对象创建销毁时分别执行类中两个方法。ServletContextAttributeListener:向应用域存、删、取数据时调用分别执行类中的三个方法。ServletRequestListener:ServletRequest对象创建销毁时分别执行类中两个方法。ServletRequestAttributeListener:向请求域存、删、取数据时调用分别执行类中的三个方法。HttpSessionListener:Session对象创建销毁时分别执行类中两个方法。HttpSessionAttributeListener:向会话域存、删、取数据时调用分别执行类中的三个方法HttpSessionIdListener:Session的id发生改变的时候,监听器中的唯一一个方法就会被调用。HttpSessionBindingListener:该监听器不需要使用@WebListener进行标注。如果User类实现了该监听器,那么User对象在被放入session的时候触发bind事件,User对象从session中删除的时候,触发unbind事件。
publicclassMyListenerimplementsServletContextListener{@OverridepublicvoidcontextInitialized(ServletContextEventsce){ServletContextListener.super.contextInitialized(sce);}@OverridepublicvoidcontextDestroyed(ServletContextEventsce){ServletContextListener.super.contextDestroyed(sce);}}