jspjava 如何编写过滤器过滤特殊字符?

Python011

jspjava 如何编写过滤器过滤特殊字符?,第1张

package com.jingdu.common\x0d\x0aimport java.io.IOException\x0d\x0aimport java.io.PrintWriter\x0d\x0aimport javax.servlet.Filter\x0d\x0aimport javax.servlet.FilterChain\x0d\x0aimport javax.servlet.FilterConfig\x0d\x0aimport javax.servlet.ServletException\x0d\x0aimport javax.servlet.ServletRequest\x0d\x0aimport javax.servlet.ServletResponse\x0d\x0aimport javax.servlet.http.HttpServletRequest\x0d\x0aimport javax.servlet.http.HttpServletResponse\x0d\x0a\x0d\x0apublic class IllegalCharacterFilter implements Filter {\x0d\x0a private String[] characterParams = null\x0d\x0a private boolean OK=true\x0d\x0a \x0d\x0a public void init(FilterConfig config) throws ServletException {\x0d\x0a \x0d\x0a//if(config.getInitParameter("characterParams").length() 回答于 2022-11-16

可以用正则表达式过滤。

// 过滤特殊字符 public staticString StringFilter(String str) throws PatternSyntaxException {

// 只允许字母和数字 // String regEx ="[^a-zA-Z0-9]"

// 清除掉所有特殊字符

String regEx="[`~!@#$%^&*()+=|{}':',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"

Pattern p = Pattern.compile(regEx)

Matcher m = p.matcher(str)

return m.replaceAll("").trim()

}

可考虑将文件装换为流来处理,或者将文件读取到的字符串转换为byte数组来处理

以byte单位,

根据byte的范围来确认是否是特殊字符,替换为空字符。

或者使用正则匹配文件读取到的字符串,替换为空字符。