用过滤器过滤全站非法字符
2015-08-10 21:44
435 查看
package cn.lfd.web.filter; import java.io.IOException; import java.util.Arrays; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; /* * 用过滤器过滤全站非法字符 */ public class DirtyWordFilter implements Filter{ @Override public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; MyDirtyWordRequest myRequest = new MyDirtyWordRequest(request);//new 出一个增强后的HttpServletRequest chain.doFilter(myRequest, response); } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } }
//用包装模式对HttpServletRequest进行增强 class MyDirtyWordRequest extends HttpServletRequestWrapper{ //定义好非法字符集合 private List<String> dirtywrods = Arrays.asList(new String[]{"sb","操蛋","畜生"}); public MyDirtyWordRequest(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) { String value = super.getParameter(name); if(value==null) { return null; } for(String dirtyword:dirtywrods) {//对非法字符集合进行遍历 if(value.contains(dirtyword)) {//如果数据中含有非法字符 value = value.replace(dirtyword, "***");//用***代替 } } return value;//返回代替后的数据 } }
注意:
过滤器写好后一定要在web.xml文件下配置一下,否则没有效果
相关文章推荐
- jQuery plugin items filter
- 全国哀悼日网站页面变成灰色的filter方法
- 用css filter做鼠标滑过图片效果
- php 过滤器实现代码
- PHP过滤器的实现方法第1/2页
- ASP 使用Filter函数来检索数组的实现代码
- ASP.NET MVC:Filter和Action的执行介绍
- jQuery可见性过滤器:hidden和:visibility用法实例
- JQuery 选择器、过滤器介绍
- javaweb之web入门基础
- JSP Filter的应用方法
- 传智播客java web 过滤器
- PHP中实现Bloom Filter算法
- Jquery find与filter函数区别 说明
- Servlet 过滤器详细介绍
- Java实现循环体的过滤器的方法
- PHP内置过滤器FILTER使用实例
- PHP中filter函数校验数据的方法详解
- ASP.NET过滤器的应用方法介绍