day19_Filter
filter
概念:
当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。
作用:登陆验证,统一编码处理,敏感字符过滤........
步骤:
1.定义一个类,实现Filter(javax包下的)
2.复写方法
init()初始化
doFilter(request,response)
放行: filterChain.doFilter(Request,response)
destroy()销毁
3.配置拦截路径
@WebFilter("/*")
细节
1.Web.xml配置
<filter>
<filter-name>demo1</filter-name>
<filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<url-pattern>/*</url-pattern><!-- 拦截路径 -->
</filter-mapping>
2.过滤器执行流程
3.过滤器生命周期
在服务器启动后,创建Fileter对象,调用init方法
在服务器关闭后,fulter对象被销毁,如果服务器正常关闭,destroy会执行一次
4.过滤器配置详解
拦截路径
/index.jsp
/user/*
/*
*.jsp
访问所有后缀名为jsp时都会执行过滤
拦截方式
资源被访问的方式
注解配置:设置dispatcherTypes属性
1.Request
默认,浏览器直接请求资源
2.forward
转发访问资源
3.include
包含访问资源
4.error
错误跳转资源
5.async
异步访问资源
配置Web.xml
5.过滤器链
拦截顺序
如果有两个过滤器
1.过滤器1-过滤器2-资源-过滤器2-过滤器1
过滤器先后顺序
注解配置
按类名的字符串比较规则比较,值小的先执行
web.xml
谁定义在上面,谁先执行 |
|