JavaWeb-Filter过滤器

简介: Filter过滤器

前言

过滤器顾名思义就是筛选一些不需要,不安全的信息或者请求。Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器。开发人员可以通过Filter技术,能够实现对所有Web资源的管理,如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

流程

4cf39854d2984b36b9583f67aae27896.png

编写

1.实现Filter接口,选择javax.servlet下的

31dd07fe40864c85b0cb1cf884f54af6.png

package com.wzl.filter;
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
}

2.重写过滤器的方法

package com.wzl.filter;
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
    //初始化:web服务器启动,就已初始化了,随时等待过滤对象的出现!
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("CharacterEncodingFilter初始化");
    }
    /*
    1.过滤的所有代码,再过滤特定请求的时候都会执行
    2.必须要让过滤继续同行
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=UTF-8");
        System.out.println("CharacterEncodingFilter执行前");
        //filterChain是一个链 让我们的请求继续走,如果不写,程序到这里就被拦截停止了
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("CharacterEncodingFilter执行后");
    }
    //销毁:web服务器关闭的时候会销毁
    @Override
    public void destroy() {
        System.out.println("CharacterEncodingFilter销毁");
    }
}

3.在web.xml中配置Filter过滤器

<filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>com.wzl.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <!--只要是/servlet下的任何请求都会经过这个过滤器-->
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>


相关文章
|
监控 安全 Java
【JavaWeb】 三大组件之过滤器 Filter
过滤器(Filter)是Java Web应用中的一种组件,它在请求到达Servlet或JSP之前或者响应送回客户端之前,对请求和响应进行预处理和后处理操作。通过使用过滤器,可以对请求进行过滤,拦截请求,修改请求参数,在请求被处理之前进行一些预处理操作;同时也可以对响应进行过滤,对响应内容进行修改,添加一些额外的处理。
|
5月前
|
安全 Java Spring
SpringSecurity6从入门到实战之Filter过滤器回顾
该文主要介绍了SpringSecurity框架中的过滤器Filter,探讨了在没有SpringSecurity时如何检查用户登录状态以保护资源。文中通过流程图展示了过滤器在HTTP请求处理中的位置,并提供了官方和中文文档链接。过滤器需实现Filter接口,用于拦截请求并进行预处理和后处理,例如强制登录检查。过滤器链FilterChain则是一系列Filter和资源的组合,通过doFilter方法逐个调用下一个过滤器或传递到目标资源。
|
6月前
|
Java 应用服务中间件 API
从零手写实现 tomcat-11-filter 过滤器
该文是关于手写实现 Apache Tomcat 的系列教程简介。作者希望通过亲自实现一个简化版来深入理解 Tomcat 的工作原理。系列教程包括了从解析 `web.xml`、基础的 Socket 实现到 Filter、Servlet 支持、线程池以及与 SpringBoot 集成等内容。文中以 Filter 为例,解释了其在网络请求中的作用,如检查和修改请求与响应,并给出了简单的 Filter 实现代码。最后提到了在 MiniCat(作者的简易 Tomcat 实现)中如何处理 Filter,并提供了项目的开源地址。
|
Java 应用服务中间件 数据安全/隐私保护
JavaWeb 三大组件之 过滤器 Filter
JavaWeb 三大组件之 过滤器 Filter
84 0
|
6月前
javaWeb过滤器Filter(二)
javaWeb过滤器Filter(二)
|
6月前
javaWeb过滤器Filter(一)
javaWeb过滤器Filter(一)
|
XML 缓存 Java
JavaWeb-Filter过滤器
Filter过滤器 1. Filter的生命周期 2.Filter的配置 3.拦截路径 4.拦截具体的使用 5.拦截方式配置(资源被访问方式) 6.FilterChain拦截链
90 0
|
设计模式 监控 前端开发
【JavaWeb】Filter过滤器到底是什么
【JavaWeb】Filter过滤器到底是什么
【JavaWeb】Filter过滤器到底是什么
|
Java
【JavaWeb】【学习】【过滤器】Filter 的简单应用
【JavaWeb】【学习】【过滤器】Filter 的简单应用
133 0
【JavaWeb】【学习】【过滤器】Filter 的简单应用