Filter
实现Filter接口
一般用于完成通用的操作,如:登陆验证、统一编码处理、敏感字符过滤等
执行流程
- 执行过滤器
- 执行放行后的资源
- 继续执行过滤器放行代码下的代码
配置
- 拦截路径配置
- 注解配置
- 具体资源路径:
/index.jsp
- 拦截目录:
/user/*
- 后缀名拦截:
*.jsp
- 拦截所有资源:
/*
- 具体资源路径:
web.xml配置
<filter> <filter-name>demo</filter-name> <filter-class>包名.类名</filter-class> </filter> <filter-mapping> <filter-name>demo</filter-name> <!-- 拦截路径 --> <url-pattern>/*</url-pattern> </filter-mapping>
- 注解配置
- 拦截方式配置:资源被访问的方式
注解配置
设置 dispatcherTypes 属性
- REQUEST:默认值。浏览器直接请求资源
- FORWARD:转发访问资源
- INCLUDE:包含访问资源
- ERROR:错误跳转资源
- ASYNC:异步访问资源
web.xml配置
设置
<dispatcher></dispatcher>
标签
过滤器先后顺序
- 注解配置:按照类名的字符串比较规则比较,值小的先执行
- web.xml配置:
<filter-mapping>
按照定义顺序执行
Listener
实现ServletContextListener接口
ServletContextListener
:监听ServletContext对象的创建和销毁
- 方法:
void contextInitialized(ServletContextEvent sce)
:ServletContext 对象创建后会调用该方法void contextDestroyed(ServletContextEvent sce)
:ServletContext 对象被销毁之前会调用该方法
配置
web.xml
<listener> <listener-class>包名.类名</listener-class> </listener>
指定初始化参数
<context-param>
进行资源文件的加载注解:
@WebListener