Filter过滤器的例子与注解配置

article/2025/9/6 10:42:32

概念

作用

创建

创建web项目

定义类实现Servlet接口,实现其抽象方法

配置Filter

原理

注解配置

过滤器放行

Filter的生命周期

Filter的拦截路径

Filter的拦截方式

Filter的过滤器链


 

概念

  • 当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能

作用

一般用于完成通过的操作。比如登录验证,统一编码处理,敏感字符过滤等等

创建

创建web项目

定义类实现Servlet接口,实现其抽象方法

注意实现的是servlet包下的Filter

package com.lingaolu.filter;import javax.servlet.*;
import java.io.IOException;/*** @author 林高禄* @create 2020-08-04-9:42*/
public class Demo1 implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("demo1过滤器进来了......");}@Overridepublic void destroy() {}
}

配置Filter

在项目的web.xml文件 中配置,(原理在下面说)

启动访问index.jsp

控制台输出

为什么index.jsp页面看不到内容,因为被我们的拦截器给拦截,说明我们的拦截器成功了

原理

项目启动的时候会把配置文件web.xml解析,把相关东西装进容器

1、我们访问的是这个地址:http://localhost/filterWeb/index.jsp,找到虚拟目录filterWeb

2、接着拦截的路径进行匹配/*,也就是配置里的<url-pattern>/*</url-pattern>内容,会映射找到<filter-name>demo1</filter-name>的内容demo1

3、接着根据demo1找到<filter></filter>标签里的内容,根据<filter-name>demo1</filter-name>对应找到<filter-class>com.lingaolu.filter.Demo1</filter-class>,这样就找到了我们的Demo1类,

4、通过反射创建实例,然后会执行doFilte方法,这是规范,所以要实现Filter类并且实现相关的方法

注解配置

通过上面我们了解了Filter拦截器的创建与在web.xml的配置,但是配置有点繁琐,所以我们介绍一下注解配置

我们创建新的类Demo2.同样实现Filter接口

可以使用注解配置,然后我们的web.xml不需要写任何配置,也就是这个文件你删掉也可以

接着在我们Demo2类名上加上注解@WebFilter("/*"),其中"/*"是你定义的拦截路径

ctrl+鼠标左键查看一下 WebFilter

 

我们先把xml配置的demo1的拦截器配置给注释掉,免得影响我们的demo2

启动访问index.jsp

 看控制台输出

是不是很方便,比在xml配置方便多了,所以以后我们写使用注解配置,也不需要创建web.xml文件了。

这里我们可以快捷的创建过滤器

模板可以自己定义

过滤器放行

上面我们的例子里面index.jsp页面被拦截了,所以没有出现任何内容,对于满足某些条件的连接,我们还是要放行的,比如登录的用户等等,将来可以做登录验证等等,满足条件的就放行,

  • 如果全部都拦截,那么这个项目就没意义
  • 如果全部都放行,那么拦截就可能没什么意义
  • 将来做一些判断,满足某些条件的放行
filterChain.doFilter(servletRequest,servletResponse);

启动访问index.jsp,有内容了,是因为我们放行了

控制台输出

Filter的生命周期

Filter过滤器的生命周期

Filter的拦截路径配置

Filter过滤器的拦截路径配置

Filter的拦截方式

Filter的拦截方式配置

Filter的过滤器链

Filter的过滤器链 


http://chatgpt.dhexx.cn/article/TvpMypiB.shtml

相关文章

Filter 过滤器接口详解

目录 1、Filter接口描述 2、如何使用Filter接口定义一个过滤器&#xff1f; 3、Filter接口的工作原理 4、Filter、FilterChain、FilterConfig、FilterRegistration、FilterRegistration.Dynamic 接口综述 &#xff08;1&#xff09;如何使用FilterConfig接口对Filter实例进…

Filter过滤器的作用

Filter过滤器的作用 Filter的作用&#xff1a;过滤器处于客户端和服务器端资源之间&#xff0c;对所有的请求或者响应进行拦截操作Filter过滤器在开发过程中的实际运用&#xff1a;Servlet 开发和Filter开发做对比Servlet开发Filter开发 Filter的作用&#xff1a;过滤器处于客户…

Filter 过滤器的使用

目录 一、Filter简介 二、Filter使用 1、Filter 的初体验 2、Filter 的生命周期 3、FilterConfig类 4、FilterChain过滤器链 5、Filter 的拦截路径 1&#xff09;精确匹配 2&#xff09;目录匹配 3&#xff09;后缀名匹配 一、Filter简介 Filter 过滤器它是 JavaWeb…

Filter过滤器工作原理

Filter过滤器工作原理 Filter简介 Filter也称之为过滤器&#xff0c;它是Servlet技术中最激动人心的技术之一&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静态html文件等进行拦截&#xff0…

Filter过滤器

文章目录 FilterFilter过滤器的简单说明Filter的执行顺序 Eclipse创建简单的Filter过滤器Filter过滤不到指定路径 Filter Filter过滤器的简单说明 1.过滤器是一个驻留在服务器端的web组件&#xff0c;可以截取客户端和服务器端之间的请求与响应的信息 2.过滤器Filter是对客户…

FilterChain 过滤器链和拦截路径

Filter 过滤器 Chain 链&#xff0c;链条 FilterChain 就是过滤器链&#xff08;多个过滤器如何一起工作&#xff09; Filter 的拦截路径 精确匹配&#xff1a; <url-pattern>/target.jsp</url-pattern>以上配置的路径&#xff0c;表示请求地址必须为&#xff1…

Filter 过滤器

一、Filter 过滤器概念 ① Filter 过滤器它是 JavaWeb 的三大组件之一 三大组件分别是&#xff1a;Servlet 程序、 Listener 监听器、 Filter 过滤器 ② 他是 JavaEE 的规范&#xff0c;也就是接口 ③ 作用&#xff1a;拦截请求&#xff0c;过滤响应 拦截请求常见的应用场景有&…

filter过滤器的概念

文章目录 1. 图示2. 什么是Filter3. 代码演示4. 使用场景&#xff1a;事务处理 1. 图示 2. 什么是Filter Filter也属于Servlet规范Filter开发步骤&#xff1a;新建类实现Filter接口&#xff0c;然后实现其中的三个方法&#xff1a;init、doFilter、destroy 配置Filter&#xf…

Filter 过滤器使用

一、什么是Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。 三大组件分别是&#xff1a;Servlet 程序、Listener 监听器、Filter 过滤器 Filter 过滤器它是 JavaEE 的规范。也就是接口 Filter 过滤器它的作用是&#xff1a;拦截请求&#xff0c;过滤响应。 拦截…

Filter过滤器(超详细)

声明&#xff1a;本文是根据博主学习内容所整理得的笔记&#xff0c;仅作为交流学习使用&#xff0c;需要观看视频的请移步&#xff1a;http://www.atguigu.com/ 1.Filter &#xff1f;什么是过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。 三大组件分别是&#xff1a;S…

GitHub使用教程(完整教程)

第一步&#xff1a;进入官网 &#xff08;https://github.com/&#xff09; 第二步&#xff1a;新建账号——输入用户名&#xff0c;邮箱&#xff0c; 密码——邮箱确认——登录GitHub 第三步&#xff1a;创建仓库 第三步&#xff1a;查看仓库 第四步&#xff1a;实现本地项目…

Git和Github详细入门教程(别再跟我说你不会Git和Github)

前言&#xff1a;基础差建议先观看B站视频&#xff08;关键字&#xff1a;GitHub&#xff09;&#xff0c;该教程是根据视频教程而制。 文章目录 01.Git概述02.Git的本地仓库操作 Git的版本回退操作 03.远程仓库05.Git的分支操作06.冲突的产生与解决07.Git实用功能08.忽略文件0…

GitHub Actions 入门教程

https://jiangren.com.au/blog/github-actions 一、GitHub Actions 是什么&#xff1f; 大家知道&#xff0c;持续集成由很多操作组成&#xff0c;比如抓取代码、运行测试、登录远程服务器&#xff0c;发布到第三方服务等等。GitHub 把这些操作就称为 actions。 很多操作在不…

小白入门~ GitHub和Git超详细使用教程

https://github.com/ 这是GitHub的官方网站&#xff0c;在官网上可以注册属于自己的GitHub账号&#xff0c;网上是全英文的&#xff0c;对于英语不好的同学建议使用谷歌浏览器&#xff0c;谷歌浏览器可以翻译网页变为中文使用起来十分方便。 通过简单的步骤之后你就会有一个属于…

GitHub使用教程(项目下载)

1.登录GitHub后选择左上角搜索框&#xff08;以点餐系统为例&#xff09; 2.选择合适的项目进入 3.选择合适的项目进入后&#xff0c;点击Code 4.点击Download ZIP即可下载项目代码压缩包

github使用教程图文详解(一)[入门]

git的使用和踩坑 Git的注册下载本地github工具绑定ssh秘钥获取ssh秘钥官网绑定ssh秘钥 创建远程库初始化仓库设置全局签名和单仓库签名的作用单仓库签名全局用户签名 提交到本地仓库git区域的划分提交到缓存区提交本地仓库和备注提交总结注意: 提交到远程仓库克隆远程仓库总结 …

GitHub 的 10 分钟快速入门教程

Hello World 这一篇是 GitHub 的 10 分钟快速入门教程&#xff0c;因为找不到中文版&#xff0c;大橙子自己给大家翻译了一下。 Hello World 项目是计算机编程的一个历史悠久的传统。这一篇我们也通过这个简单的练习让你学习到新的知识。那么就让我们开始 GitHub 的学习旅程吧…

【Github教程】史上最全github使用方法:github入门到精通

【初识Github】 首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。 Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名…

Github和Git的基本教程,适合新手

借鉴了这个博主的笔记 观看了b站up主的视频 Github和Git的基本使用 Github一.基本概念二 .创建账号三.创建仓库四&#xff1a;仓库管理五.仓库主页英文介绍 Git一. Git优势二.下载地址三.基本信息设置四.工作区域&#xff08;上传文件到Github&#xff09;五.删除文件六. 修改…

github入门教程最全中文版(官方)

该的Hello World项目是计算机编程历史悠久的传统。这是一个简单的练习&#xff0c;可以让你在学习新东西时开始学习。让我们开始使用GitHub&#xff01; 您将学习如何&#xff1a; 创建和使用存储库启动并管理新分支对文件进行更改并将其作为提交推送到GitHub打开并合并拉取请…