常用java工具类的镇整理收集

9 篇文章 0 订阅

在这里插入图片描述
原文链接
*1.json转换工具

1. package com.taotao.utils; 
3. import java.util.List; 
5. import com.fasterxml.jackson.core.JsonProcessingException; 
6. import com.fasterxml.jackson.databind.JavaType; 
7. import com.fasterxml.jackson.databind.JsonNode; 
8. import com.fasterxml.jackson.databind.ObjectMapper; 
10. /** 
11. * json转换工具类 
12. */ 
13. public class JsonUtils { 
15. // 定义jackson对象 
16. private static final ObjectMapper MAPPER = new ObjectMapper(); 
18. /** 
19. * 将对象转换成json字符串。 
20. * <p>Title: pojoToJson</p> 
21. * <p>Description: </p> 
22. * @param data 
23. * @return 
24. */ 
25. public static String objectToJson(Object data) { 
26. try { 
27. String string = MAPPER.writeValueAsString(data); 
28. return string; 
29. } catch (JsonProcessingException e) { 
30. e.printStackTrace(); 
31. } 
32. return null; 
33. } 
35. /** 
36. * 将json结果集转化为对象 
37. * 
38. * @param jsonData json数据 
39. * @param clazz 对象中的object类型 
40. * @return 
41. */ 
42. public static <T> T jsonToPojo(String jsonData, Class<T> beanType) { 
43. try { 
44. T t = MAPPER.readValue(jsonData, beanType); 
45. return t; 
46. } catch (Exception e) { 
47. e.printStackTrace(); 
48. } 
49. return null; 
50. } 
52. /** 
53. * 将json数据转换成pojo对象list 
54. * <p>Title: jsonToList</p> 
55. * <p>Description: </p> 
56. * @param jsonData 
57. * @param beanType 
58. * @return 
59. */ 
60. public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) { 
61. JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); 
62. try { 
63. List<T> list = MAPPER.readValue(jsonData, javaType); 
64. return list; 
65. } catch (Exception e) { 
66. e.printStackTrace(); 
67. } 
69. return null; 
70. } 
72. } 

2.cookie的读写

1. package com.taotao.common.utils; 
3. import java.io.UnsupportedEncodingException; 
4. import java.net.URLDecoder; 
5. import java.net.URLEncoder; 
7. import javax.servlet.http.Cookie; 
8. import javax.servlet.http.HttpServletRequest; 
9. import javax.servlet.http.HttpServletResponse; 
12. /** 
13. * 
14. * Cookie 工具类 
15. * 
16. */ 
17. public final class CookieUtils { 
19. /** 
20. * 得到Cookie的值, 不编码 
21. * 
22. * @param request 
23. * @param cookieName 
24. * @return 
25. */ 
26. public static String getCookieValue(HttpServletRequest request, String cookieName) { 
27. return getCookieValue(request, cookieName, false); 
28. } 
30. /** 
31. * 得到Cookie的值, 
32. * 
33. * @param request 
34. * @param cookieName 
35. * @return 
36. */ 
37. public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) { 
38. Cookie[] cookieList = request.getCookies(); 
39. if (cookieList == null || cookieName == null) { 
40. return null; 
41. } 
42. String retValue = null; 
43. try { 
44. for (int i = 0; i < cookieList.length; i++) { 
45. if (cookieList[i].getName().equals(cookieName)) { 
46. if (isDecoder) { 
47. retValue = URLDecoder.decode(cookieList[i].getValue(), "UTF-8"); 
48. } else { 
49. retValue = cookieList[i].getValue(); 
50. } 
51. break; 
52. } 
53. } 
54. } catch (UnsupportedEncodingException e) { 
55. e.printStackTrace(); 
56. } 
57. return retValue; 
58. } 
60. /** 
61. * 得到Cookie的值, 
62. * 
63. * @param request 
64. * @param cookieName 
65. * @return 
66. */ 
67. public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) { 
68. Cookie[] cookieList = request.getCookies(); 
69. if (cookieList == null || cookieName == null) { 
70. return null; 
71. } 
72. String retValue = null; 
73. try { 
74. for (int i = 0; i < cookieList.length; i++) { 
75. if (cookieList[i].getName().equals(cookieName)) { 
76. retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString); 
77. break; 
78. } 
79. } 
80. } catch (UnsupportedEncodingException e) { 
81. e.printStackTrace(); 
82. } 
83. return retValue; 
84. } 
86. /** 
87. * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码 
88. */ 
89. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 
90. String cookieValue) { 
91. setCookie(request, response, cookieName, cookieValue, -1); 
92. } 
94. /** 
95. * 设置Cookie的值 在指定时间内生效,但不编码 
96. */ 
97. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 
98. String cookieValue, int cookieMaxage) { 
99. setCookie(request, response, cookieName, cookieValue, cookieMaxage, false); 
100. } 
102. /** 
103. * 设置Cookie的值 不设置生效时间,但编码 
104. */ 
105. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 
106. String cookieValue, boolean isEncode) { 
107. setCookie(request, response, cookieName, cookieValue, -1, isEncode); 
108. } 
110. /** 
111. * 设置Cookie的值 在指定时间内生效, 编码参数 
112. */ 
113. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 
114. String cookieValue, int cookieMaxage, boolean isEncode) { 
115. doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode); 
116. } 
118. /** 
119. * 设置Cookie的值 在指定时间内生效, 编码参数(指定编码) 
120. */ 
121. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 
122. String cookieValue, int cookieMaxage, String encodeString) { 
123. doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString); 
124. } 
126. /** 
127. * 删除Cookie带cookie域名 
128. */ 
129. public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, 
130. String cookieName) { 
131. doSetCookie(request, response, cookieName, "", -1, false); 
132. } 
134. /** 
135. * 设置Cookie的值,并使其在指定时间内生效 
136. * 
137. * @param cookieMaxage cookie生效的最大秒数 
138. */ 
139. private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response, 
140. String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) { 
141. try { 
142. if (cookieValue == null) { 
143. cookieValue = ""; 
144. } else if (isEncode) { 
145. cookieValue = URLEncoder.encode(cookieValue, "utf-8"); 
146. } 
147. Cookie cookie = new Cookie(cookieName, cookieValue); 
148. if (cookieMaxage > 0) 
149. cookie.setMaxAge(cookieMaxage); 
150. if (null != request) {// 设置域名的cookie 
151. String domainName = getDomainName(request); 
152. System.out.println(domainName); 
153. if (!"localhost".equals(domainName)) { 
154. cookie.setDomain(domainName); 
155. } 
156. } 
157. cookie.setPath("/"); 
158. response.addCookie(cookie); 
159. } catch (Exception e) { 
160. e.printStackTrace(); 
161. } 
162. } 
164. /** 
165. * 设置Cookie的值,并使其在指定时间内生效 
166. * 
167. * @param cookieMaxage cookie生效的最大秒数 
168. */ 
169. private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response, 
170. String cookieName, String cookieValue, int cookieMaxage, String encodeString) { 
171. try { 
172. if (cookieValue == null) { 
173. cookieValue = ""; 
174. } else { 
175. cookieValue = URLEncoder.encode(cookieValue, encodeString); 
176. } 
177. Cookie cookie = new Cookie(cookieName, cookieValue); 
178. if (cookieMaxage > 0) 
179. cookie.setMaxAge(cookieMaxage); 
180. if (null != request) {// 设置域名的cookie 
181. String domainName = getDomainName(request); 
182. System.out.println(domainName); 
183. if (!"localhost".equals(domainName)) { 
184. cookie.setDomain(domainName); 
185. } 
186. } 
187. cookie.setPath("/"); 
188. response.addCookie(cookie); 
189. } catch (Exception e) { 
190. e.printStackTrace(); 
191. } 
192. } 
194. /** 
195. * 得到cookie的域名 
196. */ 
197. private static final String getDomainName(HttpServletRequest request) { 
198. String domainName = null; 
200. String serverName = request.getRequestURL().toString(); 
201. if (serverName == null || serverName.equals("")) { 
202. domainName = ""; 
203. } else { 
204. serverName = serverName.toLowerCase(); 
205. serverName = serverName.substring(7); 
206. final int end = serverName.indexOf("/"); 
207. serverName = serverName.substring(0, end); 
208. final String[] domains = serverName.split("\\."); 
209. int len = domains.length; 
210. if (len > 3) { 
211. // www.xxx.com.cn 
212. domainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1]; 
213. } else if (len <= 3 && len > 1) { 
214. // xxx.com or xxx.cn 
215. domainName = "." + domains[len - 2] + "." + domains[len - 1]; 
216. } else { 
217. domainName = serverName; 
218. } 
219. } 
221. if (domainName != null && domainName.indexOf(":") > 0) { 
222. String[] ary = domainName.split("\\:"); 
223. domainName = ary[0]; 
224. } 
225. return domainName; 
226. } 
228. } 

3.HttpClientUtil

1. package com.taotao.utils; 
3. import java.io.IOException; 
4. import java.net.URI; 
5. import java.util.ArrayList; 
6. import java.util.List; 
7. import java.util.Map; 
9. import org.apache.http.NameValuePair; 
10. import org.apache.http.client.entity.UrlEncodedFormEntity; 
11. import org.apache.http.client.methods.CloseableHttpResponse; 
12. import org.apache.http.client.methods.HttpGet; 
13. import org.apache.http.client.methods.HttpPost; 
14. import org.apache.http.client.utils.URIBuilder; 
15. import org.apache.http.entity.ContentType; 
16. import org.apache.http.entity.StringEntity; 
17. import org.apache.http.impl.client.CloseableHttpClient; 
18. import org.apache.http.impl.client.HttpClients; 
19. import org.apache.http.message.BasicNameValuePair; 
20. import org.apache.http.util.EntityUtils; 
22. public class HttpClientUtil { 
24. public static String doGet(String url, Map<String, String> param) { 
26. // 创建Httpclient对象 
27. CloseableHttpClient httpclient = HttpClients.createDefault(); 
29. String resultString = ""; 
30. CloseableHttpResponse response = null; 
31. try { 
32. // 创建uri 
33. URIBuilder builder = new URIBuilder(url); 
34. if (param != null) { 
35. for (String key : param.keySet()) { 
36. builder.addParameter(key, param.get(key)); 
37. } 
38. } 
39. URI uri = builder.build(); 
41. // 创建http GET请求 
42. HttpGet httpGet = new HttpGet(uri); 
44. // 执行请求 
45. response = httpclient.execute(httpGet); 
46. // 判断返回状态是否为200 
47. if (response.getStatusLine().getStatusCode() == 200) { 
48. resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); 
49. } 
50. } catch (Exception e) { 
51. e.printStackTrace(); 
52. } finally { 
53. try { 
54. if (response != null) { 
55. response.close(); 
56. } 
57. httpclient.close(); 
58. } catch (IOException e) { 
59. e.printStackTrace(); 
60. } 
61. } 
62. return resultString; 
63. } 
65. public static String doGet(String url) { 
66. return doGet(url, null); 
67. } 
69. public static String doPost(String url, Map<String, String> param) { 
70. // 创建Httpclient对象 
71. CloseableHttpClient httpClient = HttpClients.createDefault(); 
72. CloseableHttpResponse response = null; 
73. String resultString = ""; 
74. try { 
75. // 创建Http Post请求 
76. HttpPost httpPost = new HttpPost(url); 
77. // 创建参数列表 
78. if (param != null) { 
79. List<NameValuePair> paramList = new ArrayList<>(); 
80. for (String key : param.keySet()) { 
81. paramList.add(new BasicNameValuePair(key, param.get(key))); 
82. } 
83. // 模拟表单 
84. UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); 
85. httpPost.setEntity(entity); 
86. } 
87. // 执行http请求 
88. response = httpClient.execute(httpPost); 
89. resultString = EntityUtils.toString(response.getEntity(), "utf-8"); 
90. } catch (Exception e) { 
91. e.printStackTrace(); 
92. } finally { 
93. try { 
94. response.close(); 
95. } catch (IOException e) { 
96. // TODO Auto-generated catch block 
97. e.printStackTrace(); 
98. } 
99. } 
101. return resultString; 
102. } 
104. public static String doPost(String url) { 
105. return doPost(url, null); 
106. } 
108. public static String doPostJson(String url, String json) { 
109. // 创建Httpclient对象 
110. CloseableHttpClient httpClient = HttpClients.createDefault(); 
111. CloseableHttpResponse response = null; 
112. String resultString = ""; 
113. try { 
114. // 创建Http Post请求 
115. HttpPost httpPost = new HttpPost(url); 
116. // 创建请求内容 
117. StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON); 
118. httpPost.setEntity(entity); 
119. // 执行http请求 
120. response = httpClient.execute(httpPost); 
121. resultString = EntityUtils.toString(response.getEntity(), "utf-8"); 
122. } catch (Exception e) { 
123. e.printStackTrace(); 
124. } finally { 
125. try { 
126. response.close(); 
127. } catch (IOException e) { 
128. // TODO Auto-generated catch block 
129. e.printStackTrace(); 
130. } 
131. } 
133. return resultString; 
134. } 
135. } 

4.FastDFSClient工具类

1. package cn.itcast.fastdfs.cliennt; 

3. import org.csource.common.NameValuePair; 
4. import org.csource.fastdfs.ClientGlobal; 
5. import org.csource.fastdfs.StorageClient1; 
6. import org.csource.fastdfs.StorageServer; 
7. import org.csource.fastdfs.TrackerClient; 
8. import org.csource.fastdfs.TrackerServer; 

10. public class FastDFSClient { 

12. private TrackerClient trackerClient = null; 
13. private TrackerServer trackerServer = null; 
14. private StorageServer storageServer = null; 
15. private StorageClient1 storageClient = null; 

17. public FastDFSClient(String conf) throws Exception { 
18. if (conf.contains("classpath:")) { 
19. conf = conf.replace("classpath:", this.getClass().getResource("/").getPath()); 
20. } 
21. ClientGlobal.init(conf); 
22. trackerClient = new TrackerClient(); 
23. trackerServer = trackerClient.getConnection(); 
24. storageServer = null; 
25. storageClient = new StorageClient1(trackerServer, storageServer); 
26. } 

28. /** 
29. * 上传文件方法 
30. * <p>Title: uploadFile</p> 
31. * <p>Description: </p> 
32. * @param fileName 文件全路径 
33. * @param extName 文件扩展名,不包含(.) 
34. * @param metas 文件扩展信息 
35. * @return 
36. * @throws Exception 
37. */ 
38. public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception { 
39. String result = storageClient.upload_file1(fileName, extName, metas); 
40. return result; 
41. } 

43. public String uploadFile(String fileName) throws Exception { 
44. return uploadFile(fileName, null, null); 
45. } 

47. public String uploadFile(String fileName, String extName) throws Exception { 
48. return uploadFile(fileName, extName, null); 
49. } 

51. /** 
52. * 上传文件方法 
53. * <p>Title: uploadFile</p> 
54. * <p>Description: </p> 
55. * @param fileContent 文件的内容,字节数组 
56. * @param extName 文件扩展名 
57. * @param metas 文件扩展信息 
58. * @return 
59. * @throws Exception 
60. */ 
61. public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception { 

63. String result = storageClient.upload_file1(fileContent, extName, metas); 
64. return result; 
65. } 

67. public String uploadFile(byte[] fileContent) throws Exception { 
68. return uploadFile(fileContent, null, null); 
69. } 

71. public String uploadFile(byte[] fileContent, String extName) throws Exception { 
72. return uploadFile(fileContent, extName, null); 
73. } 
74. } 


1. <span style="font-size:14px;font-weight:normal;">public class FastDFSTest { 
3. @Test 
4. public void testFileUpload() throws Exception { 
5. // 1、加载配置文件,配置文件中的内容就是tracker服务的地址。 
6. ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf"); 
7. // 2、创建一个TrackerClient对象。直接new一个。 
8. TrackerClient trackerClient = new TrackerClient(); 
9. // 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。 
10. TrackerServer trackerServer = trackerClient.getConnection(); 
11. // 4、创建一个StorageServer的引用,值为null 
12. StorageServer storageServer = null; 
13. // 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用 
14. StorageClient storageClient = new StorageClient(trackerServer, storageServer); 
15. // 6、使用StorageClient对象上传图片。 
16. //扩展名不带“.” 
17. String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg", "jpg", null); 
18. // 7、返回数组。包含组名和图片的路径。 
19. for (String string : strings) { 
20. System.out.println(string); 
21. } 
22. } 
23. }</span> 
# ![image](http://upload-images.jianshu.io/upload_images/2509688-45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.获取异常的堆栈信息

1. package com.taotao.utils; 

3. import java.io.PrintWriter; 
4. import java.io.StringWriter; 

6. public class ExceptionUtil { 

8. /** 
9. * 获取异常的堆栈信息 
10. * 
11. * @param t 
12. * @return 
13. */ 
14. public static String getStackTrace(Throwable t) { 
15. StringWriter sw = new StringWriter(); 
16. PrintWriter pw = new PrintWriter(sw); 

18. try { 
19. t.printStackTrace(pw); 
20. return sw.toString(); 
21. } finally { 
22. pw.close(); 
23. } 
24. } 
25. } 

#6.easyUIDataGrid对象返回值

1. package com.taotao.result; 
3. import java.util.List; 
5. /** 
6. * easyUIDataGrid对象返回值 
7. * <p>Title: EasyUIResult</p> 
8. * <p>Description: </p> 
9. * <p>Company: www.itcast.com</p> 
10. * @author 入云龙 
11. * @date 2015年7月21日下午4:12:52 
12. * @version 1.0 
13. */ 
14. public class EasyUIResult { 
16. private Integer total; 
18. private List<?> rows; 
20. public EasyUIResult(Integer total, List<?> rows) { 
21. this.total = total; 
22. this.rows = rows; 
23. } 
25. public EasyUIResult(long total, List<?> rows) { 
26. this.total = (int) total; 
27. this.rows = rows; 
28. } 
30. public Integer getTotal() { 
31. return total; 
32. } 
33. public void setTotal(Integer total) { 
34. this.total = total; 
35. } 
36. public List<?> getRows() { 
37. return rows; 
38. } 
39. public void setRows(List<?> rows) { 
40. this.rows = rows; 
41. } 
44. } 

7.ftp上传下载工具类

1. package com.taotao.utils; 
3. import java.io.File; 
4. import java.io.FileInputStream; 
5. import java.io.FileNotFoundException; 
6. import java.io.FileOutputStream; 
7. import java.io.IOException; 
8. import java.io.InputStream; 
9. import java.io.OutputStream; 
11. import org.apache.commons.net.ftp.FTP; 
12. import org.apache.commons.net.ftp.FTPClient; 
13. import org.apache.commons.net.ftp.FTPFile; 
14. import org.apache.commons.net.ftp.FTPReply; 
16. /** 
17. * ftp上传下载工具类 
18. * <p>Title: FtpUtil</p> 
19. * <p>Description: </p> 
20. * <p>Company: www.itcast.com</p> 
21. * @author 入云龙 
22. * @date 2015年7月29日下午8:11:51 
23. * @version 1.0 
24. */ 
25. public class FtpUtil { 
27. /** 
28. * Description: 向FTP服务器上传文件 
29. * @param host FTP服务器hostname 
30. * @param port FTP服务器端口 
31. * @param username FTP登录账号 
32. * @param password FTP登录密码 
33. * @param basePath FTP服务器基础目录 
34. * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath 
35. * @param filename 上传到FTP服务器上的文件名 
36. * @param input 输入流 
37. * @return 成功返回true,否则返回false 
38. */ 
39. public static boolean uploadFile(String host, int port, String username, String password, String basePath, 
40. String filePath, String filename, InputStream input) { 
41. boolean result = false; 
42. FTPClient ftp = new FTPClient(); 
43. try { 
44. int reply; 
45. ftp.connect(host, port);// 连接FTP服务器 
46. // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 
47. ftp.login(username, password);// 登录 
48. reply = ftp.getReplyCode(); 
49. if (!FTPReply.isPositiveCompletion(reply)) { 
50. ftp.disconnect(); 
51. return result; 
52. } 
53. //切换到上传目录 
54. if (!ftp.changeWorkingDirectory(basePath+filePath)) { 
55. //如果目录不存在创建目录 
56. String[] dirs = filePath.split("/"); 
57. String tempPath = basePath; 
58. for (String dir : dirs) { 
59. if (null == dir || "".equals(dir)) continue; 
60. tempPath += "/" + dir; 
61. if (!ftp.changeWorkingDirectory(tempPath)) { 
62. if (!ftp.makeDirectory(tempPath)) { 
63. return result; 
64. } else { 
65. ftp.changeWorkingDirectory(tempPath); 
66. } 
67. } 
68. } 
69. } 
70. //设置上传文件的类型为二进制类型 
71. ftp.setFileType(FTP.BINARY_FILE_TYPE); 
72. //上传文件 
73. if (!ftp.storeFile(filename, input)) { 
74. return result; 
75. } 
76. input.close(); 
77. ftp.logout(); 
78. result = true; 
79. } catch (IOException e) { 
80. e.printStackTrace(); 
81. } finally { 
82. if (ftp.isConnected()) { 
83. try { 
84. ftp.disconnect(); 
85. } catch (IOException ioe) { 
86. } 
87. } 
88. } 
89. return result; 
90. } 
92. /** 
93. * Description: 从FTP服务器下载文件 
94. * @param host FTP服务器hostname 
95. * @param port FTP服务器端口 
96. * @param username FTP登录账号 
97. * @param password FTP登录密码 
98. * @param remotePath FTP服务器上的相对路径 
99. * @param fileName 要下载的文件名 
100. * @param localPath 下载后保存到本地的路径 
101. * @return 
102. */ 
103. public static boolean downloadFile(String host, int port, String username, String password, String remotePath, 
104. String fileName, String localPath) { 
105. boolean result = false; 
106. FTPClient ftp = new FTPClient(); 
107. try { 
108. int reply; 
109. ftp.connect(host, port); 
110. // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 
111. ftp.login(username, password);// 登录 
112. reply = ftp.getReplyCode(); 
113. if (!FTPReply.isPositiveCompletion(reply)) { 
114. ftp.disconnect(); 
115. return result; 
116. } 
117. ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录 
118. FTPFile[] fs = ftp.listFiles(); 
119. for (FTPFile ff : fs) { 
120. if (ff.getName().equals(fileName)) { 
121. File localFile = new File(localPath + "/" + ff.getName()); 
123. OutputStream is = new FileOutputStream(localFile); 
124. ftp.retrieveFile(ff.getName(), is); 
125. is.close(); 
126. } 
127. } 
129. ftp.logout(); 
130. result = true; 
131. } catch (IOException e) { 
132. e.printStackTrace(); 
133. } finally { 
134. if (ftp.isConnected()) { 
135. try { 
136. ftp.disconnect(); 
137. } catch (IOException ioe) { 
138. } 
139. } 
140. } 
141. return result; 
142. } 
144. public static void main(String[] args) { 
145. try { 
146. FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg")); 
147. boolean flag = uploadFile("192.168.25.133", 21, "ftpuser", "ftpuser", "/home/ftpuser/www/images","/2015/01/21", "gaigeming.jpg", in); 
148. System.out.println(flag); 
149. } catch (FileNotFoundException e) { 
150. e.printStackTrace(); 
151. } 
152. } 
153. } 

8.各种id生成策略

1. package com.taotao.utils; 

3. import java.util.Random; 

5. /** 
6. * 各种id生成策略 
7. * <p>Title: IDUtils</p> 
8. * <p>Description: </p> 
9. * @date 2015年7月22日下午2:32:10 
10. * @version 1.0 
11. */ 
12. public class IDUtils { 

14. /** 
15. * 图片名生成 
16. */ 
17. public static String genImageName() { 
18. //取当前时间的长整形值包含毫秒 
19. long millis = System.currentTimeMillis(); 
20. //long millis = System.nanoTime(); 
21. //加上三位随机数 
22. Random random = new Random(); 
23. int end3 = random.nextInt(999); 
24. //如果不足三位前面补0 
25. String str = millis + String.format("%03d", end3); 

27. return str; 
28. } 

30. /** 
31. * 商品id生成 
32. */ 
33. public static long genItemId() { 
34. //取当前时间的长整形值包含毫秒 
35. long millis = System.currentTimeMillis(); 
36. //long millis = System.nanoTime(); 
37. //加上两位随机数 
38. Random random = new Random(); 
39. int end2 = random.nextInt(99); 
40. //如果不足两位前面补0 
41. String str = millis + String.format("%02d", end2); 
42. long id = new Long(str); 
43. return id; 
44. } 

46. public static void main(String[] args) { 
47. for(int i=0;i< 100;i++) 
48. System.out.println(genItemId()); 
49. } 
50. } 

9.上传图片返回值

package com.result;  
/** 
 * 上传图片返回值 
 * <p>Title: PictureResult</p> 
 * <p>Description: </p> 
 * <p>Company: www.itcast.com</p>  
 * @author  入云龙 
 * @date    2015年7月22日下午2:09:02 
 * @version 1.0 
 */  
public class PictureResult {  
  
    /** 
     * 上传图片返回值,成功:0 失败:1     
     */  
    private Integer error;  
    /** 
     * 回显图片使用的url 
     */  
    private String url;  
    /** 
     * 错误时的错误消息 
     */  
    private String message;  
    public PictureResult(Integer state, String url) {  
        this.url = url;  
        this.error = state;  
    }  
    public PictureResult(Integer state, String url, String errorMessage) {  
        this.url = url;  
        this.error = state;  
        this.message = errorMessage;  
    }  
    public Integer getError() {  
        return error;  
    }  
    public void setError(Integer error) {  
        this.error = error;  
    }  
    public String getUrl() {  
        return url;  
    }  
    public void setUrl(String url) {  
        this.url = url;  
    }  
    public String getMessage() {  
        return message;  
    }  
    public void setMessage(String message) {  
        this.message = message;  
    }  
      
}  

10.自定义响应结构

1. package com.result; 
3. import java.util.List; 
5. import com.fasterxml.jackson.databind.JsonNode; 
6. import com.fasterxml.jackson.databind.ObjectMapper; 
8. /** 
9. * 自定义响应结构 
10. */ 
11. public class TaotaoResult { 
13. // 定义jackson对象 
14. private static final ObjectMapper MAPPER = new ObjectMapper(); 
16. // 响应业务状态 
17. private Integer status; 
19. // 响应消息 
20. private String msg; 
22. // 响应中的数据 
23. private Object data; 
25. public static TaotaoResult build(Integer status, String msg, Object data) { 
26. return new TaotaoResult(status, msg, data); 
27. } 
29. public static TaotaoResult ok(Object data) { 
30. return new TaotaoResult(data); 
31. } 
33. public static TaotaoResult ok() { 
34. return new TaotaoResult(null); 
35. } 
37. public TaotaoResult() { 
39. } 
41. public static TaotaoResult build(Integer status, String msg) { 
42. return new TaotaoResult(status, msg, null); 
43. } 
45. public TaotaoResult(Integer status, String msg, Object data) { 
46. this.status = status; 
47. this.msg = msg; 
48. this.data = data; 
49. } 
51. public TaotaoResult(Object data) { 
52. this.status = 200; 
53. this.msg = "OK"; 
54. this.data = data; 
55. } 
57. // public Boolean isOK() { 
58. // return this.status == 200; 
59. // } 
61. public Integer getStatus() { 
62. return status; 
63. } 
65. public void setStatus(Integer status) { 
66. this.status = status; 
67. } 
69. public String getMsg() { 
70. return msg; 
71. } 
73. public void setMsg(String msg) { 
74. this.msg = msg; 
75. } 
77. public Object getData() { 
78. return data; 
79. } 
81. public void setData(Object data) { 
82. this.data = data; 
83. } 
85. /** 
86. * 将json结果集转化为TaotaoResult对象 
87. * 
88. * @param jsonData json数据 
89. * @param clazz TaotaoResult中的object类型 
90. * @return 
91. */ 
92. public static TaotaoResult formatToPojo(String jsonData, Class<?> clazz) { 
93. try { 
94. if (clazz == null) { 
95. return MAPPER.readValue(jsonData, TaotaoResult.class); 
96. } 
97. JsonNode jsonNode = MAPPER.readTree(jsonData); 
98. JsonNode data = jsonNode.get("data"); 
99. Object obj = null; 
100. if (clazz != null) { 
101. if (data.isObject()) { 
102. obj = MAPPER.readValue(data.traverse(), clazz); 
103. } else if (data.isTextual()) { 
104. obj = MAPPER.readValue(data.asText(), clazz); 
105. } 
106. } 
107. return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj); 
108. } catch (Exception e) { 
109. return null; 
110. } 
111. } 
113. /** 
114. * 没有object对象的转化 
115. * 
116. * @param json 
117. * @return 
118. */ 
119. public static TaotaoResult format(String json) { 
120. try { 
121. return MAPPER.readValue(json, TaotaoResult.class); 
122. } catch (Exception e) { 
123. e.printStackTrace(); 
124. } 
125. return null; 
126. } 
128. /** 
129. * Object是集合转化 
130. * 
131. * @param jsonData json数据 
132. * @param clazz 集合中的类型 
133. * @return 
134. */ 
135. public static TaotaoResult formatToList(String jsonData, Class<?> clazz) { 
136. try { 
137. JsonNode jsonNode = MAPPER.readTree(jsonData); 
138. JsonNode data = jsonNode.get("data"); 
139. Object obj = null; 
140. if (data.isArray() && data.size() > 0) { 
141. obj = MAPPER.readValue(data.traverse(), 
142. MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); 
143. } 
144. return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj); 
145. } catch (Exception e) { 
146. return null; 
147. } 
148. } 
150. } 

##11.jedis操作

1. package com.taotao.jedis; 
3. public interface JedisClient { 
5. String set(String key, String value); 
6. String get(String key); 
7. Boolean exists(String key); 
8. Long expire(String key, int seconds); 
9. Long ttl(String key); 
10. Long incr(String key); 
11. Long hset(String key, String field, String value); 
12. String hget(String key, String field); 
13. Long hdel(String key, String... field); 
14. } 
1. package com.taotao.jedis; 
3. import org.springframework.beans.factory.annotation.Autowired; 
5. import redis.clients.jedis.JedisCluster; 
7. public class JedisClientCluster implements JedisClient { 
9. @Autowired 
10. private JedisCluster jedisCluster; 
12. @Override 
13. public String set(String key, String value) { 
14. return jedisCluster.set(key, value); 
15. } 
17. @Override 
18. public String get(String key) { 
19. return jedisCluster.get(key); 
20. } 
22. @Override 
23. public Boolean exists(String key) { 
24. return jedisCluster.exists(key); 
25. } 
27. @Override 
28. public Long expire(String key, int seconds) { 
29. return jedisCluster.expire(key, seconds); 
30. } 
32. @Override 
33. public Long ttl(String key) { 
34. return jedisCluster.ttl(key); 
35. } 
37. @Override 
38. public Long incr(String key) { 
39. return jedisCluster.incr(key); 
40. } 
42. @Override 
43. public Long hset(String key, String field, String value) { 
44. return jedisCluster.hset(key, field, value); 
45. } 
47. @Override 
48. public String hget(String key, String field) { 
49. return jedisCluster.hget(key, field); 
50. } 
52. @Override 
53. public Long hdel(String key, String... field) { 
54. return jedisCluster.hdel(key, field); 
55. } 
57. } 
1. package com.taotao.jedis; 
4. import org.springframework.beans.factory.annotation.Autowired; 
7. import redis.clients.jedis.Jedis; 
8. import redis.clients.jedis.JedisPool; 
11. public class JedisClientPool implements JedisClient { 
13. @Autowired 
14. private JedisPool jedisPool; 
17. @Override 
18. public String set(String key, String value) { 
19. Jedis jedis = jedisPool.getResource(); 
20. String result = jedis.set(key, value); 
21. jedis.close(); 
22. return result; 
23. } 
26. @Override 
27. public String get(String key) { 
28. Jedis jedis = jedisPool.getResource(); 
29. String result = jedis.get(key); 
30. jedis.close(); 
31. return result; 
32. } 
35. @Override 
36. public Boolean exists(String key) { 
37. Jedis jedis = jedisPool.getResource(); 
38. Boolean result = jedis.exists(key); 
39. jedis.close(); 
40. return result; 
41. } 
44. @Override 
45. public Long expire(String key, int seconds) { 
46. Jedis jedis = jedisPool.getResource(); 
47. Long result = jedis.expire(key, seconds); 
48. jedis.close(); 
49. return result; 
50. } 
53. @Override 
54. public Long ttl(String key) { 
55. Jedis jedis = jedisPool.getResource(); 
56. Long result = jedis.ttl(key); 
57. jedis.close(); 
58. return result; 
59. } 
62. @Override 
63. public Long incr(String key) { 
64. Jedis jedis = jedisPool.getResource(); 
65. Long result = jedis.incr(key); 
66. jedis.close(); 
67. return result; 
68. } 
71. @Override 
72. public Long hset(String key, String field, String value) { 
73. Jedis jedis = jedisPool.getResource(); 
74. Long result = jedis.hset(key, field, value); 
75. jedis.close(); 
76. return result; 
77. } 
80. @Override 
81. public String hget(String key, String field) { 
82. Jedis jedis = jedisPool.getResource(); 
83. String result = jedis.hget(key, field); 
84. jedis.close(); 
85. return result; 
86. } 
89. @Override 
90. public Long hdel(String key, String... field) { 
91. Jedis jedis = jedisPool.getResource(); 
92. Long result = jedis.hdel(key, field); 
93. jedis.close(); 
94. return result; 
95. } 
98. } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值