利用反射过滤页面提交数据

/**
* Notes:获取提交的数据
* @param object
* @throws ITException
*/
public void disposeSpecialChar(Object object) throws ITException {
String name = null;//对象属性
String value = null;//对象值
String[] values = null;//对象数组值
try {
if(null != object && !"".equals(object)){
Class c = object.getClass();//返回一个对象的运行时类
Field[] fields = c.getDeclaredFields();//返回对象的所有字段
for (int i = 0; i < fields.length; i++) {
name = fields[i].getName();//得到字段名
StringBuffer _tmpString = new StringBuffer(name);
_tmpString.setCharAt(0,Character.toUpperCase(_tmpString.charAt(0)));//字段首个字母大写
String getMethod = "get" + _tmpString.toString();//得到字段get方法
String setMethod = "set" + _tmpString.toString();//得到字段set方法
if (fields[i].getType().equals(String[].class)) {//判断当前字段类型是否是字符串数组
values = (String[]) c.getDeclaredMethod(getMethod,new Class[0]).invoke(object,new Object[0]);
if(values != null && !"".equals(values)){
values = setStrs(values);
Object[] arg = { values };
Class[] claszzs = {String[].class};
c.getDeclaredMethod(setMethod,claszzs).invoke(object,arg);
}
} else if(fields[i].getType().equals(String.class)) {//判断当前字段是否是字符串
value =(String) c.getDeclaredMethod(getMethod,new Class[0]).invoke(object,new Object[0]);
if(value != null && !"".equals(value)){
value = setStr(value);
Object[] arg = { value };
Class[] clazzs = {String.class};
c.getDeclaredMethod(setMethod,clazzs).invoke(object,arg);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
throw new ITException(e);
}
}
/**
*
* @author
* Date:2010-01-13
* Notes:特殊字符处理(字符串数组)
*/
public String[] setStrs(String[] strs){
String[] returnSts = new String[strs.length];
for(int i =0;i<strs.length;i++){
returnSts [i] = setStr(strs[i]);
}
return returnSts;
}
/**
*
* @author
* Date:2010-01-13
* Notes:特殊字符处理(单个字符串)
*/
public String setStr(String str) {
StringBuffer sb = new StringBuffer();
char a;
if (null != str && !"".equals(str)) {
for (int i = 0; i < str.length(); i++) {
a = str.charAt(i);
switch (a) {
case '\'' :
sb.append("");
break;
default :
sb.append(a);
}
}
}
return sb.toString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值