JAVA如何使用动态代理对象进行敏感字过滤
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关JAVA如何使用动态代理对象进行敏感字过滤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hopetesting.
千家信息网最后更新 2025年01月19日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 Listlist = 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安全错误
数据库的锁怎样保障安全
燃烧平原服务器
怎么看待互联网数字科技医疗
江苏网络技术推广
华硕服务器z9pa u8开机
大容量硬盘 服务器
试题资源哪个数据库有
无限网络安全相关论文
学数据库要数学吗
网络安全警察有前途嘛
管家婆能改数据库吗
网络安全标准级别C2
数据库aftertable
苏州互联网科技公司
服务器可以放在配电间上吗
优势的直销软件开发
影楼数据库
网络安全研究生就业率高吗
数据库中的图片编辑
上海的嵌入式软件开发行业
黄浦区标准软件开发哪家好
网络安全保障横幅
优淘网络技术
网络安全中3A指的是
东营直播软件开发推荐
用代码建的数据库如何查看代码
广元市网络安全监察部门
顺丰数据库管理员是谁
录像机sip服务器设置
列举通信和网络技术哪些
网络安全设备名称古风