`

request公共基类

阅读更多
package com.sinocarbon.base.util;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.jfree.util.Log;

import java.lang.reflect.Field;
import java.net.URLDecoder;

public class ParamUtils {

	/**
	   * 从一个参数中得到整数,如果没有值,返回缺省值
	   * @param request
	   * @param name
	   * @defaultvalue 缺省值
	   * @return
	   */
	  static public Integer getInteger(HttpServletRequest request, String name,
	      Integer defaultvalue) {
	    String p = request.getParameter(name);
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p))
	      return Integer.valueOf(p);
	    else
	      return defaultvalue;
	  }

	  /**
	   * 从一个参数中得到整数,如果没有值,返回缺省值0
	   * @param request
	   * @param name
	   * @return
	   */
	  static public Integer getInteger(HttpServletRequest request, String name) {
	    String p = request.getParameter(name);
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p))
	      return Integer.valueOf(p);
	    else
	      return Integer.valueOf(0);
	  }

	  public static int getInt(HttpServletRequest request, String name, int value) {
	    String p = request.getParameter(name);
	    int val = value;
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p)) {
	      val = Integer.parseInt(p);
	    }
	    return val;
	  }
	  
	  public static int getInt(HttpServletRequest request, String name) {
	    return ParamUtils.getInt(request, name, 0);
	  }
	  
	  /**
	   * 从一个参数中得到字符串
	   * @param request
	   * @param name
	   * @defaultvalue 
	   * @return
	   */
	  static public String getString(HttpServletRequest request, String name,
	      String defaultvalue) {
	    String value = request.getParameter(name);
	    if (value == null || "".equals(value.trim()))
	      return defaultvalue;
	    else
	      return value.trim();
	  }

	  /**
	   * 从一个参数中得到字符串,缺省=""
	   * @param request
	   * @param name
	   * @return
	   */
	  static public String getString(HttpServletRequest request, String name) {
	    String value = request.getParameter(name);
	    if (value == null || "null".equals(value))
	      return "";
	    else
	      return value.trim();
	  }
	  
	/**
	 * 从一个参数中得到中文字符串,缺省=""
	 * gm   2011-4-27
	 * @param request
	 * @param name
	 * @return
	 */
	  static public String getGBKString(HttpServletRequest request, String name) {
		  try{
			  String value = request.getParameter(name);
			  if (value == null || "null".equals(value))
			      return "";
			    else
			      value=URLDecoder.decode(request.getParameter(name),"utf-8");
			      return value.trim();
			   }
			   catch(UnsupportedEncodingException e)
			   {
			    return "编码转换错误:"+e.getMessage();
			   }
			  
		  }
	  /**
	   * 从getParameterMa中得到String
	   * gm 2011-4-29
	   * @param map
	   * @param name
	   * @return
	   */
	  static public String getString(Map map,String name){
		  String newValue="";
		  String[] value=(String[])map.get(name);
		  if(value==null || "null".equals(value[0]))
			  return "";
		  else {
			  newValue=String.valueOf(value[0]);
		}
		  return newValue;
	  }
	  
	  /**
	   * 从getParameterMa中得到中文String
	   * gm 2011-4-29
	   * @param map
	   * @param name
	   * @return
	   */
	  static public String getGBKString(Map map,String name){
		  try{
			  String newValue="";  //将数组对象转为String
			  String GBKValue="";  //将String转为中文
			  String[] value=(String[])map.get(name);
			  if (value == null || "null".equals(value[0]))
			      return "";
			    else
			      newValue=String.valueOf(value[0]);
			      GBKValue=URLDecoder.decode(newValue,"utf-8");
			      return GBKValue.trim();
			   }
			   catch(UnsupportedEncodingException e)
			   {
			    return "编码转换错误:"+e.getMessage();
			   }
	  }
	  
	  /**
	   * 从request得到中文 
	   * @param request
	   * @param name
	   * @param code
	   * @return
	   */
	  public static String getChinaStringByCODE(HttpServletRequest request, String name,String codeType){
		  String value = request.getParameter(name);
		  String returnValue = "";
		  if("null".equalsIgnoreCase(value) || null==value){
			  return returnValue;
		  }else{
			  byte[] bytes;
			try {
				bytes = value.getBytes("iso-8859-1");
				returnValue = new String(bytes,codeType);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
				Log.debug("转换中文编码出错"+e.getMessage());
			}
		  }
		  return returnValue ;
	  }
	  
	  /**
	   * 转换为utf-8编码方式中文
	   * @param request
	   * @param name
	   * @return
	   */
	  public static String getChinaStringByUTF8(HttpServletRequest request, String name){
		  return getChinaStringByCODE(request, name, "utf-8");
	  }
	  
	  /**
	   * 转换为gb2312编码方式中文
	   * @param request
	   * @param name
	   * @return
	   */
	  public static String getChinaStringByGB2312(HttpServletRequest request, String name){
		  return getChinaStringByCODE(request, name, "gb2312");
	  }
	  /**
		 * 这么做是考虑Object字段多,Map字段可能不匹配的情况,容错
		 * @param map
		 * @param obj
		 * @param ridSign 实体类有个set集合对象
		 * @throws Exception
		 */
		public static Object praseMap(Map<String,String> map,Object obj,String ridSign)throws Exception{
			for(Map.Entry<String, String> entry : map.entrySet()){
				String key = entry.getKey();
				if(null!=ridSign){
					int ridSignIdex = key.indexOf(ridSign);
					key = key.substring(0, ridSignIdex);
				}
				String value = entry.getValue();
				//获取Object class下 all field
				Field [] fieldArray = obj.getClass().getDeclaredFields();
				for (int i = 0; i < fieldArray.length; i++) {
					if(key.equals(fieldArray[i].getName())){
						Field field = fieldArray[i];
						//判断field字段type
						Class fieldType = field.getType();
						field.setAccessible(true);
						if(fieldType.equals(int.class)){
							field.setInt(obj, Integer.parseInt(value));
						}else if(fieldType.equals(String.class)){
							field.set(obj,value);
						}else if(fieldType.equals(Double.class)){
							field.setDouble(obj, Double.parseDouble(value));
						}else if(fieldType.equals(Float.class)){
							field.setDouble(obj, Float.parseFloat(value));
						}else if(fieldType.equals(Date.class)){
							SimpleDateFormat sdfFormat = new SimpleDateFormat ("yyyy-MM-dd"); 
							Date iTdate = sdfFormat.parse(value);
							field.set(obj, iTdate);
						}else if(fieldType.equals(Integer.class)){
							field.set(obj, Integer.parseInt(value));
						}else if(fieldType.equals(float.class)){
							field.set(obj, Float.parseFloat(value));
						}else{
							field.set(obj,value);
						}
						break;
					}
				}
			}
			return obj;
		}
		
		public static Object praseMap(Map<String,String> map,Object obj)throws Exception{
			return praseMap(map, obj, null);
		}
}

 

分享到:
评论

相关推荐

    最牛.Net公共类库,.net 开发类库Cmn

    Request Request操作类 Safe 安全操作类 Session Session操作类 Str 字符串操作类 Valid 数据类型验证类 WebConfig Web.Config配置类 ---------------- 公历/农历类 日期格式处理类 文件实用类 上传类 图片...

    NET公共类库[转发]

    系统设计之公共类库 ?Data Class Name File Function SQL访问基础类 SqlHelper.cs 执行带参数SQL,非带参数SQL,存储过程等语句 Access操作辅助类 JetAccess.cs Access的新建,压缩,加密等数据库文件操作 Oledb操作辅助...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    comm-fileupload教程

    FileUpload获取表单中参数的方法并对该组件做了进一点封装,使其更容易使用,并支持单文件上传和多文件上传两种方式,首先定义一个基类放置公共属性: FileUploadBase.java import java.io.File; import java.util....

    jsp servlet 入门学习资料-新手一看就懂

    6.7.1 用request对象获取客户端的数据 6.7.2 用response对象向客户端发送信息 6.7.3 其他内置对象 6.8 &lt;jsp:forward&gt; 6.9 使用插件 6.10 使用session对象 6.10.1 会话的概念 6.10.2 session对象可用的方法和...

    jsp从入门到高级编程

    6.7.1 用request对象获取客户端的数据 6.7.2 用response对象向客户端发送信息 6.7.3 其他内置对象 6.8 &lt;jsp:forward&gt; 6.9 使用插件 6.10 使用session对象 6.10.1 会话的概念 6.10.2 session对象可用的方法和...

    JAVA_API1.6文档(中文)

    javax.imageio.plugins.bmp 包含供内置 BMP 插件使用的公共类的包。 javax.imageio.plugins.jpeg 支持内置 JPEG 插件的类。 javax.imageio.spi 包含用于 reader、writer、transcoder 和流的插件接口以及一个运行时...

    超级有影响力霸气的Java面试题大全文档

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 23、EJB与JAVA BEAN的区别?  Java Bean 是可...

    JSP高级教程

    6.7.1 用request对象获取客户端的数据 6.7.2 用response对象向客户端发送信息 6.7.3 其他内置对象 6.8 &lt;jsp:forward&gt; 6.9 使用插件 6.10 使用session对象 6.10.1 会话的概念 6.10.2 session对象可用的方法和...

    java api最新7.0

    org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对 ...

    JSP高级编程

    6.7.1 用request对象获取客户端的数据 6.7.2 用response对象向客户端发送信息 6.7.3 其他内置对象 6.8 &lt;jsp:forward&gt; 6.9 使用插件 6.10 使用session对象 6.10.1 会话的概念 6.10.2 session对象可用的...

    JDK_1_6 API

    org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对...

    JavaAPI1.6中文chm文档 part1

    javax.imageio.plugins.bmp 包含供内置 BMP 插件使用的公共类的包。 javax.imageio.plugins.jpeg 支持内置 JPEG 插件的类。 javax.imageio.spi 包含用于 reader、writer、transcoder 和流的插件接口以及一个运行时...

    JavaAPI中文chm文档 part2

    javax.imageio.plugins.bmp 包含供内置 BMP 插件使用的公共类的包。 javax.imageio.plugins.jpeg 支持内置 JPEG 插件的类。 javax.imageio.spi 包含用于 reader、writer、transcoder 和流的插件接口以及一个运行时...

    [Java参考文档]

    javax.imageio.plugins.bmp 包含供内置 BMP 插件使用的公共类的包。 javax.imageio.plugins.jpeg 支持内置 JPEG 插件的类。 javax.imageio.spi 包含用于 reader、writer、transcoder 和流的插件接口以及一个运行时...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    4.3.1 HtmlControl基类 95 4.3.2 HtmlContainerControl类 96 4.3.3 所有的HTML类 96 4.3.4 使用HtmlGenericControl类 97 4.4 通过JavaScript处理页面和服务器控件 98 4.4.1 使用Page.ClientScript....

    ASP.NET2.0高级编程(第4版)1/6

    Request对象建立关联702  20.5.3 给SQL Server 高速缓存依赖性 和Cache对象建立关联703 20.6 小结706 第21章 调试和错误处理技术709 21.1 设计期间的支持709  21.1.1 语法通知709  21.1.2 Immediate和 Command...

Global site tag (gtag.js) - Google Analytics