跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java Servlet 过滤器实现敏感字符过滤

通过 Servlet 过滤器拦截请求参数,根据配置文件中的关键词列表比对用户名等输入,若匹配则拦截并跳转提示页面,从而实现敏感字符过滤功能。配置需在 web.xml 中指定过滤器类及初始化参数,映射到所有 URL 路径生效。

字节跳动发布于 2014/9/24更新于 2026/10/2488 浏览
Java Servlet 过滤器实现敏感字符过滤

Java Servlet 过滤器实现敏感字符过滤

在项目开发中,出于安全考虑,有时需要过滤特定字符。以下是一个基于 Servlet 过滤器实现字符过滤的简单案例。

过滤器代码

package com.lc.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SafeFilter implements Filter {
    private String[] keywords;

    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
        String name = arg0.getParameter("username"); // 获得表单提交的用户名 username
        if (name != null) { // 先判断用户名是否为空
            for (String key : keywords) {
                if (key.equals(name)) {
                    arg0.setAttribute("err", "由第一个过滤器 安全过滤器拦截住了!");
                    arg0.getRequestDispatcher("/WEB-INF/tishi.jsp").forward(arg0, arg1);
                    return;
                }
            }
        }
        arg2.doFilter(arg0, arg1);
    }

    public void init(FilterConfig arg0) throws ServletException {
        // 从配置文件中读取需要过滤的字符串 并舍去';'得到数组 keywords
        keywords = arg0.getInitParameter("keywords").split(";");
    }
}

Web 配置

在 web.xml 中配置过滤器:

<!-- 管理安全的过滤器 并且是第一个过滤器配置的时候一定是在最前边的 -->
<filter>
    <filter-name>SafeFilter</filter-name>
    <filter-class>com.lc.filter.SafeFilter</filter-class>
    <!-- 下边是需要过滤的字符 -->
    <init-param>
        <param-name>keywords</param-name>
        <param-value>拉登;毛豆;凤姐;虫虫</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SafeFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

目录

  1. Java Servlet 过滤器实现敏感字符过滤
  2. 过滤器代码
  3. Web 配置

更多推荐文章

查看全部
  • OpenClaw v2026.3.8 全平台部署与配置指南
  • B 树与 B+ 树详解及数据库索引应用
  • Gitea 安装与基础使用指南
  • 基于 AI 辅助开发工具构建学生管理系统
  • Web 可访问性最佳实践:构建人人可用的前端界面
  • 大规模多模态模型:数据集、应用领域与分类体系深度解析
  • 多模型 AI 协同技巧:整合 ChatGPT、Claude 与 MCP 实现高效工作流
  • C++ explicit 关键字详解:如何避免隐式类型转换风险
  • RAG 进阶指南:15 种高级技术优化检索与生成
  • Java Web 开发环境搭建:IDEA 与 Tomcat 安装部署指南
  • 多模态大模型原理与跨模态应用实战
  • OpenClaw 架构解析:与 ChatGPT 的区别及核心理念
  • 初学 C++ 必须掌握的核心知识点
  • Transformer 注意力机制详解:自注意力、交叉与因果自注意力 PyTorch 实现
  • 基于 FastAPI 的 Web 上位机系统设计与实现
  • 白帽黑客自学入门与进阶技术路线指南
  • DSPy:大模型应用编程框架入门与实践
  • 人形机器人身体结构与人体仿生学:四肢结构设计原则
  • C++ 搜索引擎通用工具模块:文件读取与中文分词实现
  • VS Code 远程连接服务器后 GitHub Copilot 无法使用的问题解决

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online