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


系统在使用过程中,用户输入的内容常存在全半角问题以及左右空格问题,若不进行合适的处理,对用户体验存在一定影响。若每次在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 {
		
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值