日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Filter过滤器|敏感词汇过滤

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Filter过滤器|敏感词汇过滤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、需求及分析
  • 二、過濾器
  • 三、xml配置
  • 四、測試sevlet


一、需求及分析

(1)對錄入的數據進行敏感詞匯過濾。
(2)敏感詞匯參考 敏感詞匯.txt文檔
(3)如果是敏感詞匯,替換為"***"。

分析:使用代理模式對request對象進行增強,增強獲取參數相關方法(getParameter等)。然后放行,傳遞代理對象。以getParameter為例,getParameterMap,getParameterValue與getParameter的邏輯一樣。

二、過濾器

  • @WebFilter(value="/*"):使用注解配置,對所有的servlet都進行過濾。
  • 注意在init()方法中將敏感詞匯.txt文件中的每一條敏感語句都放進了list集合中,這個使用流操作的方式要熟練。
  • 使用流操作默認使用gbk編碼,所以注意要將敏感詞匯.txt中的編碼也該改為gbk。
  • 在src下創建了一個名為"敏感詞匯.txt"的文件,其中的敏感詞匯如下:

package com.gql.filter; import java.io.BufferedReader; 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; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter;import sun.text.normalizer.Replaceable;/*** 類說明: * 敏感詞匯過濾器* * @author qianliangguo*/ @WebFilter(value="/*") public class SensitiveFilter implements Filter {@Overridepublic void doFilter(final ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {// 1.創建代理對象,增強getParameter方法ServletRequest Proxy_req = (ServletRequest)Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {//判斷是否是getParameter方法if("getParameter".equals(method.getName())){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);}});// 2.放行chain.doFilter(Proxy_req, resp);}private List<String> list = new ArrayList<String>();//敏感詞匯集合@Overridepublic 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 (Exception e) {e.printStackTrace();}}@Overridepublic void destroy() {// TODO Auto-generated method stub} }

三、xml配置

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" ><display-name></display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>testServlet</servlet-name><servlet-class>com.gql.filter.testServlet</servlet-class></servlet><servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/testServlet</url-pattern></servlet-mapping> </web-app>

四、測試sevlet

package com.gql.filter;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;/*** 類說明:* 測試敏感詞匯* @author qianliangguo*/ public class testServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String name = req.getParameter("name");String msg = req.getParameter("msg");System.out.println(name+":"+msg);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {this.doPost(req, resp);} }

在瀏覽器地址欄輸入:http://localhost:8080/Filter/testServlet?name=用戶&msg=嚶嚶嚶,周冬雨你是大壞蛋。返回出的結果如下:

測試成功。

總結

以上是生活随笔為你收集整理的Filter过滤器|敏感词汇过滤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 恶虐女帝安卓汉化版最新版本 | av片一区二区三区 | 丁香婷婷深情五月亚洲 | 意大利少妇愉情理伦片 | 日韩在线免费视频观看 | 男生女生操操操 | 国产免费一级 | 激情内射亚洲一区二区三区爱妻 | 久久久中文 | 九九九免费 | 午夜电影网站 | 一级全黄男女免费大片 | 强伦人妻一区二区三区 | 成年人免费在线视频 | 国产精品探花在线观看 | 三级全黄的视频 | xx在线视频 | 一区二区伦理 | 一区二区精品视频 | 亚洲精品福利在线 | 日本黄色免费网站 | 爱爱91| 午夜精品成人毛片非洲 | 一本久久道| 免费美女毛片 | 中文字幕无码精品亚洲 | 欧美成人一级 | 欧美性福利 | 澳门一级黄色片 | 已满18岁免费观看电视连续剧 | 精品一区二区不卡 | 亚洲午夜小视频 | 亚洲精品国产精品国自产观看 | 调教驯服丰满美艳麻麻在线视频 | 免费在线看黄网站 | 免费观看国产视频 | 国产理论视频 | 五十路中文字幕 | 免费三级在线 | 国产精品亚洲二区 | 一级片欧美 | 91视频区 | 国产五月 | 日韩经典在线观看 | 色亚洲影院 | 国产免费看 | 欧美整片在线 | 久久久久1 | 男人资源网站 | 一个色综合导航 | 精品一区二区视频 | 伊人影院在线观看 | 无码任你躁久久久久久老妇 | 伊人网在线视频 | 精品久久免费观看 | 综合成人 | 91在线一区二区三区 | 成人毛片在线播放 | 国产精品免费av一区二区 | 日韩最新av | 男女视频免费看 | 免费久久视频 | 鸭子av| 国产免费看黄 | 天堂av.com| 日韩欧美不卡 | 中文字幕人妻伦伦 | 亚洲理论中文字幕 | 91久久国产综合久久 | 高清av一区二区 | 91狠狠 | 国产女在线 | 美女国产一区 | 国产精品视频专区 | 亚洲欲妇 | 69视频在线观看 | 成人av片免费看 | 夜色视频网站 | 日本少妇高潮抽搐 | 亚洲天堂网在线观看视频 | 在线观看国产91 | www.色图 | 国产主播毛片 | 黑人性生活视频 | 久久精品三级 | 免费播放毛片精品视频 | 日韩视频在线观看二区 | 天天亚洲 | 亲切的金子片段 | 欧美专区 日韩专区 | 老女人一区 | 亚洲三区精品 | 精品久久无码视频 | 91欧美精品| 国产乱淫av片免费 | 欧美日本一区二区三区 | 日本wwww色| 亚洲av永久中文无码精品综合 | 天天射日日 |