Filter快速入门
开始学习Filter这个知识点,单词是过滤器和拦截器的作用。Filter是Javaweb中的过滤器,可以拦截所有访问web资源的请求或响应操作。Filter这个知识点很重要,在javaweb开发中,这个是我们需要重点掌握的一个知识点。
1.使用场景
使用Filter主要场景是拦截判断是否登录,权限管理,例如不同角色权限是不同,请求在这个角色之外的操作会被拦截。还有一个使用场景就是全局给项目中全部servlet都设置UTF-8编码,防止中文乱码的情况。
这里,我们来看线上产品,某一家公司的登录拦截,使用了Filter,我们看看效果。
浏览器打开
点击上图中,红圈的结构式检索,看看登录拦截效果。
立马就让你去登录,这个就是一个典型的使用Filter的场景。
这里简单来分析一下这个拦截过程:
1) 用户没有登录,点击结构式检索这个请求
2) 这个请求发送到服务器上对应的Servlet处理之前被Filter给拦截了
3) 在Filter中代码先从session中取出用户数据,看看用户是否存在
4) 如果用户是null,说明没有登录,需要拦截
5) 如果用户是数据库中存在用户,放开拦截,让请求继续下去
下面,我们来一个Filter快速入门的练习,体会一下这个拦截和放行的过程。
2.Filter快速入门步骤
1)创建一个类实现Filter接口
2)重写接口中方法,doFilter方法是真正过滤的。
3)在web.xml文件中配置
在Filter的doFilter方法内如果没有执行chain.doFilter(request,respons