过滤器
1.Servlet规范之中定义的一种特殊的组件
2.编写过滤器步骤
1)创建一个实现了Filter接口的类
2)实现Filter接口的三个方法
*doFilter:实现过滤逻辑
*init:初始化过滤器 该方法可以通过cfg.getInitParameter("参数名"),获取初始化参数
*destroy:销毁过滤器
3)在web.xml中注册过滤器(大体同注册Servlet)
*如果有多个过滤器都满足过滤条件,则容器一句<filter-mapping>的先后顺序来调用各个过滤器
4)部署到服务器
3.一个Filter可对多个Servlet进行过滤,通过配置加以实现
4.一个请求可能被多个Filter过滤,一个Filter处理一项业务,一般用来处理项目中的通用业务
如:记录业务,权限检查,过滤敏感词
5.优点:
*实现代码的"可插拔性",即增加或减少某个功能模块,不会影响程序的正常执行
*可以将多个相同处理逻辑的模块集中写在过滤器里面,方便代码维护
监听器
1.Servlet规范之中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理
*容器产生的两大类事件:生命周期相关的事件,绑定数据相关的事件
2.生命周期相关的事件:容器创建或销毁request,session,ServletContext时产生的事件
*ServletRequestListener
*HttpSessionListener
*ServletContextListener
3.绑定数据相关的事件:调用了request,session,ServletContext的setAttribute,removeAttribute方法时产生的事件
*ServletRequestAttributeListener
*HttpSessionAttributeListener
*ServletContextAttributeListener
4.编写监听器步骤
1)创建一个Java类,实现需要监听的事件类型的监听器接口
2)在监听器接口方法中,实现相应的监听处理逻辑
3)在web.xml文件中注册监听器
1.Servlet规范之中定义的一种特殊的组件
2.编写过滤器步骤
1)创建一个实现了Filter接口的类
2)实现Filter接口的三个方法
*doFilter:实现过滤逻辑
*init:初始化过滤器 该方法可以通过cfg.getInitParameter("参数名"),获取初始化参数
*destroy:销毁过滤器
3)在web.xml中注册过滤器(大体同注册Servlet)
*如果有多个过滤器都满足过滤条件,则容器一句<filter-mapping>的先后顺序来调用各个过滤器
4)部署到服务器
3.一个Filter可对多个Servlet进行过滤,通过配置加以实现
4.一个请求可能被多个Filter过滤,一个Filter处理一项业务,一般用来处理项目中的通用业务
如:记录业务,权限检查,过滤敏感词
5.优点:
*实现代码的"可插拔性",即增加或减少某个功能模块,不会影响程序的正常执行
*可以将多个相同处理逻辑的模块集中写在过滤器里面,方便代码维护
监听器
1.Servlet规范之中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理
*容器产生的两大类事件:生命周期相关的事件,绑定数据相关的事件
2.生命周期相关的事件:容器创建或销毁request,session,ServletContext时产生的事件
*ServletRequestListener
*HttpSessionListener
*ServletContextListener
3.绑定数据相关的事件:调用了request,session,ServletContext的setAttribute,removeAttribute方法时产生的事件
*ServletRequestAttributeListener
*HttpSessionAttributeListener
*ServletContextAttributeListener
4.编写监听器步骤
1)创建一个Java类,实现需要监听的事件类型的监听器接口
2)在监听器接口方法中,实现相应的监听处理逻辑
3)在web.xml文件中注册监听器