Filter过滤器

Filter即过滤器,是JavaWeb三大组件之一:Filter、Servlet、Listener~

一.简介

  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊功能~
  • 特殊功能一般指一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等~

二.使用

1.实现Filter接口

如下,未设置过滤器时可以直接访问:

创建实现类:

import javax.servlet.*;
import java.io.IOException;

public class Filter1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    @Override
    public void destroy() {

    }
}
2.配置拦截资源的路径
@WebFilter("/*")

如上的配置即为拦截任何资源~

3.doFilter放行
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("拦截器已执行~");
//        不放行
    }

再次重新启动,无法直接访问页面,拦截器已执行~

放行的代码:

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("拦截器已执行~");
        filterChain.doFilter(servletRequest,servletResponse);


    }

放行成功:

三.执行流程

 

放行前一般处理Request的数据,放行后一般处理Response的数据~ 

四.配置拦截路径

五.过滤器链

一个web应用可以配置多个过滤器,称为过滤器链~


优先级按照过滤器类名字符串的自然排序~

六.Listener

        监听器可以监听applicantion,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。目前已经不常使用~

相关推荐

  1. 过滤器Filter

    2024-04-13 22:10:03       44 阅读
  2. 过滤器 -- Filter

    2024-04-13 22:10:03       37 阅读
  3. Filter过滤器学习使用

    2024-04-13 22:10:03       45 阅读
  4. 【Vue项目】filters过滤器

    2024-04-13 22:10:03       52 阅读
  5. Vue.js(过滤器(Filter))

    2024-04-13 22:10:03       28 阅读
  6. Cookie Session和过滤器Filter

    2024-04-13 22:10:03       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 22:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 22:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 22:10:03       82 阅读
  4. Python语言-面向对象

    2024-04-13 22:10:03       91 阅读

热门阅读

  1. 18. Linux API 编程预备知识

    2024-04-13 22:10:03       25 阅读
  2. 【应用】Spring-Bean注入-xml+注解

    2024-04-13 22:10:03       30 阅读
  3. skynet中newservice和uniqueservice的区别

    2024-04-13 22:10:03       33 阅读
  4. ChatGPT革新学术写作:论文撰写的新思路

    2024-04-13 22:10:03       41 阅读
  5. shell脚本启动jar包

    2024-04-13 22:10:03       34 阅读
  6. C语言隐藏执行其他程序

    2024-04-13 22:10:03       34 阅读
  7. openjudge_2.5基本算法之搜索_1756:八皇后

    2024-04-13 22:10:03       38 阅读
  8. 预训练的启蒙:浅谈BERT、RoBERTa、ALBERT、T5

    2024-04-13 22:10:03       37 阅读
  9. P1085 [NOIP2004 普及组] 不高兴的津津

    2024-04-13 22:10:03       32 阅读
  10. 前端面试复习大纲

    2024-04-13 22:10:03       40 阅读
  11. 单片机家电产品--OC门电路

    2024-04-13 22:10:03       40 阅读
  12. 岛屿个数(dfs)

    2024-04-13 22:10:03       34 阅读
  13. 用户层read write io命令到NVMe SSD全流程

    2024-04-13 22:10:03       42 阅读
  14. 华为OD-C卷-考勤信息[100分]

    2024-04-13 22:10:03       36 阅读