五 SpringMvc - 支付宝沙箱和关键字过滤,md5加密,SSM项目重要知识点( 二 )

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;    }}

经验总结扩展阅读