91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

牡丹江市| 涿鹿县| 东兰县| 四子王旗| 宁津县| 铜川市| 扎囊县| 枝江市| 抚顺市| 花莲市| 始兴县| 航空| 三台县| 西乌珠穆沁旗| 如东县| 惠来县| 花莲市| 常熟市| 大冶市| 镇康县| 曲松县| 黄大仙区| 通辽市| 泗洪县| 宜丰县| 上饶县| 吉木萨尔县| 唐海县| 仲巴县| 汉寿县| 平原县| 朝阳区| 于田县| 重庆市| 成都市| 白山市| 精河县| 响水县| 西贡区| 栖霞市| 榕江县|