JAVA如何使用动态代理对象进行敏感字过滤
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章将为大家详细讲解有关JAVA如何使用动态代理对象进行敏感字过滤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hopetesting.
千家信息网最后更新 2025年11月06日JAVA如何使用动态代理对象进行敏感字过滤
这篇文章将为大家详细讲解有关JAVA如何使用动态代理对象进行敏感字过滤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
package com.hopetesting.web.filter;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.ArrayList;import java.util.List;/** * @author newcityman * @date 2019/9/13 - 19:41 */@WebFilter("/*")public class SensitiveWordsFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //1、创建代理对象,增强getParameter方法 ServletRequest proxy_req = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //判断是否是getParameter方法 //如果是,增强getParameter方法 if (method.getName().equals("getParameter")) { //增强返回值 //获取返回值 String value = (String) method.invoke(req, args); if (value != null) { for (String str : list) { if (value.contains(str)) { value = value.replace(str, "******"); } } } return value; } return method.invoke(req, args); } }); chain.doFilter(proxy_req, resp); } private List list = new ArrayList(); //敏感词汇集合 public void init(FilterConfig config) throws ServletException { try { //1、获取文件的真实路径 ServletContext servletContext = config.getServletContext(); String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感词汇.txt"); //2、读取文件 BufferedReader br = new BufferedReader(new FileReader(realPath)); //3、将文件的每一行读取到list中 String line = null; while ((line = br.readLine()) != null) { list.add(line); } br.close(); System.out.println(list); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }} 关于"JAVA如何使用动态代理对象进行敏感字过滤"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
对象
代理
文件
方法
篇文章
动态
更多
词汇
不错
实用
一行
内容
文章
知识
路径
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器开发 java
csgo官匹一直连接服务器失败2019
网络安全支队理支队什么意思
药物安全性警戒数据库
网络技术与隐私
网络安全员职业资格
天津软件开发驻场机构
服务器怎么查看内存
从数据库查找相同人名的信息
定义数据库模式是dba职责吗
数据时代的网络安全
sql数据库改为安全模式
瀚云科技工业互联网平台
软件开发投入成本
南汇软件开发专业
长春软件开发待遇2年
元数据库管理服务器
合成大数据库
数据库管理员发展前景
网络安全守则小报竖版
徐州一站式网络技术有哪些
数据库时间表格转换
广电网络安全生产安排
游戏服务器架设教程
计算机网络技术论文总结
定义数据库模式是dba职责吗
万方数据库调整的原因
数据库对接技术
知乎无法与服务器建立安全联系
抢购软件开发难吗