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