1. 设置拦截器前面文中已有
2. spring jar包版本前文已有
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency></span>
3. 在拦截器中实现
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Map params = request.getParameterMap();
Iterator i$ = params.keySet().iterator();
while(i$.hasNext()) {
Object key = i$.next();
Object value = params.get(key);
if(value instanceof String[]) {
String[] str = (String[])((String[])value);
for(int result = 0; result < str.length; ++result) {
String result1 = HtmlUtils.htmlEscape(str[result]);
if(!result1.equals(str[result])) {
logger.getBuilder().error("包含非法字符:[{}]" + str[result]);
throw new BusinessException("您输入了非法字符,请检查修改后再操作,谢谢您的配合!");
}
}
}
if(value instanceof String) {
String var11 = (String)value;
String var12 = HtmlUtils.htmlEscape(var11);
if(!var12.equals(var11)) {
throw new BusinessException("您输入了非法字符,请检查修改后再操作,谢谢您的配合!");
}
}
}
return true;
}
4. 抛出 的BusinessException捕获,异常统一处理前文已有
5. BusinessException 异常定义
public class BusinessException extends RuntimeException {
private static final long serialVersionUID = xxxxxxxxxxL;
public BusinessException(String msg) {
super(msg);
}
public BusinessException(String msg, Throwable ex) {
super(msg, ex);
}
}
6. 前台页面
layer.confirm("确定要提交吗?", {title: "提示信息"}, function () {
$.ajax({
type: 'post',
url: '/xx/save',
data: $("#xxForm").serialize(),
error: function (data) {
showError(data);
},
success: function (data) {
if (data.code == 0) {
layer.msg(data.desc,{time:1000});
} else {
layer.alert(data.desc, {icon: 2, skin: 'layer-ext-moon', title: '提示信息'});
}
}
});
});
7. 错误统一处理 showError方法
function showError(obj) {
if(obj.status != 500) {
layer.alert("超时或系统异常", {icon: 2, skin: 'layer-ext-moon', title: '提示信息'});
} else {
layer.alert(obj.responseText, {icon: 2, skin: 'layer-ext-moon', title: '提示信息'});
}
}