`
sungang_1120
  • 浏览: 310949 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
收藏列表
标题 标签 来源
JSONUtils java
package org.sg.sgg.json;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.beanutils.BeanUtils;

public class JSONUtils {

	/**
	 * 将List对象序列化为JSON文本
	 * 
	 * @param <T>
	 * @param list
	 * @return
	 */
	public static <T> String toJSONString(List<T> list) {
		JSONArray js = JSONArray.fromObject(list);
		return js.toString();
	}

	/**
	 * 将对象序列化为JSON文本
	 * 
	 * @param obj
	 * @return
	 */
	public static String toJSONString(Object object) {
		JSONObject jo = JSONObject.fromObject(object);
		return jo.toString();
	}

	/***
	 * 将JSON对象数组序列化为JSON文本
	 * 
	 * @param ja
	 * @return
	 */
	public static String toJSONString(JSONArray ja) {
		return ja.toString();
	}

	/**
	 * 将JSON对象序列化为JSON文本
	 * 
	 * @param jo
	 * @return
	 */
	public static String toJSONString(JSONObject jo) {
		return jo.toString();
	}

	/**
	 * 将对象转换为List对象
	 * 
	 * @param object
	 * @return
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static List toArrayList(Object object) {
		List arrList = new ArrayList();
		JSONArray ja = JSONArray.fromObject(object);
		Iterator<?> iterator = ja.iterator();
		while (iterator.hasNext()) {
			JSONObject jo = (JSONObject) iterator.next();
			Iterator<?> keys = jo.keys();
			while (keys.hasNext()) {
				Object key = keys.next();
				Object value = jo.get(key);
				arrList.add(value);
			}
		}
		return arrList;
	}

	/**
	 * 将对象转换为Collection对象
	 * 
	 * @param object
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static Collection toCollection(Object object) {
		JSONArray ja = JSONArray.fromObject(object);
		return JSONArray.toCollection(ja);
	}

	/**
	 * 将对象转换为JSON对象数组
	 * 
	 * @param object
	 * @return
	 */
	public static JSONArray toJSONArray(Object object) {
		return JSONArray.fromObject(object);
	}

	/***
	 * 将对象转换为JSON对象
	 * 
	 * @param object
	 * @return
	 */
	public static JSONObject toJSONObject(Object object) {
		return JSONObject.fromObject(object);
	}

	/**
	 * 将一个json数组转换成list对象
	 * 
	 * @param jsonStr
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static List<Map<String, Object>> json2List(String jsonStr) {
		JSONArray ja = JSONArray.fromObject(jsonStr);
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Iterator<JSONObject> it = ja.iterator();
		while (it.hasNext()) {
			JSONObject json2 = it.next();
			list.add(json2Map(json2));
		}
		return list;
	}

	/**
	 * 将一个json数组转换成list对象
	 * 
	 * @param jsonStr
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static List<Map<String, Object>> json2List(JSONArray ja) {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Iterator<JSONObject> it = ja.iterator();
		while (it.hasNext()) {
			JSONObject json2 = it.next();
			list.add(json2Map(json2));
		}
		return list;
	}

	/**
	 * 将一个json对象转换成Map对象
	 * 
	 * @param jsonStr
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static Map<String, Object> json2Map(String jsonStr) {
		Map<String, Object> map = new HashMap<String, Object>();
		JSONObject jo = JSONObject.fromObject(jsonStr);
		for (Object key : jo.keySet()) {
			Object value = jo.get(key);
			if (value instanceof JSONArray) {
				List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
				Iterator<JSONObject> iterator = ((JSONArray) value).iterator();
				while (iterator.hasNext()) {
					JSONObject jo2 = iterator.next();
					list.add(json2Map(jo2.toString()));
				}
				map.put(key.toString(), value);
			} else {
				map.put(key.toString(), value);
			}
		}
		return map;
	}

	/**
	 * 将一个json对象转换成Map对象
	 * 
	 * @param jo
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static Map<String, Object> json2Map(JSONObject jo) {
		Map<String, Object> map = new HashMap<String, Object>();
		for (Object key : jo.keySet()) {
			Object value = jo.get(key);
			if (value instanceof JSONArray) {
				List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
				Iterator<JSONObject> iterator = ((JSONArray) value).iterator();
				while (iterator.hasNext()) {
					JSONObject jo2 = iterator.next();
					list.add(json2Map(jo2.toString()));
				}
				map.put(key.toString(), value);
			} else {
				map.put(key.toString(), value);
			}
		}
		return map;
	}
	
	public static String map2Json(Map<Object, Object> map){
		 if (null == map) {
			return null;
		}
		JSONObject jo = JSONObject.fromObject(map);
		return jo.toString();
	}

	/**
	 * //通过HTTP url获取JSON数据
	 * 
	 * @return
	 */
	public static List<Map<String, Object>> getListByUrl(String url) {
		StringBuilder builder = null;
		try {
			InputStream in = new URL(url).openStream();
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			builder = new StringBuilder();
			String line = "";
			while ((line = reader.readLine()) != null) {
				builder.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json2List(builder.toString());
	}

	/**
	 * //通过HTTP url获取JSON数据
	 * 
	 * @return
	 */
	public static Map<String, Object> getMapByUrl(String url) {
		StringBuilder builder = null;
		try {
			InputStream in = new URL(url).openStream();
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			String line = "";
			builder = new StringBuilder();
			while ((line = reader.readLine()) != null) {
				builder.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json2Map(builder.toString());
	}

	/**
	 * 将对象转换为HashMap
	 * 
	 * @param object
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static HashMap toHashMap(Object object) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		JSONObject jo = JSONUtils.toJSONObject(object);
		Iterator iterator = jo.keys();
		while (iterator.hasNext()) {
			Object obj = iterator.next();
			String key = "";
			if (obj instanceof String) {
				key = (String) obj;
			}
			Object value = jo.get(key);
			map.put(key, value);
		}
		return map;
	}

	/**
	 * 将对象转换为List<Map<String,Object>> 返回非实体类型(Map<String,Object>)的List
	 * 
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static List<Map<String, Object>> toList(Object object) {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		JSONArray ja = JSONArray.fromObject(object);
		for (Object obj : ja) {
			if (obj instanceof JSONObject) {
				JSONObject jo = (JSONObject) obj;
				Map<String, Object> map = new HashMap<String, Object>();
				Iterator iterator = jo.keys();
				while (iterator.hasNext()) {
					Object o = iterator.next();
					String key = "";
					if (o instanceof String) {
						key = (String) o;
					}
					Object value = jo.get(key);
					map.put(key, value);
				}
				list.add(map);
			}
		}
		return list;
	}

	/**
	 * 将JSON对象数组转换为传入类型的List
	 * 
	 * @param <T>
	 * @param ja
	 * @param clazz
	 * @return
	 */
	@SuppressWarnings({ "unchecked", "deprecation" })
	public static <T> List<T> toList(JSONArray ja, Class<T> clazz) {
		return JSONArray.toList(ja, clazz);
	}

	/**
	 * 将对象转换为传入类型的List
	 * 
	 * @param <T>
	 * @param object
	 * @param clazz
	 * @return
	 */
	@SuppressWarnings({ "unchecked", "deprecation" })
	public static <T> List<T> toList(Object object, Class<T> clazz) {
		JSONArray ja = JSONArray.fromObject(object);
		return JSONArray.toList(ja, clazz);
	}

	/**
	 * 将JSON对象转换为传入类型的对象
	 * 
	 * @param <T>
	 * @param jo
	 * @param clazz
	 * @return
	 */
	@SuppressWarnings({ "static-access", "unchecked" })
	public static <T> T toBean(JSONObject jo, Class<T> clazz) {
		return (T) jo.toBean(jo, clazz);
	}

	/**
	 * 将将对象转换为传入类型的对象
	 * 
	 * @param <T>
	 * @param object
	 * @param clazz
	 * @return
	 */
	@SuppressWarnings({ "static-access", "unchecked" })
	public static <T> T toBean(Object object, Class<T> clazz) {
		JSONObject jo = JSONObject.fromObject(object);
		return (T) jo.toBean(jo, clazz);
	}

	/***
	 * 将JSON文本反序列化为主从关系的实体
	 * 
	 * @param <T>
	 *            泛型T 代表主实体类型
	 * @param <D>
	 *            泛型D 代表从实体类型
	 * @param jsonString
	 *            JSON文本
	 * @param mainClass
	 *            主实体类型
	 * @param detailName
	 *            从实体类在主实体类中的属性名称
	 * @param detailClass
	 *            从实体类型
	 * @return
	 */
	@SuppressWarnings("unused")
	public static <T, D> T toBean(String jsonString, Class<T> mainClass,
			String detailName, Class<D> detailClass) {
		JSONObject jo = JSONObject.fromObject(jsonString);
		JSONArray ja = (JSONArray) jo.get(detailName);

		T mainEntity = JSONUtils.toBean(jo, mainClass);
		List<D> detailList = JSONUtils.toList(ja, detailClass);

		try {
			BeanUtils.setProperty(mainEntity, detailName, detailClass);

		} catch (Exception e) {
			throw new RuntimeException("主从关系JSON反序列化实体失败!");
		}
		return mainEntity;
	}

	/**
	 * 将JSON文本反序列化为主从关系的实体
	 * 
	 * @param <T>>泛型T 代表主实体类型
	 * @param <D1>泛型D1 代表从实体类型
	 * @param <D2>泛型D2 代表从实体类型
	 * @param jsonStringJSON文本
	 * @param maiinClass
	 *            主实体类型
	 * @param detailName1
	 *            从实体类在主实体类中的属性
	 * @param detailClass1
	 *            从实体类型
	 * @param detailName2
	 *            从实体类在主实体类中的属性
	 * @param detailClass2
	 *            从实体类型
	 * @return
	 */
	@SuppressWarnings("unused")
	public static <T, D1, D2> T toBean(String jsonString, Class<T> maiinClass,
			String detailName1, Class<D1> detailClass1, String detailName2,
			Class<D2> detailClass2) {
		JSONObject jo = JSONObject.fromObject(jsonString);
		JSONArray ja1 = (JSONArray) jo.get(detailName1);
		JSONArray ja2 = (JSONArray) jo.get(detailName2);

		T mainEntity = JSONUtils.toBean(jo, maiinClass);
		List<D1> detailList1 = JSONUtils.toList(ja1, detailClass1);
		List<D2> detailList2 = JSONUtils.toList(ja2, detailClass2);

		try {
			BeanUtils.setProperty(mainEntity, detailName1, detailClass1);
			BeanUtils.setProperty(mainEntity, detailName2, detailClass2);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException("主从关系JSON反序列化实体失败!");
		}
		return mainEntity;
	}

	/***
	 * 将JSON文本反序列化为主从关系的实体
	 * 
	 * @param <T>泛型T 代表主实体类型
	 * @param <D1>泛型D1 代表从实体类型
	 * @param <D2>泛型D2 代表从实体类型
	 * @param jsonString
	 *            JSON文本
	 * @param mainClass
	 *            主实体类型
	 * @param detailName1
	 *            从实体类在主实体类中的属性
	 * @param detailClass1
	 *            从实体类型
	 * @param detailName2
	 *            从实体类在主实体类中的属性
	 * @param detailClass2
	 *            从实体类型
	 * @param detailName3
	 *            从实体类在主实体类中的属性
	 * @param detailClass3
	 *            从实体类型
	 * @return
	 */
	public static <T, D1, D2, D3> T toBean(String jsonString,
			Class<T> mainClass, String detailName1, Class<D1> detailClass1,
			String detailName2, Class<D2> detailClass2, String detailName3,
			Class<D3> detailClass3) {
		JSONObject jsonObject = JSONObject.fromObject(jsonString);
		JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);
		JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);
		JSONArray jsonArray3 = (JSONArray) jsonObject.get(detailName3);

		T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
		List<D1> detailList1 = JSONUtils.toList(jsonArray1, detailClass1);
		List<D2> detailList2 = JSONUtils.toList(jsonArray2, detailClass2);
		List<D3> detailList3 = JSONUtils.toList(jsonArray3, detailClass3);

		try {
			BeanUtils.setProperty(mainEntity, detailName1, detailList1);
			BeanUtils.setProperty(mainEntity, detailName2, detailList2);
			BeanUtils.setProperty(mainEntity, detailName3, detailList3);
		} catch (Exception ex) {
			throw new RuntimeException("主从关系JSON反序列化实体失败!");
		}

		return mainEntity;
	}

	/***
	 * 将JSON文本反序列化为主从关系的实体
	 * 
	 * @param <T>
	 *            主实体类型
	 * @param jsonString
	 *            JSON文本
	 * @param mainClass
	 *            主实体类型
	 * @param detailClass
	 *            存放了多个从实体在主实体中属性名称和类型
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static <T> T toBean(String jsonString, Class<T> mainClass,
			HashMap<String, Class> detailClass) {
		JSONObject jsonObject = JSONObject.fromObject(jsonString);
		T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
		for (Object key : detailClass.keySet()) {
			try {
				Class value = (Class) detailClass.get(key);
				BeanUtils.setProperty(mainEntity, key.toString(), value);
			} catch (Exception ex) {
				throw new RuntimeException("主从关系JSON反序列化实体失败!");
			}
		}
		return mainEntity;
	}
}
JDBCUtils java
package org.sg.sgg.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.log4j.Logger;
import org.sg.sgg.property.propertyUtils;

public class GetConFactory {
	
	private static final Logger logger = Logger.getLogger(GetConFactory.class);
	
	public static PreparedStatement pst = null;
	public static Statement st = null;
	public static ResultSet rs = null;
	
	/**
	 * 数据库连接实例
	 */
	public static Connection  conn =  null; 
	/**
	 * 数据库的辅助类
	 */
	GetClientHandle getClientHandle = new GetClientHandle();
	/**
	 *  返回数据库连接
	 * @return
	 */
	public Connection getConnection(){
		Connection connection = null;
		try {
			Class.forName(propertyUtils.getConfigParam("jdbc.driverClassName"));
			connection = DriverManager.getConnection(
					propertyUtils.getConfigParam("jdbc.url"),
					propertyUtils.getConfigParam("jdbc.username"),
					propertyUtils.getConfigParam("jdbc.password")
			);
		} catch (Exception e) {
			logger.error("获取数据库连接出错:" + e.getMessage());
		}
		return connection;
	}

	/**
	 * 当数据连接为空,或数据源关闭时,在创建连接实例
	 */
	public static Connection getConInstance(){
		try {
			if (conn == null || conn.isClosed() == true) {
				conn = new GetConFactory().getConnection();
			}
		} catch (SQLException e) {
			logger.error("获取数据库连接出错:" + e.getMessage());
		}
		return conn;
	}
}







package org.sg.sgg.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;

public class GetClientHandle {
	
	private static final Logger logger = Logger.getLogger(GetClientHandle.class);
	
	/**
	 * 关闭数据库连接
	 * @param pst
	 * @param rs
	 */
	public static void getCloseInf(PreparedStatement pst,ResultSet rs){
		try {
			if (pst != null) {
				pst.close();
			}
			if (rs != null) {
				rs.close();
			}
		} catch (SQLException e) {
			logger.error("关闭数据库出现异常:"+e.getMessage());
			e.printStackTrace();
		}
	}
	/**
	 * 根据参数   添加  删除 修改
	 * @param con
	 * @param pst
	 * @param sql
	 * @param params
	 */
	public void getClientModifyRemoveBean(Connection con,
			PreparedStatement pst, String sql, String[] params) {
		try {
			pst = con.prepareStatement(sql);
			if (params.length > 0) {
				for (int i = 0; i < params.length; i++) {
					pst.setString(i + 1, params[i]);
				}
			}
			pst.execute();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			getCloseInf(pst, null);
		}
	}

	
	/**
	 * 根据参数  查询总记录数
	 * @param con
	 * @param pst
	 * @param res
	 * @param sql
	 * @param params
	 * @return
	 */
	public String getClientString(Connection con, PreparedStatement pst,
			ResultSet res, String sql, String[] params) {
		String text = null;
		try {
			pst = con.prepareStatement(sql);
			if (params.length > 0) {
				for (int i = 0; i < params.length; i++) {
					pst.setString(i + 1, params[i]);
				}
			}
			res = pst.executeQuery();
			if (res.next()) {
				text = res.getString(1);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			getCloseInf(pst, res);
		}
		return text;
	}
	/**
	 * 根据传入参数  查询单个对象
	 * @param con
	 * @param pst
	 * @param res
	 * @param sql
	 * @param cla
	 * @param params
	 * @return
	 */
	public Object getClientBean(Connection con, PreparedStatement pst,
			ResultSet res, String sql, Class<?> cla, String[] params) {
		Object bean = null;
		try {
			pst = con.prepareStatement(sql);
			if (params.length > 0) {
				for (int i = 0; i < params.length; i++) {
					pst.setString(i + 1, params[i]);
				}
			}
			res = pst.executeQuery();
			if (res.next()) {
				bean = cla.newInstance();
				getClientBean(bean, res.getMetaData(), res);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			getCloseInf(pst, res);
		}
		return bean;
	}
	/**
	 * 根据参数   获取List对象
	 * @param con
	 * @param pst
	 * @param res
	 * @param sql
	 * @param cla
	 * @param params
	 * @return
	 */
	public List<?> getClientListBean(Connection con, PreparedStatement pst,
			ResultSet res, String sql, Class<?> cla, String[] params) {
		List list = new ArrayList();
		try {
			Object bean = null;
			pst = con.prepareStatement(sql);
			if (params.length > 0) {
				for (int i = 0; i < params.length; i++) {
					pst.setString(i + 1, params[i]);
				}
			}
			res = pst.executeQuery();
			while (res.next()) {
				bean = cla.newInstance();
				getClientBean(bean, res.getMetaData(), res);
				list.add(bean);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			getCloseInf(pst, res);
		}
		return list;
	}
	/**
	 * 
	 * @param bean
	 * @param mt
	 * @param res
	 */
	public static void getClientBean(Object bean, ResultSetMetaData mt,
			ResultSet res) {
		try {
			for (int i = 1; i < mt.getColumnCount() + 1; i++)
				BeanUtils.copyProperty(bean, getUpperCase(mt.getColumnName(i)),
						res.getString(mt.getColumnName(i)));
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}

	public static String getUpperCase(String table_filed) {
		String name = table_filed.toLowerCase();
		StringBuffer bf = new StringBuffer();
		for (int j = 0; j < name.length(); j++) {
			char c = name.charAt(j);
			if (c == '_') {
				j++;
				bf.append(name.substring(j, j + 1).toUpperCase());
			} else if (j == 0) {
				bf.append(String.valueOf(c).toLowerCase());
			} else {
				bf.append(c);
			}
		}

		return bf.toString();
	}
}





FileUtils java
package org.sg.sgg.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

import org.apache.log4j.Logger;

public class FileUtils {
	
	private final static Logger logger = Logger.getLogger(FileUtils.class);
	
	
	
	
	/**
	 * 判断源文件是否存在且是否为文件
	 * @param sourceFile
	 * @return
	 */
	public static boolean isExistsSource(String sourceFile) {
		File srcFile = new File(sourceFile);
		if (!srcFile.exists()) {
			logger.info("复制文件失败:源文件" + sourceFile + "不存在!");
			return false;
		} else if (!srcFile.isFile()) {
			logger.info("复制文件失败:" + sourceFile + "不是一个文件!");
			return false;
		}
		
		return true;
	}
	
	
	/**
	 * 判断目标文件所在目录是否存在
	 * @param targetFile
	 * @return
	 */
	public static boolean isExistsTargetDir(String targetFile) {
		File destFile = new File(targetFile);
		
		if (!destFile.getParentFile().exists()) {
			// 如果目标文件所在的目录不存在,则创建目录
			logger.info("目标文件所在的目录不存在:" + destFile.getParentFile());
			//创建目录
			//destFile.getParentFile().mkdirs();
			return false;
		}
		
		return true;
	}
	/**
	 * 判断该文件是否存在
	 * @param fileName - 文件名称
	 * @param path - 目录
	 * @return -  是否存在
	 */
	public static boolean isFileExist(String fileName, String path){
		File file = new File(getDoPath(path)+fileName);
		return file.exists();
	}

	/**
	 * 复制单个文件
	 * 
	 * @param srcFileName
	 *            待复制的文件名
	 * @param destFileName
	 *            目标文件名
	 * @return 如果复制成功,则返回true,否则返回false
	 */
	public static boolean copyFile(String srcFileName, String destFileName) {
		//源文件是否存在
		isExistsSource(srcFileName);
		//目标文件所在目录是否存在
		isExistsTargetDir(destFileName);
		
		// 准备复制文件
		int byteread = 0;// 读取的位数
		InputStream in = null;
		OutputStream out = null;
		File srcFile = new File(srcFileName);
		File destFile = new File(destFileName);
		try {
			// 打开原文件
			in = new FileInputStream(srcFile);
			// 打开连接到目标文件的输出流
			out = new FileOutputStream(destFile);
			byte[] buffer = new byte[1024];
			// 一次读取1024个字节,当byteread为-1时表示文件已经读完
			while ((byteread = in.read(buffer)) != -1) {
				// 将读取的字节写入输出流
				out.write(buffer, 0, byteread);
			}
			logger.info("复制文件" + srcFileName + "至" + destFileName + "成功!");
			
			return true;
		} catch (Exception e) {
			logger.error("复制文件失败:" + e.getMessage());
			return false;
		} finally {
			// 关闭输入输出流,注意先关闭输出流,再关闭输入流
			if (out != null) {
				try {
					out.close();
				} catch (IOException e) {
					logger.error("复制文件关闭流时出错:" + e.getMessage());
				}
			}
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					logger.error("复制文件关闭流时出错:" + e.getMessage());
				}
			}
		}
	}
	

	//==============================================================================
	//
	//删除文件夹
	//		此为调用java基础类,利用递归实现方式
	//		除此之外用apache io包FileUtils也很方便,以下为apache io包实现方式:
	//			org.apache.commons.io.FileUtils.deleteDirectory(f);//删除目录 
	//			org.apache.tools.ant.util.FileUtils.delete(f);//删除文件
	//
	//==============================================================================
	/**
	 * 删除文件夹:文件夹下的所有文件
	 * @param filepath 格式形如:d://1//2/3//4
	 * 					即为删除4这个文件夹
	 * @return
	 */
	public static boolean removeFile(String filepath) {
		try {
			File f = new File(filepath);
			if(f.exists() && f.isDirectory()) {  //判断是文件还是目录
				if(f.listFiles().length == 0) {  //若目录下没有文件则直接删除
					f.delete();
				} else {  //若有则把文件放进数组,并判断是否有下级目录
					File childFile[]=f.listFiles();
					int i = f.listFiles().length;
					for(int j = 0; j < i; j++) {
						if(childFile[j].isDirectory()) {
							//递归调用del方法并取得子目录路径
							removeFile(childFile[j].getAbsolutePath());  
						}
						childFile[j].delete();  //删除文件
					}
					//删除文件夹下的子文件后再删除主文件夹
					f.delete();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("删除文件出错!");
			return false;
		}
		
		return true;
	}
	/**
	 * 传递一个路径和文件名称,删除该文件
	 * @param fileName - 文件名称
	 * @param path - 路径
	 * @return - 是否删除成功
	 */
	public static boolean removeFile(String fileName, String path){
		boolean flag = false;
		if (isFileExist(fileName, path)) {
			File file = new File(getDoPath(path)+fileName);
			flag = file.delete();
		}
		return flag;
	}
	/**
	 * 删除当前文件
	 * @param file - 要删除的文件
	 * @return 是否删除成功
	 */
	public static boolean removeFile(File file){
		 boolean flag = false;
	        if (file != null && file.exists()) {
	            flag = file.delete();
	        }
	        return flag;
	}
	/**
	 * 传入一个文件名,得到这个文件名称的后缀  包含 .
	 * @param fileName - 文件名
	 * @return
	 */
	public static String getSuffixContainPoint(String fileName){
		int index = fileName.lastIndexOf(".");
		if (index != -1) {
			String suffix = fileName.substring(index);//后缀
			return suffix;
		}else {
			return null;
		}
	}
	/**
	 * 传入一个文件名,得到这个文件名称的后缀    不包含 .
	 * @param fileName - 文件名
	 * @return
	 */
	public static String getSuffixUnContainPoint(String fileName){
		 int index = fileName.lastIndexOf(".");
	        if (index != -1) {
	            String suffix = fileName.substring(index + 1);//后缀
	            return suffix; 
	        } else {
	            return null;
	        }
	}
	/**
	 * 利用uuid产生一个随机的name
	 * @param fileName 文件名
	 * @return
	 */
	public static String getRandomName(String fileName){
		 String randomName = UUID.randomUUID().toString();
		 //如果文件没有后缀名  默认就是给添加 后缀   txt
		 return getNewFileName(fileName, randomName , "txt");
	}
	/**
	 *  用当前日期、时间和1000以内的随机数组合成的文件名称
	 * @param fileName - 文件名
	 * @return
	 */
	public static String getNumberFileName(String fileName){
		SimpleDateFormat format = new SimpleDateFormat("yyMMddhhmmss");
		int rand = new Random().nextInt(1000);
		String numberFileName = format.format(new Date()) + rand;
		return getNewFileName(fileName, numberFileName, "txt");
	}
	
	/**
	 * 传递一个文件名称和一个新名称,组合成一个新的带后缀文件名
	 * 当传递的文件名没有后缀,会添加默认的后缀
	 * @param fileName - 文件名称
	 * @param newFileName - 新文件名称
	 * @param nullSuffix - 为没有后缀的文件所添加的后缀 如果没有   可传递一个默认的后缀名 eq .txt
	 * @return
	 */
	public static String getNewFileName(String fileName,String newFileName,String nullSuffix){
		String suffix = getSuffixContainPoint(fileName);
		if (suffix != null) {
			newFileName += suffix;
		}else {
			newFileName = newFileName.concat(".").concat(nullSuffix);
		}
		return newFileName;
	}
	
	
	
	/**
	 * 
	 * @param pathName
	 * @return
	 */
	public static boolean isBlankForPath(String pathName) {
		boolean flag = false;
		String[] letters = new String[] { "/", "\\", ":", "*", "?", "\"", " <",
				">", " ¦", "%20", "#", "$", "%" };
		for (int i = 0; i < letters.length; i++) {
			if (pathName.indexOf(letters[i]) != -1) {
				flag = true;
			} else {
				flag = false;
			}
		}
		return flag;

	}
	/**
	 * 处理后的系统文件路径
	 * @param path
	 * @return
	 */
	public static String getDoPath(String path){
		 path = path.replace("\\", "/");
		 String lastChar = path.substring(path.length() - 1);
		 if (!"/".equals(lastChar)) {
	            path += "/";
	     }
		 return path;
	}
	/**
	 * 创建指定的path路径目录
	 * @param path - 目录、路径
	 * @return
	 */
	public static boolean mkDir(String path){
		File file = null;
		try {   
			file = new File(path);
			if (!file.exists()) {   
                return file.mkdirs();   
            }   
		}catch (Exception e) {
			logger.error("创建文件失败..错误如下:");
			e.printStackTrace();
		}finally{
			 file = null;   
		}
		return false;   
	}
	
	
}
DateUtils java
package org.sg.sgg.date;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.log4j.Logger;

public class DateUtils extends Date {
	private static final long serialVersionUID = 1L;
	private static final Logger LOGGER = Logger.getLogger(Date.class);
	
	
	public DateUtils() {
		super();
	}
	
	
	/**
	 * 得到当前年
	 * @return
	 */
	public static int getCurrYear(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.YEAR);
	}
	/**
	 * 得到当前月份
	 * 注意,这里的月份依然是从0开始的
	 * @return
	 */
	public static int getCurrMonth(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.MONTH);
	}
	/**
	 * 得到当前日
	 * @return
	 */
	public static int getCurrDay(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.DAY_OF_MONTH);
	}
	/**
	 * 得到当前星期
	 * @return
	 */
	public static int getCurrWeek(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.DAY_OF_WEEK);
	}
	/**
	 * 得到当前小时
	 * @return
	 */
	public static int getCurrHour(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.HOUR);
	}
	/**
	 * 得到当前分钟
	 * @return
	 */
	public static int getCurrMinute(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.MINUTE);
	}
	/**
	 * 得到当前秒
	 * @return
	 */
	public static int getCurrSecond(){
		Calendar cal = Calendar.getInstance();
		return cal.get(Calendar.SECOND);
	}
	/**
	 * Date类型转换到Calendar类型
	 * @param date
	 * @return
	 */
	public static Calendar Date2Calendar(Date date){
		 Calendar cal = Calendar.getInstance();
		 cal.setTime(date);
		 return cal;
	}
	/**
	 * Calendar类型转换到Date类型
	 * @param cal
	 * @return
	 */
	public static Date calendar2Date(Calendar cal){
		return cal.getTime();
	}
	/**
	 * Date类型转换到Timestamp类型
	 * @param date
	 * @return
	 */
	public static Timestamp date2Timestamp(Date date){
		return new Timestamp(date.getTime());
	}
	/**
	 * Calendar类型转换到Timestamp类型
	 * @return
	 */
	public static Timestamp calendar2Timestamp(Calendar cal){
		return new Timestamp(cal.getTimeInMillis());
	}
	/**
	 * Timestamp类型转换到Calendar类型
	 * @param timestamp
	 * @return
	 */
	public static Calendar timestamp2Calendar(Timestamp timestamp){
		Calendar cal = Calendar.getInstance();
		cal.setTime(timestamp);
		return cal;
	}
	/**
	 * 当前时间的下一天时间
	 * 
	 * @return
	 */
	public static Date nextDate() {
		return nextDate(new DateUtils(), 1);
	}

	/**
	 * 得到当前时间的毫秒数
	 * 
	 * @return
	 */
	public static Long getCurrentTimeMillis() {
		return System.currentTimeMillis();
	}

	/**
	 * 获取任意时间后num天的时间
	 * 
	 * @param date
	 *            java.util.Date
	 * @param num
	 * @return
	 */
	public static Date nextDate(Date date, int num) {
		Calendar cla = Calendar.getInstance();
		cla.setTime(date);
		cla.add(Calendar.DAY_OF_YEAR, num);
		return cla.getTime();
	}

	/**
	 * 获取任意时间后num天的时间
	 * 
	 * @param date
	 *            String; <br>
	 *            格式支持�?<br>
	 *               yyyy-MM-dd HH:mm:ss <br>
	 *               yyyy年MM月dd日HH时mm分ss�?<br>
	 *               yyyy/MM/dd HH:mm:ss <br>
	 *               默认时间格式
	 * @param num
	 *            int
	 * @return java.util.Date
	 * @throws ParseException
	 */
	public static Date nextDate(String date, int num) throws ParseException {
		if (date == null)
			return null;
		SimpleDateFormat sdf = null;
		if (date.indexOf("-") != -1)
			sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		else if (date.indexOf("-") != -1)
			sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss");
		else if (date.indexOf("/") != -1)
			sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		else if (date.indexOf("CST") != -1)
			sdf = new SimpleDateFormat();
		else
			System.out.println("no match format:");
		return nextDate(sdf.parse(date), num);
	}

	/**
	 * 获取当天时间num天后的时间<br>
	 * 如果num小于0则返回当前时间的前num天的时间<br>
	 *    ,否则返回当天时间后num天的时间
	 * 
	 * @param num
	 *            int;
	 * @return java.util.Date
	 */
	public static Date nextDate(int num) {
		return nextDate(new Date(), num);
	}

	/**
	 * 取得当前日期是多少周
	 * 
	 * @param date
	 * @return
	 */
	public static int getWeekOfYear(Date date) {
		Calendar c = Calendar.getInstance();
		c.setFirstDayOfWeek(Calendar.MONDAY);
		/**
		* 设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。
		 * 如果最少天数必须是一整个星期,则使用值 7 调用此方法。
		 **/
		c.setMinimalDaysInFirstWeek(1);
		c.setTime(date);
		return c.get(Calendar.WEEK_OF_YEAR);
	}

	/**
	 * 得到某一年周的总数
	 * 
	 * @param year
	 * @return
	 */
	public static int getMaxWeekNumOfYear(int year) {
		Calendar c = Calendar.getInstance();
		c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
		return getWeekOfYear(c.getTime());
	}

	/**
	 * 得到某年某周的第一天
	 * 
	 * @param year
	 * @param week
	 * @return
	 */
	public static Date getFirstDayOfWeek(int year, int week) {
		Calendar c = Calendar.getInstance();
		c.set(Calendar.YEAR, year);
		c.set(Calendar.WEEK_OF_YEAR, week);
		c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 设置周一
		c.setFirstDayOfWeek(Calendar.MONDAY);
		return c.getTime();
	}

	/**
	 *得到当周的第一天
	 * 
	 * @param year
	 * @param week
	 * @return
	 */
	public static Date getFirstDayOfWeek(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 设置周一
		c.setFirstDayOfWeek(Calendar.MONDAY);
		return c.getTime();
	}

	/**
	 * 得到某年某周的最后一天
	 * 
	 * @param year
	 * @param week
	 * @return
	 */
	public static Date getLastDayOfWeek(int year, int week) {
		Calendar c = Calendar.getInstance();
		c.set(Calendar.YEAR, year);
		c.set(Calendar.WEEK_OF_YEAR, week);
		c.setFirstDayOfWeek(Calendar.MONDAY);
		c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
		return c.getTime();
	}

	/**
	 * 得到当前周的周的最后一天
	 * 
	 * @param year
	 * @param week
	 * @return
	 */
	public static Date getLastDayOfWeek(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.setFirstDayOfWeek(Calendar.MONDAY);
		c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
		return c.getTime();
	}

	/**
	 * 得到某年某月的第一天
	 * 
	 * @param year
	 * @param month
	 * @return
	 */
	public static Date getFirstDayOfMonth(int year, int month) {
		Calendar c = Calendar.getInstance();
		c.set(Calendar.YEAR, year);
		c.set(Calendar.MONTH, month - 1);
		c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
		return c.getTime();
	}

	/**
	 * 获得当前月的第一天
	 * 
	 * @param year
	 * @param date
	 * @return
	 */
	public static Date getFirstDayOfMonth(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
		return c.getTime();
	}

	/**
	 *得到某年某月的最后一天
	 * 
	 * @param year
	 * @param month
	 * @return
	 */
	public static Date getLastDayOfMonth(int year, int month) {
		Calendar c = Calendar.getInstance();
		c.set(Calendar.YEAR, year);
		c.set(Calendar.MONTH, month - 1);
		c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
		return c.getTime();
	}

	/**
	 * 获得当前月的最后一天
	 * 
	 * @param year
	 * @param date
	 * @return
	 */
	public static Date getLastDayOfMonth(Date date) {
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
		return c.getTime();
	}

	/**
	 * 得到某年某季度第一天
	 * 
	 * @param year
	 * @param quarter
	 * @return
	 */
	public static Date getFirstDayOfQuarter(int year, int quarter) {
		int month = 0;
		if (quarter > 4) {
			return null;
		} else {
			month = (quarter - 1) * 3 + 1;
		}
		return getFirstDayOfMonth(year, month);
	}

	/**
	 * 得到某年某季度最后一天
	 * 
	 * @param year
	 * @param quarter
	 * @return
	 */
	public static Date getLastDayOfQuarter(int year, int quarter) {
		int month = 0;
		if (quarter > 4) {
			return null;
		} else {
			month = quarter * 3;
		}
		return getLastDayOfMonth(year, month);
	}

	/**
	 *  得到某年第一天
	 * 
	 * @param year
	 * @return
	 */
	public static Date getFirstDayOfYear(int year) {
		return getFirstDayOfQuarter(year, 1);
	}
	/**
	 * 得到当年第一天
	 * 
	 * @param year
	 * @return
	 */
	public static Date getFirstDayOfYear(Date date) {
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		int year=c.get(Calendar.YEAR);
		return getFirstDayOfYear(year);
	}
	/**
	 * 得到某年最后一天
	 * 
	 * @param year
	 * @return
	 */
	public static Date getLastDayOfYear(int year) {
		return getLastDayOfQuarter(year, 4);
	}
	/**
	 * 得到当年最后一天
	 * 
	 * @param year
	 * @return
	 */
	public static Date getLastDayOfYear(Date date) {
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		int year=c.get(Calendar.YEAR);
		return getLastDayOfYear(year);
	}
	 /**
     * 功能:获取本周的开始时间
     * 示例:2013-05-13 00:00:00
     */   
	public static Date getWeekStart() {// 当周开始时间
            Calendar currentDate = Calendar.getInstance();
            currentDate.setFirstDayOfWeek(Calendar.MONDAY);
            currentDate.set(Calendar.HOUR_OF_DAY, 0);
            currentDate.set(Calendar.MINUTE, 0);
            currentDate.set(Calendar.SECOND, 0);
            currentDate.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
            return (Date) currentDate.getTime();
    }
	
	
	 /**
     * 功能:获取本周的结束时间
     * 示例:2013-05-19 23:59:59
     */   
    public static Date getWeekEnd() {// 当周结束时间
            Calendar currentDate = Calendar.getInstance();
            currentDate.setFirstDayOfWeek(Calendar.MONDAY);
            currentDate.set(Calendar.HOUR_OF_DAY, 23);
            currentDate.set(Calendar.MINUTE, 59);
            currentDate.set(Calendar.SECOND, 59);
            currentDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
            return (Date) currentDate.getTime();
    }
    /**
     * 得到指定或者当前时间前n天的Calendar
     * @param day
     * @return
     */
    @SuppressWarnings("unused")
	public static Calendar getBeforeNDays(int n){
    	Calendar cal = null;
    	//偏移量,给定n天的毫秒数
    	long offset = n * 24 * 60 * 60 * 1000;
    	if (cal != null) {
			cal.setTimeInMillis(cal.getTimeInMillis() - offset);
		}else {
			cal = Calendar.getInstance();
			cal.setTimeInMillis(cal.getTimeInMillis() - offset);
		}
    	return cal;
    }
    /**
     * 得到指定或者当前时间后n天的Calendar
     * @param n
     * @return
     */
    @SuppressWarnings("unused")
	public static Calendar getAfterNDays(int n){
    	Calendar cal = null;
    	//偏移量,给定n天的毫秒数
    	long offset = n*24*60*60*1000;
    	if (cal != null) {
    		cal.setTimeInMillis(cal.getTimeInMillis() + offset);
		}else {
			cal = Calendar.getInstance();
			cal.setTimeInMillis(cal.getTimeInMillis() + offset);
		}
    	return cal;
    }
    /**
     * 获取当前时间的后一天
     * @return
     */
    @SuppressWarnings("unused")
	public static Calendar getTomorrowDay(){
    	 long offset = 1*24*60*60*1000;
    	 Calendar cal = null;
    	 if (cal != null) {
    		 cal.setTimeInMillis(cal.getTimeInMillis() + offset);
		}else {
			cal = Calendar.getInstance();
			cal.setTimeInMillis(cal.getTimeInMillis() + offset);
		}
    	 return cal;
    }
    /**
     * 获取当前时间的上一天
     * @return
     */
    @SuppressWarnings("unused")
	public static Calendar getYesterDay(){
    	 long offset = 1*24*60*60*1000;
    	 Calendar cal = null;
    	 if (cal != null) {
			cal.setTimeInMillis(cal.getTimeInMillis() - offset);
		}else {
			cal = Calendar.getInstance();
			cal.setTimeInMillis(cal.getTimeInMillis() - offset);
		}
    	 return cal;
    	 
    }
}
jdom2解析XML xml
package com.web.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.jdom2.Document;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class XmlUtil {
	public static void saxXml(String path, SaxHandler saxHandler) {
		InputStream in = null;
		try {
			in = new FileInputStream(path);
			saxXml(in, saxHandler);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	public static void saxXml(InputStream in, SaxHandler saxHandler) {
		SAXParserFactory factory = SAXParserFactory.newInstance();
		try {
			SAXParser parser = factory.newSAXParser();
			parser.parse(in, saxHandler);
		} catch (Exception e) {
			e.printStackTrace();
		}
		saxHandler.resultCallback();
	}

	public static void domXml(String path, DomHandler domHandler) {
		File file = new File(path);
		InputStream in = null;
		try {
			in = new FileInputStream(file);
			domXml(in, file, domHandler);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}

	/**
	 * dom解析xml
	 * 
	 * @param in
	 * @param file
	 * @param domHandler
	 */
	public static void domXml(InputStream in, File file, DomHandler domHandler) {
		SAXBuilder saxBuilder = new SAXBuilder();
		Document doc = null;
		try {
			doc = saxBuilder.build(in);
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		domHandler.resultCallback(doc);
		if (file != null) {
			Format format = Format.getCompactFormat();
			// 设置XML文件的缩进为4个空格
			format.setIndent("    ");
			// 设置XML文件的字符集为UTF-8
			format.setEncoding("UTF-8");
			// 将格式应用到输出流中
			XMLOutputter XMLOut = new XMLOutputter(format);
			// 将文档通过文件输出流生成xml文件
			try {
				XMLOut.output(doc, new FileOutputStream(file));
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}







package com.web.util;

import org.jdom2.Document;

public abstract class DomHandler {
	public abstract void resultCallback(Document doc);
}






package com.web.util;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

public class WebServiceTool {
	public final static String GET = "GET";
	public final static String POST = "POST";
	public final static String PUT = "PUT";
	public final static String DELETE = "DELETE";
	public final static Integer TIMEOUT = 5000;

	public static void sendRest(String urlStr, Map<String, Object> params,
			String method, WebServiceCallBack webServiceCallBack)
			throws Exception {
		if (GET.equalsIgnoreCase(method)) {
			sendGet(urlStr, params, webServiceCallBack);
		} else if (POST.equalsIgnoreCase(method)) {
			sendPost(urlStr, params, webServiceCallBack);
		}
	}

	public static void sendSoap(String urlStr, Map<String, String> headers,
			String soapStr, WebServiceCallBack webServiceCallBack)
			throws Exception {
		URL url = new URL(urlStr);
		HttpURLConnection httpURLConn = (HttpURLConnection) url
				.openConnection();
		httpURLConn.setDoInput(true);
		httpURLConn.setDoOutput(true);
		httpURLConn.setRequestMethod(POST);
		httpURLConn.setConnectTimeout(TIMEOUT);
		// 设置请求头
		if (headers != null) {
			for (String key : headers.keySet()) {
				httpURLConn.setRequestProperty(key, headers.get(key));
			}
		}
		httpURLConn.connect();
		OutputStream out = null;
		// 发送soap包
		if (StringUtils.isNotBlank(soapStr)) {
			out = httpURLConn.getOutputStream();
			out.write(soapStr.getBytes());
			out.flush();
		}
		String contentType = httpURLConn.getContentType();
		// 获得响应流
		InputStream in = httpURLConn.getInputStream();
		webServiceCallBack.resultHandler(in, contentType);
		if (in != null) {
			in.close();
		}
		if (out != null) {
			out.close();
		}
	}

	public static void sendGet(String urlStr, Map<String, Object> params,
			WebServiceCallBack webServiceCallBack) {
		StringBuffer urlSb = new StringBuffer(urlStr);
		int i = 0;
		if (params != null) {
			for (String key : params.keySet()) {
				if (i++ == 0) {
					urlSb.append("?");
				} else {
					urlSb.append("&");
				}
				urlSb.append(key);
				urlSb.append("=");
				urlSb.append(params.get(key));
			}
		}
		URL url;
		InputStream in = null;
		try {
			url = new URL(urlSb.toString());

			HttpURLConnection httpURLConn = (HttpURLConnection) url
					.openConnection();
			httpURLConn.setDoInput(true);
			httpURLConn.setDoOutput(true);
			httpURLConn.setRequestMethod(GET);
			httpURLConn.setConnectTimeout(TIMEOUT);
			httpURLConn.connect();
			String contentType = httpURLConn.getContentType();
			in = httpURLConn.getInputStream();
			webServiceCallBack.resultHandler(in, contentType);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	public static void sendPost(String urlStr, Map<String, Object> params,
			WebServiceCallBack webServiceCallBack) throws Exception {
		StringBuffer paramStr = new StringBuffer();
		int counter=0;
		for (String key : params.keySet()) {
			Object value = params.get(key);
			paramStr.append(key).append("=").append(value);
			if (++counter!=params.size()) {
				paramStr.append("&");
			}
		}
		URL url = new URL(urlStr);
		HttpURLConnection httpURLConn = (HttpURLConnection) url
				.openConnection();
		httpURLConn.setDoInput(true);
		httpURLConn.setDoOutput(true);
		httpURLConn.setRequestMethod(POST);
		httpURLConn.connect();
		OutputStream out = httpURLConn.getOutputStream();
		DataOutputStream serviceDataout = new DataOutputStream(
				out);
		serviceDataout.write(paramStr.toString().getBytes("UTF-8"));
		String contentType = httpURLConn.getContentType();
		InputStream in = httpURLConn.getInputStream();
		webServiceCallBack.resultHandler(in, contentType);
	}

	public static String getSoap(String soapClassPath,
			Map<String, Object> params) throws IOException {
		String soapDiskPath = WebServiceTool.class.getResource(
				"/" + soapClassPath).getPath();
		StringBuffer soap = new StringBuffer();
		InputStream in = new FileInputStream(soapDiskPath);
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(in));
		String line = null;
		while ((line = bufferedReader.readLine()) != null) {
			if (params != null && params.size() > 0) {
				for (String key : params.keySet()) {
					line = line.replace("$" + key + "$", params.get(key) + "");
				}
			}
			soap.append(line).append(System.getProperty("line.separator"));
		}
		return soap.toString();
	}
}




package com.web.util;

import java.io.InputStream;

public interface WebServiceCallBack {
	public void resultHandler(InputStream in,String contentType);
}






package com.teamax.action;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.views.util.ContextUtil;
import org.jdom2.Document;
import org.jdom2.Namespace;

import com.opensymphony.xwork2.ActionContext;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.web.util.DomHandler;
import com.web.util.WebServiceCallBack;
import com.web.util.WebServiceTool;
import com.web.util.XmlUtil;

public class SurveyingDataAction {
	private final String getMetaListSoapTemp = "GetMetaList.txt";
	private final String getMetaInfoSoapTemp = "GetMetaInfo.txt";
	private final String getMetaTypesSoapTemp = "GetMetaTypes.txt";
	private static String urlString = null;
	private static String terrainMapGeometryUrl = null;
	private String json = null;
	static {
		InputStream in = SurveyingDataAction.class
				.getResourceAsStream("/webService.properties");
		Properties properties = new Properties();
		try {
			properties.load(in);
		} catch (IOException e) {
			e.printStackTrace();
		}
		urlString = properties.getProperty("surveyingData");
		terrainMapGeometryUrl = properties.getProperty("terrainMapVector");
	}

	public String getMetaList() {
		// Map<String, Object> params = new HashMap<String, Object>();
		// params.put("typeId", "");
		// params.put("startIndex", "");
		// params.put("pageSize", "");
		Map<String, Object> params = dealMap(ActionContext.getContext()
				.getParameters());
		final Object typeId=params.get("typeId");
		try {
			String soapStr = WebServiceTool
					.getSoap(getMetaListSoapTemp, params);
			Map<String, String> headers = new HashMap<String, String>();
			headers.put("Content-Type", "application/soap+xml; charset=utf-8");
			headers.put("Content-Length",
					String.valueOf(soapStr.getBytes().length));
			headers.put("Host", "192.168.1.11");
			WebServiceTool.sendSoap(urlString, headers, soapStr,
					new WebServiceCallBack() {
						@Override
						public void resultHandler(InputStream in,
								String contentType) {
							XmlUtil.domXml(in, null, new DomHandler() {
								@Override
								public void resultCallback(Document doc) {
									json = doc
											.getRootElement()
											.getChild(
													"Body",
													Namespace
															.getNamespace(
																	"soap12",
																	"http://www.w3.org/2003/05/soap-envelope"))
											.getChild(
													"GetMetaListResponse",
													Namespace
															.getNamespace("http://tempuri.org/"))
											.getChildText(
													"GetMetaListResult",
													Namespace
															.getNamespace("http://tempuri.org/"));
								}
							});
						}
					});
			JSONArray jsonArray=JSONArray.fromObject(json);
			for (int i = 0; i < jsonArray.size(); i++) {
				 jsonArray.getJSONObject(i).put("TYPEID",typeId);
			}
			ActionContext.getContext().put("json", jsonArray.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "resource_data_PE";
	}

	public String getGeometry() {
		Object type = ServletActionContext.getRequest().getParameter("type");
		String byframe = null;
		if (type != null) {
			try {
				byframe = new String(type.toString().getBytes("ISO-8859-1"),
						"UTF-8");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		} else {
			byframe = "''";
		}
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("f", "pjson");
		params.put("gdbVersion", "");
		params.put("geometry", "");
		params.put("geometryPrecision", "");
		params.put("geometryType", "esriGeometryEnvelope");
		params.put("groupByFieldsForStatistics", "");
		params.put("inSR", "");
		params.put("maxAllowableOffset", "");
		params.put("objectIds", "");
		params.put("orderByFields", "");
		params.put("outFields", "");
		params.put("outSR", "");
		params.put("outStatistics", "");
		params.put("relationParam", "");
		params.put("returnCountOnly", "false");
		params.put("returnGeometry", "true");
		params.put("returnIdsOnly", "false");
		params.put("returnM", "false");
		params.put("returnZ", "false");
		params.put("spatialRel", "esriSpatialRelIntersects");
		params.put("text", "");
		params.put("time", "");
		// params.put("where", "BYFRAME='218-262-II'");
		params.put("where", "BYFRAME='" + byframe + "'");
		// params.put("where", "1=1");
		try {
			WebServiceTool.sendPost(terrainMapGeometryUrl, params,
					new WebServiceCallBack() {
						@Override
						public void resultHandler(InputStream in,
								String contentType) {
							BufferedReader bufferedReader = null;
							try {
								bufferedReader = new BufferedReader(
										new InputStreamReader(in, "UTF-8"));
							} catch (UnsupportedEncodingException e1) {
								e1.printStackTrace();
							}
							StringBuffer json = new StringBuffer();
							String temp = null;
							try {
								while ((temp = bufferedReader.readLine()) != null) {
									json.append(temp);
								}
							} catch (IOException e) {
								e.printStackTrace();
							}
							// StringBuffer pointsStr = new StringBuffer();
							JSONObject jsonObject = JSONObject.fromObject(json
									.toString());
							JSONArray pointsArray = jsonObject
									.getJSONArray("features").getJSONObject(0)
									.getJSONObject("geometry")
									.getJSONArray("rings").getJSONArray(0);
							ActionContext.getContext().put("points",
									pointsArray.toString());
						}
					});
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "loadMap";
	}

	public void getMetaInfo() throws UnsupportedEncodingException {
		Object typeId = ServletActionContext.getRequest().getParameter("typeId");
		Object metaId = ServletActionContext.getRequest().getParameter("metaId");
		metaId=new String(metaId.toString().getBytes("ISO-8859-1"), "UTF-8");
		Map<String, Object> params=new HashMap<String, Object>();
		params.put("typeId", typeId);
		params.put("metaId", metaId);
		try {
			String soapStr = WebServiceTool.getSoap(getMetaInfoSoapTemp,
					params);
			Map<String, String> headers = new HashMap<String, String>();
			headers.put("Content-Type", "application/soap+xml; charset=utf-8");
			headers.put("Content-Length",
					String.valueOf(soapStr.getBytes().length));
			headers.put("Host", "192.168.1.11");
			WebServiceTool.sendSoap(urlString, headers, soapStr,
					new WebServiceCallBack() {
						@Override
						public void resultHandler(InputStream in,
								String contentType) {
							XmlUtil.domXml(in, null, new DomHandler() {
								@Override
								public void resultCallback(Document doc) {
									json = doc.getRootElement()
											.getChild("Body",Namespace.getNamespace("soap12","http://www.w3.org/2003/05/soap-envelope"))
											.getChild("GetMetaInfoResponse",Namespace.getNamespace("http://tempuri.org/"))
											.getChildText("GetMetaInfoResult",Namespace.getNamespace("http://tempuri.org/"));
								}
							});
						}
					});
			StringBuffer jsonFormat=new StringBuffer();
			JSONArray jsonArray=JSONArray.fromObject(json);
			jsonFormat.append("[");
			for (int i = 0; i < jsonArray.size(); i++) {
				jsonFormat.append("{");
				JSONObject jsonObject=jsonArray.getJSONObject(i);
				for (Object key : jsonObject.keySet()) {
					jsonFormat.append(System.getProperty("line.separator"));
					jsonFormat.append("\"");
					jsonFormat.append(key);
					jsonFormat.append("\"");
					jsonFormat.append(":");
					jsonFormat.append("\"");
					jsonFormat.append(jsonObject.get(key));
					jsonFormat.append("\"");
					jsonFormat.append(",");
				}
				jsonFormat.append("}");
			}
			jsonFormat.append("]");
			printStrText("<pre>"+jsonFormat.toString()+"</pre>");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void getMetaTypes() {
		try {
			String soapStr = WebServiceTool.getSoap(getMetaTypesSoapTemp, null);
			Map<String, String> headers = new HashMap<String, String>();
			headers.put("Content-Type", "application/soap+xml; charset=utf-8");
			headers.put("Content-Length",
					String.valueOf(soapStr.getBytes().length));
			headers.put("Host", "192.168.1.11");
			WebServiceTool.sendSoap(urlString, headers, soapStr,
					new WebServiceCallBack() {
						@Override
						public void resultHandler(InputStream in,
								String contentType) {
							XmlUtil.domXml(in, null, new DomHandler() {
								@Override
								public void resultCallback(Document doc) {
									json = doc
											.getRootElement()
											.getChild(
													"Body",
													Namespace
															.getNamespace(
																	"soap12",
																	"http://www.w3.org/2003/05/soap-envelope"))
											.getChild(
													"GetMetaTypesResponse",
													Namespace
															.getNamespace("http://tempuri.org/"))
											.getChildText(
													"GetMetaTypesResult",
													Namespace
															.getNamespace("http://tempuri.org/"));
								}
							});
						}
					});
			printStrText(json);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void printStrText(String value) throws Exception {
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().print(value);
	}

	private Map<String, Object> dealMap(Map<String, Object> objMap) {
		Map<String, Object> strMap = new HashMap<String, Object>();
		for (String key : objMap.keySet()) {
			String[] value = (String[]) (objMap.get(key));
			strMap.put(key, value[0]);
		}
		return strMap;
	}
}
webServiceTools webservice
package com.web.util;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.views.util.ContextUtil;

import com.opensymphony.xwork2.ActionContext;

public class WebServiceTool {
	public final static String GET = "GET";
	public final static String POST = "POST";
	public final static String PUT = "PUT";
	public final static String DELETE = "DELETE";
	public final static Integer TIMEOUT = 5000;

	public static void sendRest(String urlStr, Map<String, Object> params,
			String method, WebServiceCallBack webServiceCallBack)
			throws Exception {
		if (GET.equalsIgnoreCase(method)) {
			sendGet(urlStr, params, webServiceCallBack);
		} else if (POST.equalsIgnoreCase(method)) {
			sendPost(urlStr, params, webServiceCallBack);
		}
	}

	public static void sendSoap(String urlStr, Map<String, String> headers,
			String soapStr, WebServiceCallBack webServiceCallBack)
			throws Exception {
		URL url = new URL(urlStr);
		HttpURLConnection httpURLConn = (HttpURLConnection) url
				.openConnection();
		httpURLConn.setDoInput(true);
		httpURLConn.setDoOutput(true);
		httpURLConn.setRequestMethod(POST);
		httpURLConn.setConnectTimeout(TIMEOUT);
		// 设置请求头
		if (headers != null) {
			for (String key : headers.keySet()) {
				httpURLConn.setRequestProperty(key, headers.get(key));
			}
		}
		httpURLConn.connect();
		OutputStream out = null;
		// 发送soap包
		if (StringUtils.isNotBlank(soapStr)) {
			out = httpURLConn.getOutputStream();
			out.write(soapStr.getBytes());
			out.flush();
		}
		String contentType = httpURLConn.getContentType();
		// 获得响应流
		InputStream in = httpURLConn.getInputStream();
		webServiceCallBack.resultHandler(in, contentType);
		if (in != null) {
			in.close();
		}
		if (out != null) {
			out.close();
		}
	}

	public static void sendGet(String urlStr, Map<String, Object> params,
			WebServiceCallBack webServiceCallBack) {
		StringBuffer urlSb = new StringBuffer(urlStr);
		int i = 0;
		if (params != null) {
			for (String key : params.keySet()) {
				if (i++ == 0) {
					urlSb.append("?");
				} else {
					urlSb.append("&");
				}
				urlSb.append(key);
				urlSb.append("=");
				urlSb.append(params.get(key));
			}
		}
		URL url;
		InputStream in = null;
		try {
			url = new URL(urlSb.toString());

			HttpURLConnection httpURLConn = (HttpURLConnection) url
					.openConnection();
			httpURLConn.setDoInput(true);
			httpURLConn.setDoOutput(true);
			httpURLConn.setRequestMethod(GET);
			httpURLConn.setConnectTimeout(TIMEOUT);
			httpURLConn.connect();
			String contentType = httpURLConn.getContentType();
			in = httpURLConn.getInputStream();
			webServiceCallBack.resultHandler(in, contentType);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	public static void sendPost(String urlStr, Map<String, Object> params,
			WebServiceCallBack webServiceCallBack) throws Exception {
		StringBuffer paramStr = new StringBuffer();
		int counter=0;
		for (String key : params.keySet()) {
			Object value = params.get(key);
			paramStr.append(key).append("=").append(value);
			if (++counter!=params.size()) {
				paramStr.append("&");
			}
		}
		URL url = new URL(urlStr);
		HttpURLConnection httpURLConn = (HttpURLConnection) url
				.openConnection();
		httpURLConn.setDoInput(true);
		httpURLConn.setDoOutput(true);
		httpURLConn.setRequestMethod(POST);
		httpURLConn.connect();
		OutputStream out = httpURLConn.getOutputStream();
		DataOutputStream serviceDataout = new DataOutputStream(
				out);
		serviceDataout.write(paramStr.toString().getBytes("UTF-8"));
		String contentType = httpURLConn.getContentType();
		InputStream in = httpURLConn.getInputStream();
		webServiceCallBack.resultHandler(in, contentType);
	}

	public static String getSoap(String soapClassPath,
			Map<String, Object> params) throws IOException {
		String soapDiskPath = WebServiceTool.class.getResource(
				"/" + soapClassPath).getPath();
		StringBuffer soap = new StringBuffer();
		InputStream in = new FileInputStream(soapDiskPath);
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(in));
		String line = null;
		while ((line = bufferedReader.readLine()) != null) {
			if (params != null && params.size() > 0) {
				for (String key : params.keySet()) {
					line = line.replace("$" + key + "$", params.get(key) + "");
				}
			}
			soap.append(line).append(System.getProperty("line.separator"));
		}
		return soap.toString();
	}
}





package com.web.util;

import java.io.InputStream;

public interface WebServiceCallBack {
	public void resultHandler(InputStream in,String contentType);
}
Java导出 xsl java
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


/*
	 * 导出投票结果
	 */
	public void expToupiaoResult() throws Exception{
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response = ServletActionContext.getResponse();
		PrintWriter out = Common.getPrintWriterOut();
		// 第一步,创建一个webbook,对应一个Excel文件
		HSSFWorkbook wb = new HSSFWorkbook();
		// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
		HSSFSheet sheet = wb.createSheet("运维操作日志信息表");
		// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
		HSSFRow row = sheet.createRow((int) 0);
		// 第四步,创建单元格,并设置值表头 设置表头居中
		HSSFCellStyle style = wb.createCellStyle();
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
		
		int cc = 0;
		
		HSSFCell cell = row.createCell((short) 0);
		cell.setCellValue("投票问题");
		cell.setCellStyle(style);
		cell = row.createCell((short) 1);
		cell.setCellValue("投票选项");
		cell.setCellStyle(style);
		cell = row.createCell((short) 2);
		cell.setCellValue("投票次数");
		cell.setCellStyle(style);
		cell = row.createCell((short) 3);
		
		VoteCountDetails voteCountDetails;
		VoteCount voteCount = null;
		Map<String, Object> map = new HashMap<String, Object>(); 
		List<VoteCount> objCounts = new ArrayList<VoteCount>();
		
		int newsId = Integer.parseInt(request.getParameter("newsId"));
		List<PubSysNewsVoteRelation> relationList = pubSysNewsVoteDao.getVoteIdsByNewsId(newsId);
		
		if(relationList != null && relationList.size() > 0){
			for(int i=0;i<relationList.size();i++){
				int vote_total_count = 0;
				int vote_single_count = 0;
				
				int voteId = relationList.get(i).getVote_id();
				PubSysNewsVote newsVote = pubSysNewsVoteDao.getNewsVotesByVoteId(voteId);
				if (newsVote != null) {
					int news_vote_id = newsVote.getId();
					
					String questionName = newsVote.getVoteName();
					
					if (!"text".equals(newsVote.getType())) {
						List<PubSysVote> votes = pubSysNewsVoteDao.getVoteResultByNewsVoteId(news_vote_id);
						if (votes.size() > 0) {
							List<VoteCountDetails> voteCountDetailsList = new ArrayList<VoteCountDetails>();
							for (int j=0;j<votes.size();j++) {
								voteCountDetails = new VoteCountDetails();
								voteCount = new VoteCount();

								String vote_answer_name = votes.get(j).getName();
								int vote_id = votes.get(j).getId();
								//System.out.println("vote_name:"+ vote_answer_name);
								//System.out.println("vote_id:" + vote_id);
								map.clear();
								map.put("voteId", vote_id);
								map.put("newsId", newsId);
								vote_single_count = pubSysNewsVoteDao.getVoteCountByVoteId(map);

								// 统计当前问题总投票数
								vote_total_count += vote_single_count;

								voteCountDetails.setVote_answer_name(vote_answer_name);
								voteCountDetails.setVote_single_count(vote_single_count);

								voteCountDetailsList.add(voteCountDetails);
								voteCount.setVote_name(newsVote.getVoteName());
								voteCount.setVote_total_count(vote_total_count);
								voteCount.setVoteCountDetails(voteCountDetailsList);
								
								
								
								row = sheet.createRow((int) cc+1);
								sheet.autoSizeColumn((int) cc+1);
								row.createCell((short) 0).setCellValue(questionName);
								row.createCell((short) 1).setCellValue(vote_answer_name);
								row.createCell((short) 2).setCellValue(vote_single_count);
								
								cc ++ ;
							}
							objCounts.add(voteCount);

							///System.out.println(newsVote.getVoteName()+ ",总投票数:" + vote_total_count);

						}
					}
				}
			}
			
		}
map javabean 转换 java
	
	/**
	 * 将一个 JavaBean 对象转化为一个  Map 
	 * @param bean 要转化的JavaBean 对象 
	 * @return
	 * @throws IntrospectionException 
	 */
	public static Map convertBean2Map(Object bean){
		if (bean == null) {
			throw new NullPointerException();
		}
		Map map = new HashMap();
		Class<?> beanClass = bean.getClass();
		//内省 获取bean信息
		try {
			BeanInfo beanInfo  = Introspector.getBeanInfo(beanClass);
			PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
			for(PropertyDescriptor descriptor : descriptors){
				//获取属性名
				String propertyName = descriptor.getName();
				if (!"class".equals(propertyName)) {
					Method method = descriptor.getReadMethod();
					Object result = method.invoke(bean, new Object[0]);
					if (null != result) {
						map.put(propertyName, result.toString());
					}
					else{
						map.put(propertyName, "");
					}
				}
			}
			
		} catch (Exception e) {
		}
		return map;
	}
Global site tag (gtag.js) - Google Analytics