欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA使用動(dòng)態(tài)代理對(duì)象進(jìn)行敏感字過(guò)濾代碼實(shí)例

 更新時(shí)間:2019年09月18日 09:33:53   作者:小豬_佩奇  
這篇文章主要介紹了JAVA使用動(dòng)態(tài)代理對(duì)象進(jìn)行敏感字過(guò)濾代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了JAVA使用動(dòng)態(tài)代理對(duì)象進(jìn)行敏感字過(guò)濾代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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、創(chuàng)建代理對(duì)象,增強(qiáng)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方法
        //如果是,增強(qiáng)getParameter方法
        if (method.getName().equals("getParameter")) {
          //增強(qiáng)返回值
          //獲取返回值
          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、獲取文件的真實(shí)路徑
      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();
    }
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringMVC攔截器實(shí)現(xiàn)監(jiān)聽(tīng)session是否過(guò)期詳解

    SpringMVC攔截器實(shí)現(xiàn)監(jiān)聽(tīng)session是否過(guò)期詳解

    這篇文章主要介紹了SpringMVC攔截器實(shí)現(xiàn)監(jiān)聽(tīng)session是否過(guò)期詳解,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-11-11
  • spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    這篇文章主要介紹了spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中double精度丟失問(wèn)題原因及解決辦法

    Java中double精度丟失問(wèn)題原因及解決辦法

    使用Java double進(jìn)行運(yùn)算時(shí),經(jīng)常出現(xiàn)精度丟失的問(wèn)題,總是在一個(gè)正確的結(jié)果左右偏0.0000**1,這篇文章主要給大家介紹了關(guān)于Java中double精度丟失問(wèn)題原因及解決辦法,需要的朋友可以參考下
    2024-01-01
  • Java布隆過(guò)濾器的應(yīng)用實(shí)例

    Java布隆過(guò)濾器的應(yīng)用實(shí)例

    這篇文章主要介紹了Java布隆過(guò)濾器的應(yīng)用實(shí)例,在程序的世界中,布隆過(guò)濾器是程序員的一把利器,利用它可以快速地解決項(xiàng)目中一些比較棘手的問(wèn)題,如網(wǎng)頁(yè)?URL?去重、垃圾郵件識(shí)別、大集合中重復(fù)元素的判斷和緩存穿透等問(wèn)題,需要的朋友可以參考下
    2023-11-11
  • 詳解SpringBoot是如何整合JPA的

    詳解SpringBoot是如何整合JPA的

    借助于開(kāi)發(fā)框架,我們已經(jīng)不用編寫(xiě)原始的訪問(wèn)數(shù)據(jù)庫(kù)的代碼,也不用調(diào)用JDBC或者連接池等諸如此類的被稱作底層的代碼,我們將從更高的層次上訪問(wèn)數(shù)據(jù)庫(kù),本章我們將詳細(xì)介紹在Springboot中使用 Spring Data JPA 來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,需要的朋友可以參考下
    2021-06-06
  • java 引用類型的數(shù)據(jù)傳遞的是內(nèi)存地址實(shí)例

    java 引用類型的數(shù)據(jù)傳遞的是內(nèi)存地址實(shí)例

    這篇文章主要介紹了java 引用類型的數(shù)據(jù)傳遞的是內(nèi)存地址實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Vue3源碼解讀effectScope API及實(shí)現(xiàn)原理

    Vue3源碼解讀effectScope API及實(shí)現(xiàn)原理

    這篇文章主要為大家介紹了Vue3源碼解讀effectScope API及實(shí)現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Maven項(xiàng)目打Jar包并添加依賴步驟詳解

    Maven項(xiàng)目打Jar包并添加依賴步驟詳解

    這篇文章主要介紹了Maven項(xiàng)目打Jar包并添加依賴步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Spring-boot的debug調(diào)試代碼實(shí)例

    Spring-boot的debug調(diào)試代碼實(shí)例

    這篇文章主要介紹了Spring-boot的debug調(diào)試代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論