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

JavaEE Filter敏感詞過濾的方法實例詳解

 更新時間:2024年07月24日 17:17:02   作者:YX_blog  
我們無論是在聊天還是在留言時,都有一些信息不希望別人看到。那么如果過濾這些關鍵詞呢?下面小編給大家分享JavaEE Filter敏感詞過濾的方法實例詳解,感興趣的朋友一起學習吧

 我們在聊天的時候的或者留言的時候,有部分詞是不允許發(fā)表出來。我們可以采用過濾器實現這個功能。

我們只是簡單利用過濾器實現這個過濾的功能,有些地方沒寫的很全

前臺代碼:

<body> 
<form action="<c:url value='/WordServlet'/>" method="post"> 
姓名:<input type="text" name="name"/><br/> 
留言內容:<textarea rows="10" cols="10" name="textarea"></textarea><br/> 
<input type="submit" value="提交"/> 
</form> 
</body> 

Servlet里面的代碼:

僅僅只是把從前臺收的數據讀取出來。看里面的敏感詞是都過濾。

代碼:

public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
String name =request.getParameter("name");//名字 
String text=request.getParameter("textarea");//瀏覽內容 
PrintWriter pw =response.getWriter(); 
pw.println("name="+name);//這里直接輸出,僅僅只是為了查看能否過濾那些關鍵字。。 
pw.print("內容"+text); 
}

過濾器:

過濾的作用就可以體現了,過濾器的是在客戶端訪問服務器的之間進行攔截的。

我們知道過濾器能夠控制request和response,所以我們能夠對這個進行下手。

從客戶端請求是request,所以我們只需要在半路將其攔截,修改里面的值就可以實現過濾了。采用了包裝的設計模式;

過濾器代碼:

public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException { 
HttpServletRequest req=(HttpServletRequest) request; 
MyFilter myf =new MyFilter(req); 
chain.doFilter(myf, response);//采勇我們加強的類的request,傳給后面的servlet使用 
} 

自己手動寫一個myFilter類來修改里面我們需要用到的函數。

class MyFilter extends HttpServletRequestWrapper{ 
//這是采用包裝模式 
public MyFilter(HttpServletRequest request) { 
super(request); 
} 
@Override //從寫這個方法 
public String getParameter(String name) { 
String words =super.getParameter(name); 
System.out.println(words);//過濾前的文字 
List<String> list=WordUtils.getword(); 
for(String ll:list){ 
words=words.replace(ll, "*");//敏感詞匯采用**代替 
} 
return words; 
} 

為了方便維護,我們的敏感詞匯的獲取專門寫了一個工具,方便取,當然也方便管理員添加進去。

public class WordUtils { 
//采用單例模式 
private static List<String> list =new ArrayList<String>();//我們可以從這訪問數據庫中存的敏感詞匯,封裝成list返回 
static {//手動添加幾個 
list.add("坑貨"); 
list.add("罵人"); 
list.add("傻"); 
} 
public static List<String> getword(){ 
return list; 
} 
public static void addWord(String name){ 
list.add(name); 
} 
public static void sava(){ 
//這里可以list里面的數據存到數據庫中,方便維護,當然也可以寫增刪改查等 
} 

在這里,只要含有這個詞的,全部會變成*

效果圖;

總結:過濾器的強大,可以修改request和response對象一起,你需要調什么函數,我們就可以采用包裝設計模式的方式修改這個函數,變成我們想要的效果,這個和代理設計模式有點類似。

以上所述是小編給大家介紹的使用JavaEE filter 過濾敏感詞的方法的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Java中的StringBuilder()常見方法詳解

    Java中的StringBuilder()常見方法詳解

    StringBuilder是一個可變的字符序列,此類提供一個與 StringBuffer 兼容的 API,但不保證同步,這篇文章主要介紹了StringBuilder()常見方法,需要的朋友可以參考下
    2023-09-09
  • SpringBoot?AOP統(tǒng)一處理Web請求日志的示例代碼

    SpringBoot?AOP統(tǒng)一處理Web請求日志的示例代碼

    springboot有很多方法處理日志,例如攔截器,aop切面,service中代碼記錄等,下面這篇文章主要給大家介紹了關于SpringBoot?AOP統(tǒng)一處理Web請求日志的相關資料,需要的朋友可以參考下
    2023-02-02
  • 淺析SpringBoot中的過濾器和攔截器

    淺析SpringBoot中的過濾器和攔截器

    過濾器和攔截器都是為了在請求到達目標處理器(Servlet或Controller)之前或者之后插入自定義的處理邏輯,下面就跟隨小編來看看它們二者的區(qū)別和具體使用吧
    2024-03-03
  • 利用線程實現動態(tài)顯示系統(tǒng)時間

    利用線程實現動態(tài)顯示系統(tǒng)時間

    編寫Applet小程序,通過在HTML文檔中接收參數,顯示當前的系統(tǒng)時間,需要的朋友可以參考下
    2015-10-10
  • Spring security 自定義過濾器實現Json參數傳遞并兼容表單參數(實例代碼)

    Spring security 自定義過濾器實現Json參數傳遞并兼容表單參數(實例代碼)

    這篇文章主要介紹了Spring security 自定義過濾器實現Json參數傳遞并兼容表單參數,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 一文掌握Spring?中?@Component?和?@Bean?區(qū)別(最新推薦)

    一文掌握Spring?中?@Component?和?@Bean?區(qū)別(最新推薦)

    ?@Component?用于標識一個普通的類,@Bean用于配置類里面,在方法上面聲明和配置?Bean?對象,這篇文章主要介紹了Spring?中?@Component?和?@Bean?區(qū)別(最新推薦),需要的朋友可以參考下
    2024-04-04
  • SpringBoot實現redis延遲隊列的示例代碼

    SpringBoot實現redis延遲隊列的示例代碼

    延時隊列場景在我們日常業(yè)務開發(fā)中經常遇到,它是一種特殊類型的消息隊列,本文就來介紹一下SpringBoot實現redis延遲隊列的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Java虛擬機裝載和初始化一個class類代碼解析

    Java虛擬機裝載和初始化一個class類代碼解析

    這篇文章的主要內容是Java虛擬機裝載和初始化一個class類的代碼解析,包括介紹了裝載和初始化的時機與方式,需要的朋友可以參考下。
    2017-09-09
  • Intellij IDEA的一些調試技巧(小結)

    Intellij IDEA的一些調試技巧(小結)

    本篇文章主要介紹了Intellij IDEA的一些調試技巧(小結),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 徹底搞懂Java多線程(一)

    徹底搞懂Java多線程(一)

    這篇文章主要給大家介紹了關于Java面試題之多線程和高并發(fā)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2021-07-07

最新評論