特殊字符保存拦截-html标签等
2016-09-28 17:17
411 查看
1. 设置拦截器前面文中已有
2. spring jar包版本前文已有
3. 在拦截器中实现
4. 抛出 的BusinessException捕获,异常统一处理前文已有
5. BusinessException 异常定义
6. 前台页面
7. 错误统一处理 showError方法
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: '提示信息'}); } }
相关文章推荐
- 我的JFinal也要PathVariable
- 在Windows 8.1的IE 11中屏蔽双击放大功能
- HTML5调用摄像头实例
- Powershell 创建炫丽美观的Html报表
- 设计模式---状态模式在web前端中的应用
- Apple官网研究之使用Justify布局导航
- 关于前端的思考与感悟
- 又被事件冒泡坑了一把,这次要彻底弄懂浏览器的事件流
- 移动端点击事件全攻略,这里的坑你知多少?
- $q 实例分析 Angular 中的 Promise
- Angular directive 实例详解
- 关于浮动与清除浮动,你应该知道的
- div 2 列 50%宽度布局
- div 2 列 50%宽度布局
- 通过Mootools 1.2来操纵HTML DOM元素
- jQuery Html控件基本操作(日常收集整理)
- WEB标准网页布局中尽量不要使用的HTML标签
- Flash 与 html 的一些实用技巧