Filter过滤器及其作用

article/2025/9/6 9:58:10

1.什么是过滤器?

过滤器,顾名思义就是起到过滤筛选作用的一种事物,只不过相较于现实生活中的过滤器,这里的过滤器过滤的对象是客户端访问的web资源,也可以理解为一种预处理手段,对资源进行拦截后,将其中我们认为的杂质(用户自己定义的)过滤,符合条件的放行,不符合的则拦截下来

2.filter配置

  •  web.xml配置

<filter><filter-name>filter1</filter-name>//定义的filter名字<filter-class>work.filter.Filter1</filter-class>//filter类名(加上包名)</filter>​<filter-mapping><filter-name>filter1</filter-name><url-pattern>/*</url-pattern>//拦截的路径(一般使用/*,当然也可以根据自己的需要来自行配置)</filter-mapping>
  • 使用注解配置

@WebFilter(filterName = "Filterone",urlPatterns = "/*")

也可以简写为

@WebFilter("/*")

2.filter过滤器生命周期及其与生命周期相关的方法


Filter接口有三个方法,并且这个三个都是与Filter的生命相关的方法

destory():代表是filter销毁方法 当filter对象销毁时执行该方法

doFilter:代表filter执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法

init:代表filter对象初始化方法 filter对象创建时执行

public class Filterone implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {chain.doFilter(req, resp);}public void init(FilterConfig config) throws ServletException {}}

过滤器可以组成一个过滤器链,链中的每个过滤器都可以负责特定的操作和任务,客户端访问服务器的请求和响应在这些过滤器链之间传递,Filter接口用于调用过滤器中的一系列过滤器

3.过滤器的实例应用

3.1.解决乱码问题

配置过滤器在客户发送请求到达Servlet之前进行拦截后通过拦截器直接解决中文乱码问题

实现步骤:

  • 定义拦截器实现Filter接口
  • 配置拦截器(推荐使用注解配置,简单快捷)
  • 在doFilter()中设计乱码的解决代码
@WebFilter("/*")
public class FilterEnocding implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=UTF-8");chain.doFilter(req, resp);}public void init(FilterConfig config) throws ServletException {}

3.2.敏感词过滤

  • 对请求的数据进行敏感词汇过滤
  • 过滤敏感词替换为*

3.3.登录验证

  • 访问资源,验证是否已经登录
  • 如果已经登录直接放行
  • 如果未登录就挑战到登陆页面

登录selevet判断登录

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        req.setCharacterEncoding("utf-8");String username = req.getParameter("name");String password = req.getParameter("pwd");method me = new method();userinfo u = me.login(username,password);if (u!=null){req.getSession().setAttribute("u",u);resp.sendRedirect("show");
//            req.getRequestDispatcher("show").forward(req,resp);}else {resp.sendRedirect("orr.jsp");}}

进入主页面查询展示信息selevet,代码不再详细展示

        req.getRequestDispatcher("/fil/show.jsp").forward(req,resp);

过滤器配置以及过滤器内容

 

@WebFilter("/fil/*")//过滤器配置路径
public class Filterlogin implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {HttpServletRequest request = (HttpServletRequest)req;HttpServletResponse response = (HttpServletResponse)resp;userinfo u = (userinfo) req.getAttribute("u");if(u!=null){chain.doFilter(req, resp);//登录成功则继续向下执行进入展示页面}else {response.sendRedirect("../index.jsp");//失败则返回登录页面继续登录}}public void init(FilterConfig config) throws ServletException {}

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

相关文章

Filter 过滤器的介绍及使用

Filter过滤器 MySql的语法看这篇就够了&#xff0c;传送地址&#xff1a;MySql必知必会 JSP的使用看这篇就够了&#xff0c;传送地址&#xff1a;JSP必知必会 文章目录 Filter过滤器一、Filter过滤器的介绍二、Filter过滤器的使用三、Filter过滤器的生命周期四、FilterConfig类…

Java Servlet中Filter过滤器的原理以及使用方式

详细介绍了Java Web Servlet中的Filter过滤器的原理以及常见用法。 文章目录 1 Filter接口1.1 过滤器的生命周期1.2 doFilter过滤方法 2 Filter的使用3 Filter的执行顺序3.1 多个过滤器 4 Filter的应用4.1 脏话过滤器4.2 编码过滤器4.3 统计IP访问次数4.4 禁止动态资源缓存的过…

python filter过滤器的使用_Python filter过滤器原理及实例应用

filter的语法&#xff1a;filter(函数名字,可迭代的变量) 其实filter就是一个“过滤器”&#xff1a;把【可迭代的变量】中的值&#xff0c;挨个地传给函数进行处理&#xff0c;那些使得函数的返回值为True的变量组成的迭代器对象就是filter表达式的结果 那filter的第一个参数&…

vue filter 过滤器 详解

Vue.js 允许你自定义过滤器filter&#xff0c;可被用于一些常见的文本格式化。 &#xff08;注意vue版本号不同 用法也稍有不同&#xff09; 接下来咱们就记录一下最常用的filter过滤器用法。&#xff08;该示例以多个过滤器为例&#xff0c;当然你也可以删掉第二个过滤器自行…

FFmpeg filter过滤器使用详解

1、FFmpeg过滤器简介 FFmpeg filter 提供了很多音视频特效处理功能&#xff0c;比如视频缩放、截取、翻转、叠加等。 FFmpeg有很多已经实现好的滤波器&#xff0c;这些滤波器的实现位于libavfilter目录之下&#xff0c;用户需要可以调用这些滤波器实现滤波。 我们可以通过ffm…

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

一、什么是过滤器 Filter称之为过滤器&#xff0c;是SerlvetAPI提供的一个Filter接口&#xff0c;A类实现了这个接口&#xff0c;那么A类称之为过滤器Filter。主要用户的请求&#xff08;HttpServletRequest&#xff09;进行预处理&#xff0c;也可以对服务器响应后的数据进行处…

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

概念 作用 创建 创建web项目 定义类实现Servlet接口&#xff0c;实现其抽象方法 配置Filter 原理 注解配置 过滤器放行 Filter的生命周期 Filter的拦截路径 Filter的拦截方式 Filter的过滤器链 概念 当访问服务器的资源时&#xff0c;过滤器可以将请求拦截下来&…

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。 很多操作在不…