五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

過濾器過濾敏感詞匯的代碼

2020-05-18 10:14 作者:小垃圾kiki  | 我要投稿
package cn.itcast.web.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
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;
/*
?* 敏感詞匯過濾器
?*/
@WebFilter("/*")
public class SensitiveWordsFilter implements Filter {


??? public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
??????? //1.創(chuàng)建代理對(duì)象,增強(qiáng)getParameter方法

??????? ServletRequest proxy_req = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() {
??????????? @Override
??????????? public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
??????????????? //增強(qiáng)getParameter方法
??????????????? //判斷是否是getParameter方法
??????????????? if(method.getName().equals("getParameter")){
??????????????????? //增強(qiáng)返回值
??????????????????? //獲取返回值
??????????????????? String value = (String) method.invoke(req,args);
??????????????????? if(value != null){
?????????????????? ??? ?//遍歷敏感字符
??????????????????????? for (String str : list) {
??????????????????????????? if(value.contains(str)){
??????????????????????????????? value = value.replaceAll(str,"***");
??????????????????????????? }
??????????????????????? }
??????????????????? }
?????????????????? ?
??????????????????? return? value;
??????????????? }

??????????????? //判斷方法名是否是 getParameterMap

??????????????? //判斷方法名是否是 getParameterValue

??????????????? return method.invoke(req,args);//如果不是的話傳遞真實(shí)對(duì)象傳遞args數(shù)組
??????????? }
??????? });

??????? //2.放行
??????? chain.doFilter(proxy_req, resp);
??? }
??? private List<String> list = new ArrayList<String>();//敏感詞匯集合
?? ?
?? ?
??? public void init(FilterConfig config) throws ServletException {

??????? try{
??????????? //1.獲取文件真實(shí)路徑
??????????? ServletContext servletContext = config.getServletContext();
??????????? String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感詞匯.txt");
??????????? //2.讀取文件
??????????? BufferedReader br = new BufferedReader(new FileReader(realPath));
??????????? //3.將文件的每一行數(shù)據(jù)添加到list中
??????????? String line = null;
??????????? while((line = br.readLine())!=null){
??????????????? list.add(line);
??????????? }

??????????? br.close();

??????????? System.out.println(list);

??????? }catch (Exception e){
??????????? e.printStackTrace();
??????? }

??? }

??? public void destroy() {
??? }

}

過濾器過濾敏感詞匯的代碼的評(píng)論 (共 條)

分享到微博請遵守國家法律
临泉县| 广东省| 黔东| 项城市| 巩留县| 五河县| 邢台县| 梁平县| 南开区| 城口县| 罗甸县| 镶黄旗| 富锦市| 潼关县| 张掖市| 民县| 章丘市| 广灵县| 缙云县| 会东县| 高密市| 天柱县| 肇源县| 昌都县| 绥中县| 庆元县| 正安县| 洪湖市| 德阳市| 平度市| 贵南县| 社会| 青浦区| 蚌埠市| 黎城县| 宁海县| 株洲市| 邛崃市| 铁岭市| 米易县| 方山县|