Filter过滤器
- 实现接口Filter(在javax,servlet下的包)
import javax.servlet.*;
接口必须重写里面的抽象方法: - 过滤器的使用:
@WebFilter("/*")
或通过web.xml文件对Filter声明和映射;顺序跟映射的顺序有关,映射哪个在前就哪个在前 - 生命周期:
创建:实例化对象并执行init()
初始化方法;
服务:对象提供服务的过程,执行doFilter()
方法
销毁:应用卸载或服务器停止时对象销毁执行destroy()
方法 - FilterConfig过滤器配置对象(可以加载一些初始化参数):
getFilterName()
获取过滤器对象名称
getInitParameter(String key)
根据key获取value
getInitParameterNames()
获取所有参数的key
getServletContext()
获取应用上下文对象
Listener监听器
8个监听器 以下代码块都是抽象方法,实现监听器接口时重写即可
监听对象(3个)
ps:以下都是接口
- ServletContextListener:监听ServletContext对象的创建和销毁
contextInitialized()
;contextDestroyed()
- HttpSessionListener:监听HttpSession对象的创建和销毁
sessionCreated()
;sessionDestroyed()
- ServletRequestListener:监听ServletRequest对象的创建和销毁
requestInitialized()
;requestDestroyed()
监听域对象(5个)
监听属性变化(3个)
attributeAdded()
添加;
attributeRemoved()
移除;
attributeReplaced()
替换
- ServletContextAttributeListener:Servletcontext应用域中属性的变化
- HttpSessionAttributeListener:HttpSession会话域中属性的变化
- ServletRequestAttributeListener:ServletRequest请求域中属性的变化
会话相关的感知型(2个)
-
HttpSessionBindingListener:感知对象和会话域绑定的监听器
valueBound()
数据添加到会话域中执行;valueUnbound()
数据从会话域中移除时执行 -
HttpSessionActivationListener:用于感知会话域中对象钝化和活化的监听器
sessionWillPassivate()
会话域中钝化时执行;sessionDidActivate()
活化时执行