Filter过滤器

java过滤器(Filter) filter也称之为过滤器,它是javaWeb三大组件之一(Servlet程序、Listener监听器、Filter过滤器)既可以对请求进行拦截,也可以对响应进行处理。权限检查,日记操作、拦截请求、过滤操作、对请求字符设置编码。要想介绍filter,就必须介绍Filter中的三个方法。/*** web应用启动时,web服务器将创建Filter的实例对象,并调用init方法,读取web.xml的配置,完成对象的初始化功能, 阅读详情

Filter过滤器

什么是Filter过滤器

  1. Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器
  2. Filter 过滤器它是 JavaEE 的规范。也就是接口
  3. Filter 过滤器它的作用是:拦截请求,过滤响应。

拦截请求常见的应用场景有:

  1. 权限检查

  2. 日记操作

  3. 事务管理

    ……等等

Filter的使用

要求:在你的 web 工程下,有一个 admin 目录。这个 admin 目录下的所有资源(html 页面、jpg 图片、jsp 文件、等等)都必须是用户登录之后才允许访问。

在这里插入图片描述

Filter 的代码:

public class AdminFilter implements Filter {
/**
* doFilter 方法,专门用于拦截请求。可以做权限检查
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;

HttpSession session = httpServletRequest.getSession(); Object user = session.getAttribute("user");
// 如果等于null,说明还没有登录
if (user == null) {

servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest,servletResponse);
return;
} else {
// 让程序继续往下访问用户的目标资源
filterChain.doFilter(servletRequest,servletResponse);
}
}

}

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 过滤器的使用步骤:

  1. 编写一个类去实现 Filter 接口
  2. 实现过滤方法 doFilter()
  3. 到 web.xml 中去配置 Filter 的拦截路径

Filter的生命周期

Filter 的生命周期包含几个方法

  1. 构造器方法

  2. init 初始化方法

    第 1,2 步,在 web 工程启动的时候执行(Filter 已经创建)

    3.doFilter 过滤方法

​ 第 3 步,每次拦截到请求,就会执行

4.destroy 销毁

​ 第 4 步,停止 web 工程的时候,就会执行(停止 web 工程,也会销毁 Filter 过滤器)

FilterConfig类

它是 Filter 过滤器的配置文件类。

Tomcat 每次创建 Filter 的时候,也会同时创建一个 FilterConfig 类,这里包含了 Filter 配置文件的配置信息。

FilterConfig 类的作用是获取 filter 过滤器的配置内容

  1. 获取 Filter 的名称 filter-name 的内容
  2. 获取在 Filter 中配置的 init-param 初始化参数
  3. 获取 ServletContext 对象

java 代码:

@Override
public void init(FilterConfig filterConfig) throws ServletException { System.out.println("2.Filter 的 init(FilterConfig filterConfig)初始化");
//1、获取Filter 的名称 filter-name 的内容
System.out.println("filter-name 的值是:" + filterConfig.getFilterName());
//2、获取在web.xml 中配置的init-param 初始化参数
System.out.println("初始化参数 username 的值是:" + filterConfig.getInitParameter("username")); System.out.println("初始化参数 url 的值是:" + filterConfig.getInitParameter("url"));
//3、获取ServletContext 对象
System.out.println(filterConfig.getServletContext());
}

web.xml 配置:

<!--filter 标签用于配置一个Filter 过滤器-->
<filter>
<!--给filter 起一个别名-->
<filter-name>AdminFilter</filter-name>
<!--配置filter 的全类名-->
<filter-class>com.atguigu.filter.AdminFilter</filter-class>

<init-param>
<param-name>username</param-name>
<param-value>root</param-value>
</init-param>

<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost3306/test</param-value>
</init-param>

</filter>

FilterChain过滤器链

  • Filter 过滤器
  • Chain 链,链条
  • FilterChain 就是过滤器链(多个过滤器如何一起工作)

在这里插入图片描述

Filter的拦截路径

精确匹配

<**url-pattern**>/target.jsp</**url-pattern**>

以上配置的路径,表示请求地址必须为:http://ip:port/工程路径/admin/*

目录匹配

<**url-pattern**>/admin/*</**url-pattern**>

以上配置的路径,表示请求地址必须为:http://ip:port/工程路径/admin/*

后缀名匹配

<**url-pattern**>*.html</**url-pattern**>

以上配置的路径,表示请求地址必须以.html 结尾才会拦截到

<**url-pattern**>*.do</**url-pattern**>

以上配置的路径,表示请求地址必须以.do 结尾才会拦截到

Filter 过滤器它只关心请求的地址是否匹配,不关心请求的资源是否存在!

Filter概述、接口及配置 阅读详情

相关推荐

filter(过滤器)

Filter(过滤器)是指在计算机中对数据进行筛选、过滤和修改的一种组件或模块,主要用于在数据传输和处理的过程中对数据进行处理或拦截。在Web开发中,Filter是Java Servlet规范中的一部分,它可以拦截客户端请求和服务器响应,并对它们进行处理、过滤和转换。权限控制:根据用户身份和权限,拦截非法请求或重定向到认证页面。表单验证:对表单提交的数据进行验证,确保数据的完整性和正确性。编码转换:对请求和响应的编码进行转换,以解决乱码问题。

记录java学习日常~ 2542

(重温)JavaWeb--Filter 过滤器(JavaWeb 的三大组件之一)

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

轻狂书生FS的博客 2804

Filter(过滤器)

过滤器的基本概念Servlet 过滤器从字面可理解为经过一层层的过滤处理才达到使用的要求,而其实 Servlet 过滤器就是服务器与客户端请求与响应的中间层组件。在实际项目开发中 Servlet 过滤器主要用于对浏览器的请求进行过滤处理,将过滤后的请求再转给下一个资源。FilterFilter(过滤器)是 JavaWeb 三大组件之一(另外两个是 Servlet 和 Listener),是在 2000 年发布的 Servlet2.3 规范中加入的一个接口,是 Servlet 规范中非常实用的技术。

专注于技术分享的博主 2190

【全面详解】Filter过滤器的使用

一、什么是过滤器 Filter称之为过滤器,是SerlvetAPI提供的一个Filter接口,A类实现了这个接口,那么A类称之为过滤器Filter。主要用户的请求(HttpServletRequest)进行预处理,也可以对服务器响应后的数据进行处理。也就是在请求到达服务器处理之前进行拦截,将过滤后符号条件的数据交给服务器进行处理生成响应,最后Filter再对服务器响应的数据进行处理。 下面以登录权限的验证为例子:用户在没有登录的情况下,是不允许查看html,jsp的界面...

CodingLJ 5506

JavaWeb过滤器(Filter)详解

Filter表示过滤器,是 JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。下面我们通过Filter快速入门程序掌握过滤器的基本使用操作:第1步,定义过滤器 :1.定义一个类,实现 Filter 接口,并重写其所有方法。第2步,配置过滤器:Filter类上加 @WebFilter 注解,配置拦截资源的路径。

Delu3376451753的博客 2737

STM32低功耗模式下ADC采样抖动的5个隐藏陷阱及解决方案(实测避坑)

本文深入探讨了STM32低功耗模式下ADC采样抖动的5个常见陷阱及解决方案,包括多通道采样电压跃迁、外设开关信号稳定、低功耗模式与ADC时钟同步、输入阻抗失配以及基准电压稳定性问题。通过实测数据和优化代码示例,帮助工程师有效规避ADC采样数据抖动问题,提升物联网设备的测量精度和稳定性。

weixin_30316097的博客 381

过滤器Filter

1.过滤器是什么? 过滤器是Servlet的高级特性之一,也别把它想得那么高深,只不过是实现Filter接口的Java类。 1.过滤器是什么?

m0_61609890的博客 3205

Halcon工业相机开发全流程:从SDK配置到实时图像采集(C++版)

本文详细介绍了使用C++进行Halcon工业相机开发的完整流程,从SDK配置到实时图像采集的实现。涵盖环境搭建、设备初始化、回调机制、参数控制等关键环节,并提供异常处理和实战案例,帮助开发者快速掌握工业视觉系统的开发技巧。

weixin_33728268的博客 512

Java中的过滤器Filter

一:Filter简介 二:关于Filter (一)如何使用Filter进行过滤 (二)过滤器链 (FilterChain) (三)Filter的配置 1.通过web.xml文件配置 2.通过注解配置 (四)Filter的生命周期 (五)中文乱码过滤器 三:测试案例 1.单个过滤器 2.多个过滤器

m0_68988603的博客 1万+

群晖NAS搭建Git Server避坑指南:从SSH配置到权限管理的完整流程

本文提供了一份详尽的群晖NAS搭建Git Server实战指南。文章从启用并安全配置SSH服务入手,深入解析了用户权限体系设计、SSH连接与仓库初始化、客户端SSH密钥配置等核心步骤,并提供了常见错误排查与生产环境加固方案,帮助开发者成功构建私有、安全的代码托管平台。

rock5的博客 418

STM32解码EM4100的曼彻斯特编码(库函数版本)

前言: 前些日子老师布置一个任务叫我们焊接一个RFID读卡器,其中刚好我们手上也有一个STM32F103RBT6开发板,老师于是布置任务叫我们用STM32完成对EM4100进行读卡操作 EM4100简介: 中 文 名:EM4100卡 存储容量:64bit 工作频率:125KHZ 读写距离:2-15cm 产品名称:EM4100/EM4102卡 芯片类型:μEM瑞士微电 EM4100/EM4102 擦写寿命:读不限,只读 外形尺寸:ISO标准卡/厚卡 封装材料:PVC、ABS 典型应用:身份识别、考勤系统、门禁

Gancenty 8597

Filter过滤器是什么?

1.what filter过滤器的作用:拦截请求 2.why 网页上的某些操作或数据只有用户登录之后才能访问,用filter来过滤掉未登录的用户,只让已经登录的用户继续访问 3.for 利于数据的管理 4.code public class ManagerFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { }

weixin_44853600的博客 1817

Mamba SSM 实战:IMDb 文本分类 + Mamba-ssm 全流程

Mamba SSM 文本分类链路:IMDb 二分类 → MambaLMHeadModel (d_model=256, n_layer=8, d_state=16, exp2=2) → 末 token 分类头。5 epoch 达 89.2% 准确率 (与 BERT-base 持平), 但显存降低 44% (3.5GB vs 6.2GB)。建议序列长度 ≥ 1024 再选 Mamba, 短序列 (< 512) 用 BERT 更高效。扩展时注意d_state。

m0_71589036的博客 57

Filter 过滤器的介绍及使用

Filter过滤器 MySql的语法看这篇就够了,传送地址:MySql必知必会 JSP的使用看这篇就够了,传送地址:JSP必知必会 文章目录Filter过滤器一、Filter过滤器的介绍二、Filter过滤器的使用三、Filter过滤器的生命周期四、FilterConfig类五、FilterChain过滤器链六、Filter的拦截路径 一、Filter过滤器的介绍 Filter过滤器是JavaWeb三大组件之一,其余组件是:Servlet程序、Listener监听器 Filter过滤器是JavaEE规范,

立志成为一个前端、后端、测试全方位发展的程序员 6867

〖Python接口自动化测试实战篇④〗- 接口自动化测试详解

[接口测试] 是相对来说和我们的功能测试 [最为接近的一种自动化测试手段] ,所以我们首先来学习接口测试的内容。 实现接口的开发与接口的测试,在我们的思维上、想法上、面向的态度上都是不一样的。所以大家要有一个思维上的转换,要认识了解一下 接口测试到底是做什么的、它的功能、意义在哪里。...

易编橙 · 终身成长社群,相遇已是上上签! 5万+

Python爬虫实战:高效爬取中国专利数据库的完整指南

在当今信息爆炸的时代,专利数据作为技术创新的重要指标,对企业研发、市场分析和学术研究都具有极高价值。中国作为全球专利申请量最大的国家,其专利数据库包含了海量的技术创新信息。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的中国专利数据库爬虫系统。中国专利数据库主要由国家知识产权局(CNIPA)维护,包含发明专利、实用新型专利和外观设计专利三大类。截至2023年,中国专利数据库已收录超过400万件发明专利和300万件实用新型专利。

2201_76125261的博客 1570

Filter过滤器教程

Filter过滤器教程-IDEA

zhulir的博客 1921

EMB电子机械制动系统冗余备份方案介绍

随着汽车智能化技术的快速发展,自动驾驶技术的不断升级,对车辆制动系统的可靠性和安全性提出了更高要求。根据国际汽车安全法规(如UN R13-H)的最新修订,L3级及以上自动驾驶车辆必须配备具有冗余功能的制动系统,以确保在任何单一故障发生时仍能维持部分或全部制动能力。本文重点讨论最具前瞻性的EMB(电子机械制动)系统的冗余备份设计方案

m0_59012156的博客 853

Filter的过滤器链

Filter的介绍 过滤器链 我们已经了解了过滤器,并且知道可以配多个过滤器,那么多个滤器之间的执行顺序是什么样的呢 我们建立8个过滤器,demo1,demo2,demo3,和demo11在web.xml配置,demo4,demo5,demo6,和demo41用注解配置 demo1代码 package com.lingaolu.filter; import javax.servlet.*; import java.io.IOException; /** * @aut.

林高禄 6864

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Filter过滤器讲解

Filter过滤器的基本原理和基本用法

徐大大的博客 2069

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 解决表单重复提交
下一篇: ThreadLocal
Sancean
博客等级 码龄6年 2472粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值