程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaEE Filter敏感詞過濾的辦法實例詳解

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

編輯:關於JAVA

JavaEE Filter敏感詞過濾的辦法實例詳解。本站提示廣大學習愛好者:(JavaEE Filter敏感詞過濾的辦法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是JavaEE Filter敏感詞過濾的辦法實例詳解正文


 我們在聊天的時刻的或許留言的時刻,有部門詞是不許可揭橥出來。我們可以采取過濾器完成這個功效。

我們只是簡略應用過濾器完成這個過濾的功效,有些處所沒寫的很全

前台代碼:

<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 過濾敏感詞的辦法的相干常識,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved