通用工具类 -- 写博客很少,有不对的地方,希望众多网友指出,我一定及时改正(如果不全面以后会再继续补充)

常用工具类:

 第一部分:请求地址相关工具类

//将请求地址进行UTF-8编码
public static String encodeURL(String url) {
	try {
		return URLEncoder.encode(url, "UTF-8");
	} catch (UnsupportedEncodingException e) {
		return url;
	}
}

//获取HTTP请求地址包含请求参数
public static String getRequestURL(HttpServletRequest request) {
	String query = request.getQueryString();
	String path = request.getRequestURI();
	if (query != null) {
		return path + "?" + query;
	} else {
		return path;
	}
}

第二部分

//下载文件的通用方式(fname是指文件的名称,content是指文件的二进制流),如果有问题希望网友帮忙指出,我一定会及时改正
public static void download(HttpServletRequest request, HttpServletResponse response, String fname, byte[] content) {
		if (request == null || response == null || content == null || content.length == 0) {
			//下载附件参数错误,可抛出异常
		}
		OutputStream out = null;
		try {
			String agnet = request.getHeader("User-Agent").toUpperCase();
                    //针对不同浏览器,做不同的控制
			if (agnet.indexOf("MSIE") > 0 || agnet.indexOf("EDGE") > 0) {
				fname = URLEncoder.encode(fname, "UTF-8");
			} else {
				fname = new String(fname.getBytes("UTF-8"), "ISO8859-1");
			}
			response.setContentType("application/octet-stream");
			response.addHeader("Content-Disposition", "attachment;filename=" + fname);
			response.setCharacterEncoding("UTF-8");
			out = response.getOutputStream();
			out.write(content);
		} catch (Exception e) {
			//下载附件发生错误,可抛出异常
		} finally {
			if (out != null) {
				try {
					out.close();
				} catch (IOException e) {
					// 忽略
				}
			}
		}
	}

第三部分

//格式化时间格式,返回字符串类型
public static String format(Date date, DateTimeFormat format) {
     if (date != null) {
         SimpleDateFormat formater = null;
         switch (format) {
             case YYYYMMDD:
                 formater = new SimpleDateFormat("yyyyMMdd");
                 break;
             case YYYYMMDDHHMMSS:
                 formater = new SimpleDateFormat("yyyyMMddHHmmss");
                 break;
             case YYYY_MM_DD:
                 formater = new SimpleDateFormat("yyyy-MM-dd");
             case YYYY年MM月DD:
                 formater = new SimpleDateFormat("yyyy年MM月dd");
             case YYYY年MM月DD日:
                 formater = new SimpleDateFormat("yyyy年MM月dd日");
         }
         String ret = formater.format(date);
         return ret;
    }
    return null;
}

//通用的String类型的时间转成Date格式
public static final Date parse2Date(String date) throws RuntimeException{
       Assert.notBlank("date", date);
       SimpleDateFormat sdf = new SimpleDateFormat();
       if (date.indexOf(" ") == -1) {
           try {
               sdf.applyPattern("yyyy-MM-dd");
               return sdf.parse(date);
           } catch (ParseException e1) {
               sdf.applyPattern("yyyy/MM/dd");
               try {
                   return sdf.parse(date);
               } catch (ParseException e2) {
                   sdf.applyPattern("yyyyMMdd");
                   try {
                       return sdf.parse(date);
                   } catch (ParseException e3) {
                       sdf.applyPattern("yyyy年MM月dd");
                       try {
                           return sdf.parse(date);
                       } catch (ParseException e4) {
                           sdf.applyPattern("yyyy年MM月dd日");
                           try {
                               return sdf.parse(date);
                           } catch (ParseException e5) {
                               //异常处理
                           }
                       }
                   }
               }
           }
        } else {
           try {
               sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
               return sdf.parse(date);
           } catch (ParseException e1) {
               sdf.applyPattern("yyyy/MM/dd HH:mm:ss");
                try {
                  return sdf.parse(date);
               } catch (ParseException e2) {
                   sdf.applyPattern("yyyyMMdd HH:mm:ss");
                   try {
                       return sdf.parse(date);
                   } catch (ParseException e3) {
                      //异常处理    
                   }
               }
           }
       }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值