Filter过滤器API
1.Filter接口:doFilter(ServletRequest request,ServletResponse response,FilterChain chain)是Filter的核心方法
2.FilterChain接口也有doFilter 用于对资源请求过滤链的依次调用
3.FilterConfig接口可以获取过滤器名,初始化参数以及活动的Servlet上下文
String getFilterName(); | 返回web.xml文件中定义的该过滤器的名称 |
ServletContext getServletContext() | 返回调用者所处的Servlet上下文 |
String getInitParameter(String name) | 返回过滤器初始化参数值的字符串形式,当参数不存在时返回null |
publicEnumeration getInitParameterNames() | 已Enumeration形式返回过滤器所有的初始化参数值,如果没有初始化参数,则返回null |
Listener接口
1.ServletContextListener接口:用来实现SercletContext的启动和销毁监听
contextDestroyed() | 销毁ServletContext时触发该方法 |
contextInitialized() | 创建ServletContext时触发该方法 |
2.ServletContextAttributeListener接口:用来实现application范围属性变化的监听
attributeAdded() | 用来监听application范围属性的添加 |
attributeReplaced() | 用来监听application范围属性的替换 |
attributeRemoved() | 用来监听application范围属性的移除 |
3.HttpSessionListener接口:该接口用来实现session的初始化和销毁监听
sessionCreated() | 用来监听session的创建和初始化 |
sessionDestroyed() | 用来监听session的销毁 |
4.HttpSessionAttributeListener接口:该接口用来实现session范围属性变化的监听
attributeAdded() | 用来监听session范围属性的添加 |
attributeReplaced() | 用来监听session范围属性的替换 |
attributeRemoved() | 用来监听session范围属性的移除 |
这3个方法中均包含一个参数,其类型为HttpSessionBindingEvent,通过HttpSessionBindingEvent对象的getName()方法可以获得属性的名称;通过ServletContextAttributeEvent对象的getValue()方法客户获得属性的值 |
5.HttpSessionBindingListener接口:用于监听HttpSession对象的绑定状态,添加对象和移除对象等。
valueBound() | 调用setAttribute()方法时触发此方法 |
valueUnBound() | 调用removeAttribute()方法时触发此方法 |
6.HttpSessionActivationListener接口:用于监听绑定在HttpSession对象中的JavaBean状态。
sessionDidActivate() | 当绑定HttpSession对象中的JavaBean对象被反序列化时触发 |
sessionWillPassivate() | JavaBean对象被序列化之前触发此对象 |
7.ServletRequestListener接口:用于监听ServletRequest对象的变化,创建和销毁
requestDestroyed() | 用来销毁ServletRequest对象 |
requestInitialized() | 用来初始化ServletRequest对象 |
8.ServletRequestAttributeListener接口:用于ServletRequest对象属性的变化,例如增加、删除、修改
attributeAdded() | 用来添加属性时触发 |
attributeReplaced() | 用来修改属性时触发 |
attributeRemoved() | 用来移除属性时触发 |