您的位置:首页 > 其它

使用Filter进行Parameter的全半角转换和Trim

2017-05-17 17:11 169 查看
系统在使用过程中,用户输入的内容常存在全半角问题以及左右空格问题,若不进行合适的处理,对用户体验存在一定影响。若每次在getParameter()之后在进行处理,比较麻烦,而且存在遗漏的可能。此处采用Filter,进行统一控制。

第一步,建立TrimHttpRequset,继承HttpServletRequestWrapper,重写getParameter()方法

public class TrimHttpRequest extends HttpServletRequestWrapper{

public TrimHttpRequest(HttpServletRequest request) {
super(request);
}

@Override
public String getParameter(String name) {
String value=super.getParameter(name);
if (value==null) {
return value;
}
return ToDBC(value.trim());
}

/**
* 全角转半角
* @param value
* @return
*/
public static String ToDBC(String value) {
char chars[] = value.toCharArray();
for (int i = 0; i < chars.length; i++)
{
if (chars[i] == '\u3000')
{
chars[i] = ' ';
} else if (chars[i] > '\uFF00' && chars[i] < '\uFF5F')
{
chars[i] = (char) (chars[i] - 65248);
}
}
return new String(chars);
}
}
第二步,建立EncodingTrimFilter,标记为@WebFilter("/*")

@WebFilter("/*")
public class EncodingTrimFilter implements Filter {

@Override
public void destroy() {

}

@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");

HttpServletRequest request=(HttpServletRequest)req;
TrimHttpRequest trimReq=new TrimHttpRequest(request);
chain.doFilter(trimReq, resp);
}

@Override
public void init(FilterConfig arg0) throws ServletException {

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Filter 全半角 Trim