中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA使用動態代理對象進行敏感字過濾代碼實例

發布時間:2020-08-31 20:46:49 來源:腳本之家 閱讀:187 作者:小豬_佩奇 欄目:編程語言

這篇文章主要介紹了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<String> list = new ArrayList<String>(); //敏感詞匯集合
  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();
    }
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉祥县| 北辰区| 汶川县| 达拉特旗| 奉化市| 太原市| 弥渡县| 渑池县| 阜城县| 黄梅县| 临汾市| 甘肃省| 沂水县| 镇安县| 鄂托克前旗| 海丰县| 邯郸市| 宝山区| 安徽省| 余江县| 夏津县| 万载县| 建瓯市| 汤原县| 舒兰市| 莱州市| 临江市| 佛学| 新河县| 都匀市| 长葛市| 华安县| 抚顺县| 游戏| 洪湖市| 乌兰浩特市| 克什克腾旗| 台南市| 年辖:市辖区| 双牌县| 邢台市|