filter、
service里的filter
1编写java类实现filter接口,并实现其dofilter的方法
2在web.xml文件中对编写的filter类进行注册,并设置它所能拦截的资源
注册filter
<filter>
<filter-name>filter</filter-name>
<filter-class>web1.filter.filter.java</filter-class>
<init-param>设置初始化参数以键值对的形式给filter配置初始值
<param-name>username</param-name>
<param-value>xiaoming</param-value>
</init-param>
</filter>
设置拦截范围
<filter-mapping
>
<filter-name>filter</filter-name>映射
<url-pattern>/*</url-pattern>拦截范围映射地址
<dispatcher></dispatcher>指定拦截的请求类型 拦截请求转发异常页面等默认为request
<dispatcher></dispatcher>可设置多个
</filter-mapping>
生命周期filter的创建和销毁有web服务器控制
1服务器启动时,web服务器船舰filter的实例对象,并调用其init方法,完成对象的初始化功能,filter对象只会创建一次,initial方法也只会执行一次
2拦截到请求时,,执行dofilter方法,可执行多次
3服务器关闭时,web服务器销毁filter的实例对象,调用destroy进行销毁
实例化filter对象>调用init的方法初始化>等待请求,一次请求调用一次dofilter对请求进行预处理对响应进行后处理>服务器关闭后调用destroy进行销毁
拦截器的启动顺序与映射的地址有关系<url-pattern>/*</url-pattern>
chain.doFilter(request, response);//这句话很关键,拦截器的请求链放行