拦截器filter

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);//这句话很关键,拦截器的请求链放行

猜你喜欢

转载自blog.csdn.net/qq_43748089/article/details/85852870