html字符串转义_html/css_WEB-ITnose
先定义数据类型
package com.whereta.common;/** * Created by vincent on 15-9-24. */public enum JavaBasicTypeEnum { STRING(String.class), INTEGER(Integer.class), BOOLEAN(Boolean.class), BYTE(Byte.class), LONG(Long.class), SHORT(Short.class), FLOAT(Float.class), DOUBLE(Double.class), CHAR(Character.class); private Class sClass; JavaBasicTypeEnum(Class sClass) { this.sClass = sClass; } protected static boolean isBasicType(Class sClass) { for (JavaBasicTypeEnum en : JavaBasicTypeEnum.values()) { Class aClass = en.getsClass(); if (aClass.equals(sClass)) { return true; } } return false; } public Class getsClass() { return sClass; } public void setsClass(Class sClass) { this.sClass = sClass; }}
登录后复制
数据类型判断
package com.whereta.common;import java.util.*;/** * Created by vincent on 15-9-24. */public class JavaTypeUtils { /** * 判断是否是基本类型 * @param obj 输入对象 * @return */ public static boolean isBasicType(Object obj){ boolean isBasicType = JavaBasicTypeEnum.isBasicType(obj.getClass()); return isBasicType; } /** * 判断是否是数组 * @param obj * @return */ public static boolean isArray(Object obj){ return obj.getClass().isArray(); } /** * 判断是否是集合 * @param obj * @return */ public static boolean isCollection(Object obj){ Set<Class> classSet = getAllExtendAndImplementsClass(obj.getClass()); for(Class c:classSet){ if(c.equals(Collection.class)){ return true; } } return false; } private static Set<Class> getAllExtendAndImplementsClass(Class c){ Set<Class> classSet=new HashSet<Class>(); //获取接口 Class[] interfaces = c.getInterfaces(); if(interfaces!=null) { classSet.addAll(Arrays.asList(interfaces)); for(Class in:interfaces){ classSet.addAll(getAllExtendAndImplementsClass(in)); } } //获取父类 Class superclass = c.getSuperclass(); if(superclass!=null) { classSet.add(superclass); classSet.addAll(getAllExtendAndImplementsClass(superclass)); } return classSet; } /** * 判断是否是list * @param obj * @return */ public static boolean isList(Object obj){ Set<Class> classSet = getAllExtendAndImplementsClass(obj.getClass()); for(Class c:classSet){ if(c.equals(List.class)){ return true; } } return false; } /** * 判断是否是map * @param obj * @return */ public static boolean isMap(Object obj){ Set<Class> classSet = getAllExtendAndImplementsClass(obj.getClass()); for(Class c:classSet){ if(c.equals(Map.class)){ return true; } } return false; }}
登录后复制
数据处理
package com.whereta.common;import org.apache.commons.lang3.StringEscapeUtils;import java.lang.reflect.Field;import java.util.*;/** * Created by vincent on 15-9-24. */public class HtmlObjUtil { /** * 将页面提交的数据字符串进行替换,防止出现页面混乱 * @param param * @return * @throws IllegalAccessException */ public static Object replaceStringHtml(Object param) throws IllegalAccessException { if (param != null) { if (JavaTypeUtils.isBasicType(param)) { if (param.getClass().equals(JavaBasicTypeEnum.STRING.getsClass())) { return StringEscapeUtils.escapeHtml4(param.toString()); } return param; } if (JavaTypeUtils.isArray(param)) { Object[] objectArray = (Object[]) param; for (int i = 0; i < objectArray.length; i++) { Object object = objectArray[i]; if(object==null){ continue; } objectArray[i] = replaceStringHtml(object); } return objectArray; } if (JavaTypeUtils.isCollection(param)) { Collection collection = (Collection) param; Collection replaceCollection = new ArrayList(); Iterator iterator = collection.iterator(); while (iterator.hasNext()){ Object nextObj = iterator.next(); if(nextObj==null){ continue; } Object o = replaceStringHtml(nextObj); iterator.remove(); replaceCollection.add(o); } collection.addAll(replaceCollection); return collection; } if (JavaTypeUtils.isMap(param)) { Map map = (Map) param; Set set = map.keySet(); for (Object obj : set) { Object mapValue = map.get(obj); if(mapValue==null){ continue; } Object o = replaceStringHtml(mapValue); map.put(obj, o); } return map; } Field[] declaredFields = param.getClass().getDeclaredFields(); for (Field field : declaredFields) { field.setAccessible(true); int modifiers = field.getModifiers(); if(modifiers>=24){ continue; } Object o = field.get(param); if(o==null){ continue; } Object replaceObj = replaceStringHtml(o); if (replaceObj.getClass().equals(JavaBasicTypeEnum.LONG.getsClass())) { field.setLong(param, (Long) (replaceObj)); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.BOOLEAN.getsClass())) { field.setBoolean(param, (Boolean) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.BYTE.getsClass())) { field.setByte(param, (Byte) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.CHAR.getsClass())) { field.setChar(param, (Character) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.DOUBLE.getsClass())) { field.setDouble(param, (Double) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.FLOAT.getsClass())) { field.setFloat(param, (Float) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.INTEGER.getsClass())) { field.setInt(param, (Integer) replaceObj); } else if (replaceObj.getClass().equals(JavaBasicTypeEnum.SHORT.getsClass())) { field.setShort(param, (Short) replaceObj); } else { field.set(param, replaceObj); } } return param; } return param; }}
登录后复制
通过递归,不断寻找字符串类型的数据转义
git地址:https://git.oschina.net/junyue/JavaUtils
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...
