专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Javaweb过滤器基础知识总结

Javaweb过滤器基础知识总结

更新时间:2020-10-26 17:29:00 来源:动力节点 浏览1053次

Javaweb是学习java编程的重要内容,接触过java的朋友们肯定都知道javaweb的重要性。在前面的文章中我们也介绍了javaweb三大组件是什么,分别是Servlet,Filter,Listener,相信大家对三大组件也有一定的了解,今天我们来更进一步的学习javaweb过滤器的相关知识。


过滤器是javaweb三大组件之一,它与Servlet很相似,但是过滤器是用来拦截请求的,而不是处理请求的。当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。可以这样理解javaweb过滤器:当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。可以理解为,Filter来决定是否调用Servlet,当执行完成Servlet的代码后,还会执行Filter后面的代码。


下面是javaweb过滤器的工作流程方式:

image.png


Javaweb过滤器的作用就是拦截,有四种拦截方式:REQUEST 是默认的,当输入其他的,那么默认的将取消(消失),请求拦的是直接请求,不拦转发请求REQUEST;转发(专门拦转发):FORWARD包含(专门拦包含):INCLUDE错误(专门拦错误):ERROR。


Javaweb过滤器的应用场景:(1)执行目标资源之前做预处理工作,例如设置编码,这种通常都会放行,只是在目标资源执行之前做一下准备工作。例如放行 :几乎所有的servlet中都需要写request.setCharacterEndoin()可以把它放入到一个Filter中;(2)通过条件判断是否放行,例如效验当前用户是否已经登录,或者用户IP是否已经被禁用;(3)在目标资源执行后,做一些后续的特殊处理工作,例如把目标资源输出的数据进行处理。


多个Filter的执行顺序,在我们的请求到达Servle之间是可以经过多个Filter的,一般来说,建议Filter之间不要有关联,各自处理各自的逻辑即可。这样,我们也无需关心执行顺序问题。如果一定要确保执行顺序,就要对配置进行修改了,执行顺序如下:(1)在web.xml中,filter执行顺序跟的顺序有关,先声明的先执行;(2)使用注解配置的话,filter的执行顺序跟名称的字母顺序有关,例如AFilter会比BFilter先执行;(3)如果既有在web.xml中声明的Filter,也有通过注解配置的Filter,那么会优先执行web.xml中配置的Filter。


学习java,就要学习javaweb,进而就要学习javaweb过滤器,上面就是今天介绍的javaweb过滤器相关基础知识,希望可以帮助java零基础的朋友们学习理解过滤器,另外可以在javaweb教程中学习更多的知识。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>