JavaWeb之Filter过滤器
要求:在Web工程下,有一个admin目录,这个admin目录下的所有资源(html页面、jpg图片、jsp文件、等等)都必须是用户登录之后才能访问的。
1.filter过滤器的流程图
2.Filter的生命周期
Filter的生命周期包含以下方法:
1.构造器方法
2.init初始化方法
3.doFilter过滤方法
4.destory销毁方法
1,2方法在Web工程启动后执行,此时Filter已创建
3方法在每次拦截请求时执行
4方法在停止Web工程时执行,此时Filter被销毁
3.FilterConfig类
FilterConfig是Filter的配置文件类。
Tomca每次创建时,同时会创建FilterConfig类,里面包含Filter配置文件的配置信息。
FilterConfig类的作用是获取Filter过滤器的配置内容:
1.获取Filter的名称 filter-name的内容。
2.获取在Filter中配置的init param初始化参数。
3.获取ServletContext对象。
4.FilterChain 过滤器链
作用:规定多个过滤器如何一起工作
下图是游览器访问服务器资源的过程中被2个过滤器过滤时,代码的执行顺序
在多个Filter过滤器执行的时候,它们的执行顺序是由它们在web.xml文件中从上到下的配置顺序决定。
多个Filter过滤器执行的特点:
1.所有的Filter和目标资源默认都执行在同一个线程中。
2.多个Filter共同执行时,它们使用同一个Request对象。
5.Filter的拦截路径
<1>精准匹配
<url-pattern>/target.jsp</url-pattern>
以上配置路径,表示请求地址必须为;http://ip:port/工程路径/target.jsp
<2>目录匹配
<url-pattern>/admin/*</url-pattern>
以上配置路径,表示请求地址必须为;http://ip:port/工程路径/admin/*
<3>后缀名匹配
<url-pattern>*.html</url-pattern>
以上配置路径,表示请求地址必须以.html结尾