Filter的作用是什么

发布时间:2021-03-09 16:09:39 作者:小新
来源:亿速云 阅读:436

小编给大家分享一下Filter的作用是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  JavaWeb有三大组件,Servlet、Listener、Filter。本文将介绍Filter,主要从用处、种类、使用方法等进行介绍。

  Filter可以认为是Servlet的一种“加强版”。使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

Filter有以下几个用处:

  在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest;根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据;在HttpServletResponse到达客户端之前,拦截HttpServletResponse;根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。二、种类用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求(比如对用户登录状态进行判定);日志Filter:详细记录某些特殊的用户请求;负责解码的Filter:包括对非标准编码的请求解码;能改变XML内容的XSLTFilter等;Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截。三、使用方法3.1创建Filter步骤

  1)创建Filter处理类;2)web.xml文件中配置Filter,或通过注解的方式配置。(顺便说一下,三大组件都需要在web.xml中进行配置)

  创建Filter类

  创建Filter类必须实现Filter接口,Filter接口中包含三个方法:

  voidinit(FilterConfigconfig):用于完成Filter的初始化;voiddestroy():用于Filter销毁前,完成某些资源的回收;voiddoFilter(ServletRequestsrq,ServletResponsesrp,FilterChainchain):实现过滤功能,该方法就是对每个请求及响应增加的额外处理。

  doFilter()方法,在该方法中可实现对用户请求进行预处理,也可实现对服务器响应进行后处理,分界线就是是否调用了chain.doFiler(),调用之前是请求预处理,调用之后是响应后处理。这是因为,web服务器会检查FilterChain对象中是否还有Filter,如果有,则调用下一个Filter,没有,则调用目标资源。

  配置Filter

  与配置Servlet相似,配置Filter,需要配置两个部分:1)配置Filter名;2)配置Filter拦截URL模式与Servlet的区别在于:Servlet通常只配置一个URL,而Filter可以同时拦截多个请求的URL。因此,在配置Filter的URL模式时通常会使用模式字符串,使得Filter可以拦截多个请求。配置的方式有两种:在Filter类中通过注解进行配置,在web.xml文件中进行配置。

  web.xml中进行配置logfilter.LogFilterlog

  Filter里doFilter()方法里的代码就是从多个Servlet的service()方法里抽出的通用代码。通过使用Filter可以实现更好的代码复用。

以上是“Filter的作用是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. 【Python】filter()的结果仍可以被filter()
  2. js中filter()基本语法是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

filter

上一篇:使用PHP怎么Cli 模式中设置进程名称

下一篇:SqlLoader如何使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》