filter
在web.xml中配置error-page
可以为错误响应,设置指定的页面eg:404/404.jsp
url-pattern(和Servlet一样)
filterConfig(了解)
filter的配置对象
配置信息
Servlet中
一个路径只能对应一个servletservlet优先级完全匹配 > 目录匹配 > 后缀名匹配
Filter中
一个路径可以对应多个filterfilter的优先级由filter-mapping的顺序决定
*.jsp *.action
/a/*
/a/demo1
完全匹配
目录匹配
后缀名匹配
注意事项
getInitParameter("name");
getServletContext();
获取filter的初始化参数
获取servletContext()
作用:
方法
filter-name:
指定过滤器
servlet-name指定过滤哪个servlet(filter-mapping下配置)
ServletNameFilter 注意:直接写Servlet的name的值(无 / ) Demo4Servlet 使用的时候尽量不要包含另外一个路径eg:url-pattern:/*servlet-name:/demo5
dispatcher:配置过滤哪个地方发送的请求
REQUEST:只过滤从浏览器直接发送过来的请求(默认值)
FORWARD:只过滤请求转发过来的请求
INCLUDE(了解):只过滤包含过来的请求
ERROR(了解):只过滤错误过来的请求
默认request,一旦设置了dispatcher的值,默认值就失效了
dispatcher标签可以出现多次
注意:
取值
filter-mapping下的子标签
生命周期相关方法
执行原理
Filter是单实例多线程的
init() 初始化方法
项目启动时执行
doFIlter(request,response,chain) 过滤逻辑
destory() 销毁方法
服务器正常关闭或项目从服务器移除
创建
当服务器启动的时候,服务器会创建Filter对象,执行init方法,实现初始化操作.
执行过滤
当请求来的时候,判断该请求是否需要过滤(根据路径判断),若需要,则调用filter的doFilter方法,执行过滤操作.若不需要过滤,直接访问资源
销毁
当服务器正常关闭或项目从服务器上移出的时候,服务器会调用destory方法,实现filter的销毁操作.
ServletRequest request
存放请求信息的对象
ServletResponse response
存放响应信息的对象
FilterChain chain(了解)
多个filter对一个请求进行的过滤的时候,形成一个过滤器链,当第一个过滤器放行的时候,将请求放行到下一个过滤器上.若当前的过滤器是最后一个过滤器,放行的时候才可以到达目标资源
1.编写一个类
2.编写配置文件
3.测试
实现Filter接口
重写抽象方法(doFilter())
注册filter
绑定路径
是什么
作用
应用场景
过滤器和servlet及listener成为javaweb的三大组件
过滤请求和响应
自动登录,统一编码,权限控制.....
概述
入门案例
doFilter方法
Filter生命周期(了解)
Filter其他内容
错误的友好页面
只需要在项目下提供错误的友好页面
方法增强
1.装饰者类和被装饰者类实现同一个接口或者继承同一个类
2.在装饰者类中需要有被装饰者的对象引用.
3.对需要增强的方法进行增强
4.对不需要增强的方法调用原来的逻辑即可.
方式一:继承
方式二:动态代理
方式三:装饰者模式
领取专属 10元无门槛券
私享最新 技术干货