filter过滤器类-全网最详细的filter

filter是什么

是一个过滤器类,Filter对用户请求进行预处理,接着将请求交给dispatcher servlet(分端控制器)进行预处理并生成响应,最后Filter再对服务器响应进行后处理。

客户端请求消息和controller请求消息做比对(controller是标准)

filter开发

步骤:

  1.   初始化-从webapplicationcontext中获取controller里面的消息,让它作为过滤标准
    1. 增加@webfilter注解,让其类成为过滤器类;引入filter类
    2. 对filter类进行开发-->复写3个方法-->得出过滤器的第一步是初始化
    3. 怎么获取过滤标准-->增加@Resource注解,引入webapplicationcontext类-使用bean方法-引入RequestMappingHandlerMapping类--在方法中引入请求方法,请求地址RequestMappingInfo,HandlerMethod--->对内容进行循环最终得到可打印数据--得到标准---但这个标准是原本HandlerMapping类自带的,只是拿出这个标准和客户端请求消息对比
  2. 获取客户端的请求消息
    1. 因为入参得到的方法少,先上转到子类httpservlerequest,使用子类的方法
    2. 按照需要找方法:getRequestURI接口地址、getMethod接口方法,getParameterMap请求参数,得到后再循环遍历打印出来
  3. 过滤
    1. 过滤成功
      1. 获取请求的URL对应的方法为controllerMethod
      2. 如果map里包含客户端请求的url(reqUrl),并且controllerMethod方法和客户端方法reqMethod相等时就判断过滤成功,继续执行chain.doFilter(request, response)。
    2. 过滤失败
      1. request.getRequestDispatcher(""):获取当前请求的请求分派器,参数为空字符串表示获取当前请求的分派器。
      2. forward(request, response):使用获取到的请求分派器将当前请求转发到另一个资源,参数包括当前请求对象和响应对象。  
    </
  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璇嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值