02 Filter过滤器
Filter
一、Filter过滤器
Filter过滤器它是JavaWeb的三大组件之一。三大组件分别是:Servlet程序、Listener监听器、Filter过滤器
Filter过滤器是JavaEE的规范。也就是接口
Filter过滤器作用:拦截请求,过滤响应。
拦截请求常见的应用场景有:
- 权限检查
- 日记操作
- 事务管理
...
二、Filter初体验

Filter过滤器的使用步骤:
1、编写一个类去实现Filter 接口
2、实现过滤方法doFilter()
//AdminFilter.java Httpsession session = httpservletRequest.getsession();
object user = session.getAttribute("user");
HttpservletRequest httpservletRequest = (HttpServletRequest) servletRequest; //如果等于null,说明还没有登录
if (user == null) {
servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest,servletResponse);
return;
}
else{
//让程序继续往下访问用户的目标资源
filterchain.doFilter(servletRequest,servletResponse);
)
3、到web.xml中去配置Filter的拦截路径
<!-- web.xml --> <!--filter标签用于配置一个Filter过滤器-->
<filter>
<!--给fiLter起一个别名-->
<filter-name>AdminFilter</filter-name>
<!--配置filter的全类名-->
<filter-class>com.atguigu.filter.AdminFilter</filter-class>
</filter> <!--filter-mapping配置FiLter过滤器的拦截路径-->
<filter-mapping>
<!--filter-name表示当前的拦截路径给哪个filter使用-->
<filter-name>AdminFilter</filter-name>
<!-- url-pattern配置拦截路径表示请求地址为: http://ip:port/工程路径/映射到IDEA的web目录
admin/*表示请求地址为: http://ip:port/工程路径/ admin/*
-->
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
三、Filter的生命周期
- Filter的生命周期包含几个方法
- 1、构造器方法
- 2、init初始化方法
第1,2步,在web工程启动的时候执行(Filter已经创建) - 3、doFilter过滤方法
第3步,每次拦截到请求,就会执行 - 4、destroy销毁
第4步,停止web工程的时候,就会执行(停止web工程,也会销毁Filter过滤器)
四、FilterConfig类
FilterConfig类见名知义,它是Filter过滤器的配置文性类。
Tomcat每次创建Filter的时候,也会同时创建一个FilterConfig类,这里包含了Filter配置文件的配置信息。
FilterConfig类的作用是获取filter过滤器的配置内容
1、获取 Filter的名称filter-name的内容
filterConfig.getFilterName()
2、获取在Filter中配置的init-param初始化参数
//事先要在web.xml中配置
filterConfig.getInitParameter("...")
3、获取ServletContext对象
filterConfig.getServletContext()
五、FilterChain过滤器链

六、Filter的拦截路径
三种拦截方式
精准匹配
<ur1-pattern> /admin/jackyfu.html</url-pattern>
目录匹配
<url-pattern> /admin/*</url-pattern>
后缀名匹配
<ur1-pattern> *.html</url-pattern>
Filter过滤器只关心请求的地址是否匹配,而不关心请求的资源是否存在。
02 Filter过滤器的更多相关文章
- filter 过滤器(监听)
Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, ...
- Java防止SQL注入2(通过filter过滤器功能进行拦截)
首先说明一点,这个过滤器拦截其实是不靠谱的,比如说我的一篇文章是介绍sql注入的,或者评论的内容是有关sql的,那会过滤掉:且如果每个页面都经过这个过滤器,那么效率也是非常低的. 如果是要SQL注入拦 ...
- Filter(过滤器)学习
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- javaweb学习总结(四十二)——Filter(过滤器)学习
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- Filter过滤器简单应用( 接口访问控制 )
一.描述 在提供安卓.IOS客户端接口时,可以在登陆接口分配Session给客户端,用于判断其他接口是否是合法访问,以避免将所有的接口都暴露在web中可以由路径直接访问.但是最近的一个项目中的移动接口 ...
- 如何配置Filter过滤器处理JSP中文乱码
参考Tomcat服务器目录webapps的examples示例 简单配置步骤:1.在项目web.xml文件添加过滤器标记<filter>和<filter-mapping>:2. ...
- Filter(过滤器)常见应用
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(四十六)——Filter(过滤器)常见应用 一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html F ...
- Filter过滤器(1)
Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ht ...
- Servlet的学习之Filter过滤器技术(1)
本篇将讲诉Servlet中一项非常重要的技术,Filter过滤器技术.通过过滤器,可以对来自客户端的请求进行拦截,进行预处理或者对最终响应给客户端的数据进行处理后再输出. 要想使用Filter过滤器, ...
随机推荐
- day31 Pyhton 面向对象的基础 三大特性
一.内容回顾 封装 1.概念 笔记 2.__名字 在类的外部就不能用了 3.私有化的 不能被子类继承,也不能在其他任何类中调用 三个装饰器方法(装饰类中的方法) 1.不被修饰的 普通方法,会使用对象 ...
- 打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),写出来真是泪牛满面啊。
本程序可以完美输出,效果如下: 相信你已经很期待代码实现了吧,其实代码真的不难,关键是思想.我说说我的想法吧,首先我构造了一个数组,保存了上面图片中字符一行的一半.聪明的你肯定看出来了,上面多数字符都 ...
- openresty使用redis作本地缓存
一,为什么要使用redis作本地缓存? 1,使用缓存通常会有三层 当使用openresty作为web服务器时,我们更看重是的它可以通过lua编程的扩展能力,就openresty而言,它可以实现的功能非 ...
- ffmpeg实现视频的翻转与旋转(ffmpeg4.2.2)
一,ffmpeg的安装 请参见: https://www.cnblogs.com/architectforest/p/12807683.html 说明:刘宏缔的架构森林是一个专注架构的博客,地址:ht ...
- Python之集合详解
定义: 1.不同元素组成 2.无序 3.集合中的元素必须是不可变类型 创建集合 s = {1,2,3,4,5,6,7,8} 1.定义可变集合 >>> set_test = set(' ...
- SSM中 spring-mvc.xml 配置文件
<!--扫描控制器包--><context:component-scan base-package="<!--控制器包所在路径-->">< ...
- Qlik Sense插件及QRS接口补充
date: 2019-10-18 09:10:00 updated: 2019-10-18 15:18:00 Qlik Sense插件及QRS接口补充 1.插件 1.1 获取数据方式 理论上 Engi ...
- 涨知识的一个pwn题:de1ctf_2019_weapon
没做出来,wtcl,看了师傅们的wp才找到思路,收获了很多 怎么说呢,这个题很简单但是很巧妙,逆起来几乎无难度 漏洞点位于free函数,一个简单的UAF漏洞 然后接下来说说我一开始的思路 由于程序没有 ...
- Git之同一台电脑连接多个远程仓库
问题描述 有时候我们需要在同一台电脑上连接多个远程仓库,比如连接两个GitHub账号,那么需要两个条件. 1.生成两对 私钥/公钥,并且密钥文件命名不能重复. 2.push 到remote时区分两个账 ...
- D. New Year Santa Network 解析(思維、DFS、組合、樹狀DP)
Codeforce 500 D. New Year Santa Network 解析(思維.DFS.組合.樹狀DP) 今天我們來看看CF500D 題目連結 題目 給你一棵有邊權的樹,求現在隨機取\(3 ...