问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在Jsp页面或者Filter过滤器中怎么过滤脏话

发布网友 发布时间:2022-11-20 16:37

我来回答

1个回答

热心网友 时间:2024-09-25 22:31

不管是JSP还是Servlet,其Filter过滤器都是一个东西。因为JSP的本质就是Servlet,只不过是被包装了一下,成了标准,让Web服务器都遵循这个标准来解析编译执行而已。 以下演示的就是在JSP中如何过滤脏话(Servlet的处理方式也差不多): 一、 过滤器类 package com.filter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;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.http.HttpServletRequest;public class WordsFilter implements Filter { private Map< String, String>map = new HashMap< String, String>(); //过滤器的初始化 public void init(FilterConfig config) throws ServletException { String filePath = config.getInitParameter("filePath");//从配置文件中取得文件的相对路径 ServletContext context = config.getServletContext(); String realPath = context.getRealPath(filePath);//根据相对路径取得绝对路径 try { FileReader freader = new FileReader(realPath);//根据绝对路径,通过文件流来读取文件 BufferedReader br = new BufferedReader(freader); String line = null; while((line=br.readLine()) != null) { String []str = line.split("="); map.put(str[0], str[1]); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //乱码处理 request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); HttpServletRequest HttpReq = (HttpServletRequest) request; HttpReqWrapper hrw = new HttpReqWrapper(HttpReq); hrw.setMap(map); chain.doFilter(hrw, response); } public void destroy() { System.out.println("--过滤器的销毁--"); } }二、请求包装器
package com.filter;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class HttpReqWrapper extends HttpServletRequestWrapper { private Map< String,String> map = null; public HttpReqWrapper(HttpServletRequest request) { super(request); } //过滤脏话 public String replace(String str){ StringBuffer sb = new StringBuffer(str); Setkeys = this.getMap().keySet(); Iteratorit = keys.iterator(); String ss = null; while(it.hasNext()) { String key = it.next(); int index = sb.indexOf(key); if(index != -1) { if(key != null) ss = key; sb.replace(index, index+key.length(), this.getMap().get(key)); } } if(ss!=null) { if (sb.toString().indexOf(ss) == -1) { return sb.toString(); } else { return replace(sb.toString()); } } return sb.toString(); }// 重写getParameter()方法 public String getParameter(String str) { if(str.equals("pager.offset")){ return super.getParameter(str); }else{ String content = super.getParameter(str); return replace(content); } } public Map< String,String> getMap() { return map; } public void setMap(Map< String,String> map) { this.map = map; } }

三、脏话列表word.txt妈的=**
老子=**
狗日的=***
我日=我*
TMD=***
我靠=我*
贱人=**
滚=*
操=*

四、web.xml中配置过滤器
<filter>
<filter-name>WordsFilter</filter-name>
<filter-class>com.filter.WordsFilter</filter-class>
<init-param>
<param-name>filePath</param-name>
<param-value>/WEB-INF/word.txt</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>WordsFilter</filter-name>
<url-pattern>/getNote.jsp</url-pattern>
</filter-mapping>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男生买卫生巾支援灾区对吗? 打了耳洞三天下了耳钉,怎么办!! cs七龙珠家里两台电脑怎么连局域网玩 CS七龙珠怎么创建联网房间 CS七龙珠怎样和电脑玩 CS七龙珠能和电脑对打吗 不然怎样调对打模式有哪些地图!!!急需... 糖葫芦的山楂在哪里买 衡水市康宁街与人民路交叉口市一建家属院7号楼,1-201怎么翻译 梦见朋友搬家时小孩因我不愿离去,且小孩坐在床上跑出许老鼠? 梦见搬家是什么预兆解梦 短信通知是什么? 选择领带应该注意哪些地方?怎么样搭配才好看? 请问:阿拉伯数字:11~20怎么写? 选购领带有哪些注意事项 木头做的是什么门脑筋急转弯 木头做的门叫什么门脑筋急转弯 男人真心喜欢一个人的前提下,会给对方发se qing动态表情包是什么... iOS生成ipa包的时候总是弹窗提示macOS想要使用系统钥匙串 mate30pro售后贴膜也翘边 梅州哪里有HP专卖店? 在广东梅州哪里有维修电脑打印机的么?《是用来刻铁板的那种!》_百度知 ... 打印机提示原装墨盒耗尽怎么办 梅城哪里有佳能打印机的维修点? 我开网店 想问下 宁海十里红妆 这个店名可以吗 卖家具的 榆木家具... 打印机启动后发出跟电钻一样的声音是什么原因 如何安装惠普打印机和传真机 梅州哪里有买打印机?要不超过700元的 我准备开一个店,卖干杂调味品,水产.前面用 十里香 求取一店名 怎样在mis层访问sis系统的pi数据库 西铁城走心机L20!谁有操作说明书! ...寻找走心机高手(公司现有2台西铁城走心机A16,A20),有知道的给推荐一... 周围的人一直在说脏话,但是我对脏话很敏感,这该怎么办? 偏袒是什么意思(偏袒本来是露一只胳膊的意思) 请教一下鸿合智能交互平板怎么样?可以入手吗? 国内哪家智能交互平板值得买? 打印接sleep的那个问题怎么解决的啊? 肝俞穴:疏肝泄胆,平肝息风,调肝明目 我的后背肝俞穴还是肾俞穴天天在工作时有痒痛的感觉 怎么治疗啊_百度知 ... ...播放是(视频),现在打开是(QQ 浏览器)播放,图像放得太大,怎么回到正... 美的空调Lnk304pn电源芯片烧坏 美的空调e0是什么故障? 美的空调打开后显示e0 美的空调芯片能直接拆拔吗 第一章:Eclipse kura的介绍 军式带袖雨衣的材料都有哪些 济宁市哪里能买到雨衣? 小树莓的班级里有30个人,要从中选取n个人参加合唱比赛。小树莓被选中... 小眷灵泡泡怎么找 树莓-药食同源 生命之果 安装SEP7 safety v15.0软件,出现SEP7 safety v15.0不能单独安装,需要先... ...Ud 4; WinCC Advanced V15.1 Ud 4; Step7 safety?