阅读背景:

HTML特殊字符过滤器

来源:互联网 


/**
 * HTML标签过滤,避免用户歹意提交带HTML标签的数据
 * 
 * @author liulg
 */
public class HTMLCharacterRequest extends HttpServletRequestWrapper {

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

	@Override
	public String getParameter(String name) {
		String value = super.getParameter(name);
		return filter(value);
	}

	@Override
	@SuppressWarnings("unchecked")
	public Map getParameterMap() {
		Map<String, String[]> map = super.getParameterMap();
		Map<String, String[]> map_ = new HashMap<String, String[]>();

		Set<Entry<String, String[]>> set = map.entrySet();
		Iterator<Entry<String, String[]>> it = set.iterator();
		while (it.hasNext()) {
			Entry<String, String[]> entry = it.next();
			if (entry != null && entry.getValue() != null
					&& entry.getValue().length > 0) {
				String[] array = new String[entry.getValue().length];
				for (int i = 0; i < entry.getValue().length; i++) {
					array[i] = filter(entry.getValue()[i]);
				}
				map_.put(entry.getKey(), array);
			}
		}
		return map_;
	}

	@Override
	public String[] getParameterValues(String name) {
		String[] values = super.getParameterValues(name);
		if (values == null || values.length == 0)
			return values;
		for (int i = 0; i < values.length; i++) {
			String str = values[i];
			values[i] = filter(str);
		}
		return values;
	}

	private String filter(String value) {
		if (StringUtil.isNotBlank(value)) {
			value = value.replaceAll("<", "[").replaceAll(">", "]");
		}
		return value;
	}

}




/**
 * HTML标签过滤,避免用户歹意提交带HTML标签的数据
 * 
 * @autho




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: