常用工具类:
第一部分:请求地址相关工具类
//将请求地址进行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) {
//异常处理
}
}
}
}
}