1.4 测试访问直接访问 Alipay/to_alipay.do 这个请求即可(参数根据实际操作进行添加);
2、关键字过滤2.1 关键字文件 sensitivewords.txt小笨蛋...(根据实际需求添加关键字)2.2 关键字工具类2.2.1 关键字初始化【五 SpringMvc - 支付宝沙箱和关键字过滤,md5加密,SSM项目重要知识点】/** * Created On : 2022/7/26. * <p> * Author : zhukang * <p> * Description: 敏感词初始化类 */public class SensitiveWordInit { // 敏感词集合 public static Map sensitiveWordMap; // 初始化敏感词 public Map initSensitiveWord(){ System.out.println("------- 系统启动,从文件中读取敏感字,存入sensitiveWordMap -------"); try { // 读取敏感词文件,将敏感词加入HashMap addSensitiveWordToHashMap(readSensitiveWordFile()); } catch (Exception e){ e.printStackTrace(); } return sensitiveWordMap; } /** * @author : zhukang * @date : 2022/7/26 * @param : [java.util.Set<java.lang.String>] * @return : java.util.Map * @description : 将HashSet中的敏感词,存入HashMap中 */ private void addSensitiveWordToHashMap(Set<String> wordSet) { // 初始化敏感词容器,减少扩容操作 sensitiveWordMap = new HashMap(wordSet.size()); for (String word : wordSet) { Map nowMap = sensitiveWordMap; for (int i = 0; i < word.length(); i++) { // 转换成char型 char keyChar = word.charAt(i); // 获取 Object tempMap = nowMap.get(keyChar); // 如果存在该key,直接赋值 if (tempMap != null) { // 一个一个放进Map中 nowMap = (Map) tempMap; } // 不存在则,则构建一个map,同时将isEnd设置为0,因为他不是最后一个 else { // 设置标志位,不是最后一个 Map<String, String> newMap = new HashMap<String, String>(); // 没有这个key,就把(isEnd,0) 放在Map中 newMap.put("isEnd", "0"); // 添加到集合 nowMap.put(keyChar, newMap); //指向当前map,继续遍历 nowMap = newMap; } // 最后一个 if (i == word.length() - 1) { nowMap.put("isEnd", "1"); } } } } /** * @author : zhukang * @date : 2022/7/26 * @param : [] * @return : java.util.Set<java.lang.String> * @description : 读取敏感词库文件,存入HashMap中 */ private Set<String> readSensitiveWordFile() { // 敏感词集合 Set<String> wordSet = null; //敏感词库 try ( // 获取输入流,读取resources目录下的static目录中的敏感词文件(一个敏感词一行) InputStream inputStream = new ClassPathResource("sensitivewords.txt").getInputStream(); // 读取文件输入流 InputStreamReader read = new InputStreamReader(inputStream, "UTF-8"); // 高效读取 BufferedReader br = new BufferedReader(read); ) { // 创建set集合,存储读取的敏感字 wordSet = new HashSet<>(); //手动 添加词语// wordSet.add("笨蛋");// wordSet.add("傻瓜"); // 读取文件,将文件内容放入到set中 String txt = null; while ((txt = br.readLine()) != null) { wordSet.add(txt); } } catch (Exception e) { e.printStackTrace(); } // 返回敏感字集合 return wordSet; }}
经验总结扩展阅读
- 世界上的五大人种
- 佐助五影会谈第几集
- 动森五一活动迷宫攻略
- 支付宝蚂蚁庄园10月28日答提分享
- 主力建仓时的五大特征是什么
- 四大名山和五岳在哪
- 支付宝蚂蚁庄园10月28日答案是什么
- 如何删除支付宝的帐户明细
- 王者荣耀五杀限制时间是多久
- 如何制作梅干菜扣肉烧饼
