java 获取post xml_java读取post的xml文件

11215226486368967764

cmcc-2000

10662000

LS

100

123

短息内容

2008-07-11 00:02:17

/**泛型读取request post的XML文件,其中T符合java bean规范**/

package sharesoft;

import java.beans.IntrospectionException;

import java.beans.Introspector;

import java.beans.PropertyDescriptor;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.Method;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

import com.cn.BusinessFlow;

public class ReceivePostXML {

private T t;

public ReceivePostXML(InputStream is){

this.is = is;

}

public ReceivePostXML(){

}

public T readXMLLinton(HttpServletRequest request, HttpServletResponse response,Object object){

Document doc = null;

Element root;

BufferedReader br;

T t = (T) object;

try {

FileReader fr=new FileReader("WebRoot/WEB-INF/hell.xml");//测试时使用

//doc=new SAXBuilder().build(request.getReader());//创建Document对象,是具有xml格式的文件

doc=new SAXBuilder().build(fr);//测试时使用

root=doc.getRootElement();//返回根节点

System.out.println(t.getClass().toString());

PropertyDescriptor[] pd=Introspector.getBeanInfo(object.getClass()).getPropertyDescriptors();

//Introspector.getBeanInfo(t.getClass())反射机制得到javabean的属性和公开方法

//BeanInfo.getPropertyDescriptors()得到JavaBean的所有属性

//PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。属性名和值

for(PropertyDescriptor p:pd){

String fieldName=p.getName();

String fieldValue;

if((fieldValue=root.getChildText(fieldName))!=null){//如果子节点的值不为空则执行 ,与此节点相同名字的JavaBean属性,通过一个存储器方法赋值

Method m=p.getWriteMethod();

m.setAccessible(true);

try{

m.invoke(t, fieldValue);

System.out.println("fieldValue: "+fieldValue);

}catch(Exception e){

e.printStackTrace();

}

}

}

} catch (JDOMException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IntrospectionException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return (T) t;

}

public static void main(String[] args) throws FileNotFoundException

{

FileReader fr=new FileReader("WebRoot/WEB-INF/hell.xml");

HttpServletRequestrequest = null;

HttpServletResponseresponse = null;

LinktoneMR businessFlow = new LinktoneMR();

new ReceivePostXML ().readXMLLinton(request, response,businessFlow);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值