过滤非法字符问题
来源:互联网 发布:应届生找工作 知乎 编辑:程序博客网 时间:2024/05/01 15:22
package servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
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;
public class StrServlet implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req=(HttpServletRequest)arg0;
Map map=req.getParameterMap();
Collection cs=map.values();
Iterator it=cs.iterator();
while(it.hasNext()){
Object obj=it.next();
String[] ss=(String[])obj;
for (int i = 0; i < ss.length; i++) {
// 得到输入页面的文本
String temp=ss[i];
System.out.println("before"+temp);
// 替换非法字符
for (int j = 0; j <list.size(); j++) {
temp=temp.replaceAll(list.get(i).toString(), "*");
}
System.out.println("after"+temp);
// 把替换成功的字符再赋值给字符串
ss[i]=temp;
}
}
// 过滤器开门
arg2.doFilter(arg0, arg1);
}
//非法字符串的集合
private ArrayList list=new ArrayList();
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
// 读取非法字符的文档
InputStream in=arg0.getServletContext().getResourceAsStream("WEB-INF/Str.txt");
Reader r=new InputStreamReader(in);
BufferedReader bf=new BufferedReader(r);
try {
// 把非法字符肤质给变量temp
String temp=bf.readLine();
// 一行一行读取
while(temp!=null){
list.add(temp);
temp=bf.readLine();
}
bf.close();
r.close();
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
配置文件:
<filter>
<filter-name>str</filter-name>
<filter-class>servlet.StrServlet</filter-class>
</filter>
<filter-mapping>
<filter-name>str</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
同时要在WEB-INF目录下创建一个txt文档,内容为非法字符
- 过滤非法字符问题
- 过滤非法字符 一
- 过滤非法字符 二
- 过滤非法字符 三
- asp过滤非法字符
- Filter过滤非法字符
- 过滤非法字符
- 过滤非法字符
- 过滤非法字符
- java过滤非法字符
- 过滤xml非法字符
- 过滤非法字符
- servlet过滤非法字符
- dom4j 非法字符过滤
- 过滤非法字符函数
- 过滤文件名非法字符
- .net过滤非法字符
- 过滤xml非法字符
- 十个最好的免费杀毒软件下载
- Comparable & Comparator
- 跳出互联网做互联网
- 當愛情只剩下十二個小時的時候
- SetFocus()
- 过滤非法字符问题
- pku 1654 Area(向量叉积算面积)
- [图灵丛书]精通linux驱动程序开发[3哥学习版]--第二章-目录
- about attribute
- reactos操作系统实现(63)
- 日记090818
- 开始学习prototype+scriptaculous
- 相逢与离别
- 二叉树的定义-创建-遍历三步走