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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini membincangkan html & lt; kemajuan & gt; elemen, tujuan, gaya, dan perbezaan dari & lt; meter & gt; elemen. Tumpuan utama adalah menggunakan & lt; kemajuan & gt; untuk menyelesaikan tugas dan & lt; meter & gt; untuk stati

Artikel ini membincangkan html & lt; datalist & gt; elemen, yang meningkatkan bentuk dengan menyediakan cadangan autokomplete, meningkatkan pengalaman pengguna dan mengurangkan kesilapan. Kira -kira: 159

Artikel membincangkan amalan terbaik untuk memastikan keserasian silang pelayar HTML5, memberi tumpuan kepada pengesanan ciri, peningkatan progresif, dan kaedah ujian.

Artikel ini membincangkan html & lt; meter & gt; elemen, digunakan untuk memaparkan nilai skalar atau pecahan dalam julat, dan aplikasi umum dalam pembangunan web. Ia membezakan & lt; meter & gt; dari & lt; kemajuan & gt; dan Ex

Artikel ini membincangkan menggunakan atribut pengesahan bentuk HTML5 seperti had, corak, min, max, dan panjang untuk mengesahkan input pengguna secara langsung dalam penyemak imbas.

Artikel ini membincangkan tag Meta Viewport, penting untuk reka bentuk web responsif pada peranti mudah alih. Ia menerangkan bagaimana penggunaan yang betul memastikan skala kandungan yang optimum dan interaksi pengguna, sementara penyalahgunaan boleh membawa kepada isu reka bentuk dan kebolehaksesan.

Artikel ini membincangkan & lt; iframe & gt; Tujuan TAG dalam membenamkan kandungan luaran ke dalam halaman web, kegunaan umum, risiko keselamatan, dan alternatif seperti tag objek dan API.

Giteepages Statik Laman Web Penggunaan Gagal: 404 Penyelesaian Masalah dan Resolusi Ralat Semasa Menggunakan Gitee ...
