学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发
2023-01-06
一、过滤器链
1、含义:如果出现一个请求存在多个过滤器对其过滤,出现过滤器链。
在放行前,过滤器是正序执行,放行后过滤器是倒序执行。
2、过滤器的顺序:是与filter-mapping配置上下文位置有关
二、监听器
1、作用范围:
(1)监听域对象的创建和销毁
域对象:
①ServletContext:应用域(对象是web项目加载时创建,web项目卸载时销毁),监听器接口是“ServletContextListener”。
②HttpSession:会话域(第一次调用getSession创建,销毁是强制销毁),监听器接口是“HttpSessionListener”。
③HttpServletRequest:请求域(有请求就创建,响应结束就销毁),监听器接口是“HttpServletRequestListener”。
(2)监听域对象内共享数据的添加、修改、删除
①添加数据:setAttribute
②删除数据:removeAttribute
③修改数据:setAttribute (如果key值存在,此方法就是修改数据)
2、创建监听器
(1)创建一个类
先创建一个“web Application”的项目,删除“index.jsp”.在src文件夹下的“com.hh”下创建一个类“listener.HelloListener”
(2)实现一个接口
例如“ServletContextListener”
(3)实现接口中的抽象函数
public class HelloListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("ServletContext对象创建后执行此方法"); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("ServletContext对象销毁后执行此方法"); } }