Filter -- 过滤敏感词汇
生活随笔
收集整理的這篇文章主要介紹了
Filter -- 过滤敏感词汇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例:將 “壞蛋”? “笨蛋”,變為“***”。
?
1、敏感詞匯
// words.txt 壞蛋 笨蛋2、首先創建filter
public class FilterDemo implements Filter {@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 通過動態代理 來增強 getParameter 方法ServletRequest obj = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(),req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 如果執行getParameter方法if (method.getName().equals("getParameter")) {// 獲取該方法返回的 參數String values = (String) method.invoke(req, args);if (values != null) {for (String str : list) {// 如果遇到敏感詞匯,就將其替代為 ***if (values.contains(str)) {values = values.replaceAll(str, "***");}}}// 增強返回值return values;} else {return method.invoke(req, args);}}});obj.setCharacterEncoding("utf-8");// 放行chain.doFilter(obj, resp);}private List<String> list = new ArrayList<String>();@Overridepublic void init(FilterConfig config) throws ServletException {// 加載敏感詞匯到list集合ServletContext context = config.getServletContext();String path = context.getRealPath("\\WEB-INF\\words.txt");System.out.println(path);try {BufferedReader br = new BufferedReader(new FileReader(path));String line = "";while ((line = br.readLine()) != null) {list.add(line);}System.out.println(list);} catch (IOException e) {e.printStackTrace();}}}3、創建servlet 并測試
@WebServlet("/sd") public class ServletDemo extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("name");String msg = req.getParameter("msg");System.out.println("servlet : "+name + ":" + msg);}}--地址欄信息? ?
?
--輸出?
總結
以上是生活随笔為你收集整理的Filter -- 过滤敏感词汇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tomcat启动报:No Spring
- 下一篇: wampserver php乱码,Wam