常用的Java工具

.json转换工具

1.package com.taotao.utils;3.importjava.util.List;5.importcom.fasterxml.jackson.core.JsonProcessingException;6.importcom.fasterxml.jackson.databind.JavaType;7.importcom.fasterxml.jackson.databind.JsonNode;8.importcom.fasterxml.jackson.databind.ObjectMapper;10./**

11.  * json转换工具类

12.  */13.publicclassJsonUtils{15.// 定义jackson对象  16.privatestaticfinalObjectMapper MAPPER=newObjectMapper();18./**

19.  * 将对象转换成json字符串。

20.  * <p>Title: pojoToJson</p>

21.  * <p>Description: </p>

22.  * @param data

23.  * @return

24.  */25.publicstaticStringobjectToJson(Object data){26.try{27.String string=MAPPER.writeValueAsString(data);28.returnstring;29.}catch(JsonProcessingExceptione){30.e.printStackTrace();31.}32.returnnull;33.}35./**

36.  * 将json结果集转化为对象

37.  * 

38.  * @param jsonData json数据

39.  * @param clazz 对象中的object类型

40.  * @return

41.  */42.publicstatic<T>TjsonToPojo(String jsonData,Class<T>beanType){43.try{44.T t=MAPPER.readValue(jsonData,beanType);45.returnt;46.}catch(Exceptione){47.e.printStackTrace();48.}49.returnnull;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.publicstatic<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.returnlist;65.}catch(Exceptione){66.e.printStackTrace();67.}69.returnnull;70.}72.}

2.cookie的读写

1.package com.taotao.common.utils;3.importjava.io.UnsupportedEncodingException;4.importjava.net.URLDecoder;5.importjava.net.URLEncoder;7.importjavax.servlet.http.Cookie;8.importjavax.servlet.http.HttpServletRequest;9.importjavax.servlet.http.HttpServletResponse;12./**

13.  * 

14.  * Cookie 工具类

15.  *

16.  */17.publicfinalclassCookieUtils{19./**

20.  * 得到Cookie的值, 不编码

21.  * 

22.  * @param request

23.  * @param cookieName

24.  * @return

25.  */26.publicstaticStringgetCookieValue(HttpServletRequest request,String cookieName){27.returngetCookieValue(request,cookieName,false);28.}30./**

31.  * 得到Cookie的值,

32.  * 

33.  * @param request

34.  * @param cookieName

35.  * @return

36.  */37.publicstaticStringgetCookieValue(HttpServletRequest request,String cookieName,boolean isDecoder){38.Cookie[]cookieList=request.getCookies();39.if(cookieList==null||cookieName==null){40.returnnull;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(UnsupportedEncodingExceptione){55.e.printStackTrace();56.}57.returnretValue;58.}60./**

61.  * 得到Cookie的值,

62.  * 

63.  * @param request

64.  * @param cookieName

65.  * @return

66.  */67.publicstaticStringgetCookieValue(HttpServletRequest request,String cookieName,String encodeString){68.Cookie[]cookieList=request.getCookies();69.if(cookieList==null||cookieName==null){70.returnnull;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(UnsupportedEncodingExceptione){81.e.printStackTrace();82.}83.returnretValue;84.}86./**

87.  * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码

88.  */89.publicstaticvoidsetCookie(HttpServletRequest request,HttpServletResponse response,String cookieName,90.String cookieValue){91.setCookie(request,response,cookieName,cookieValue,-1);92.}94./**

95.  * 设置Cookie的值 在指定时间内生效,但不编码

96.  */97.publicstaticvoidsetCookie(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.publicstaticvoidsetCookie(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.publicstaticvoidsetCookie(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.publicstaticvoidsetCookie(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.publicstaticvoiddeleteCookie(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.privatestaticfinalvoiddoSetCookie(HttpServletRequest request,HttpServletResponse response,140.String cookieName,String cookieValue,int cookieMaxage,boolean isEncode){141.try{142.if(cookieValue==null){143.cookieValue="";144.}elseif(isEncode){145.cookieValue=URLEncoder.encode(cookieValue,"utf-8");146.}147.Cookie cookie=newCookie(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(Exceptione){160.e.printStackTrace();161.}162.}164./**

165.  * 设置Cookie的值,并使其在指定时间内生效

166.  * 

167.  * @param cookieMaxage cookie生效的最大秒数

168.  */169.privatestaticfinalvoiddoSetCookie(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=newCookie(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(Exceptione){190.e.printStackTrace();191.}192.}194./**

195.  * 得到cookie的域名

196.  */197.privatestaticfinalStringgetDomainName(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.finalint end=serverName.indexOf("/");207.serverName=serverName.substring(0,end);208.finalString[]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.}elseif(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.returndomainName;226.}228.}

3.HttpClientUtil

1.package com.taotao.utils;3.importjava.io.IOException;4.importjava.net.URI;5.importjava.util.ArrayList;6.importjava.util.List;7.importjava.util.Map;9.importorg.apache.http.NameValuePair;10.importorg.apache.http.client.entity.UrlEncodedFormEntity;11.importorg.apache.http.client.methods.CloseableHttpResponse;12.importorg.apache.http.client.methods.HttpGet;13.importorg.apache.http.client.methods.HttpPost;14.importorg.apache.http.client.utils.URIBuilder;15.importorg.apache.http.entity.ContentType;16.importorg.apache.http.entity.StringEntity;17.importorg.apache.http.impl.client.CloseableHttpClient;18.importorg.apache.http.impl.client.HttpClients;19.importorg.apache.http.message.BasicNameValuePair;20.importorg.apache.http.util.EntityUtils;22.publicclassHttpClientUtil{24.publicstaticStringdoGet(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=newURIBuilder(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=newHttpGet(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(Exceptione){51.e.printStackTrace();52.}finally{53.try{54.if(response!=null){55.response.close();56.}57.httpclient.close();58.}catch(IOExceptione){59.e.printStackTrace();60.}61.}62.returnresultString;63.}65.publicstaticStringdoGet(String url){66.returndoGet(url,null);67.}69.publicstaticStringdoPost(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=newHttpPost(url);77.// 创建参数列表  78.if(param!=null){79.List<NameValuePair>paramList=newArrayList<>();80.for(String key:param.keySet()){81.paramList.add(newBasicNameValuePair(key,param.get(key)));82.}83.// 模拟表单  84.UrlEncodedFormEntity entity=newUrlEncodedFormEntity(paramList);85.httpPost.setEntity(entity);86.}87.// 执行http请求  88.response=httpClient.execute(httpPost);89.resultString=EntityUtils.toString(response.getEntity(),"utf-8");90.}catch(Exceptione){91.e.printStackTrace();92.}finally{93.try{94.response.close();95.}catch(IOExceptione){96.// TODO Auto-generated catch block  97.e.printStackTrace();98.}99.}101.returnresultString;102.}104.publicstaticStringdoPost(String url){105.returndoPost(url,null);106.}108.publicstaticStringdoPostJson(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=newHttpPost(url);116.// 创建请求内容  117.StringEntity entity=newStringEntity(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(Exceptione){123.e.printStackTrace();124.}finally{125.try{126.response.close();127.}catch(IOExceptione){128.// TODO Auto-generated catch block  129.e.printStackTrace();130.}131.}133.returnresultString;134.}135.}

4.FastDFSClient工具类

1.packagecn.itcast.fastdfs.cliennt;3.importorg.csource.common.NameValuePair;4.importorg.csource.fastdfs.ClientGlobal;5.importorg.csource.fastdfs.StorageClient1;6.importorg.csource.fastdfs.StorageServer;7.importorg.csource.fastdfs.TrackerClient;8.importorg.csource.fastdfs.TrackerServer;10.publicclassFastDFSClient{12.privateTrackerClienttrackerClient=null;13.privateTrackerServertrackerServer=null;14.privateStorageServerstorageServer=null;15.privateStorageClient1storageClient=null;17.publicFastDFSClient(Stringconf)throwsException{18.if(conf.contains("classpath:")){19.conf=conf.replace("classpath:",this.getClass().getResource("/").getPath());20.}21.ClientGlobal.init(conf);22.trackerClient=newTrackerClient();23.trackerServer=trackerClient.getConnection();24.storageServer=null;25.storageClient=newStorageClient1(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.publicStringuploadFile(StringfileName,StringextName,NameValuePair[]metas)throwsException{39.Stringresult=storageClient.upload_file1(fileName,extName,metas);40.returnresult;41.}43.publicStringuploadFile(StringfileName)throwsException{44.returnuploadFile(fileName,null,null);45.}47.publicStringuploadFile(StringfileName,StringextName)throwsException{48.returnuploadFile(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.publicStringuploadFile(byte[]fileContent,StringextName,NameValuePair[]metas)throwsException{63.Stringresult=storageClient.upload_file1(fileContent,extName,metas);64.returnresult;65.}67.publicStringuploadFile(byte[]fileContent)throwsException{68.returnuploadFile(fileContent,null,null);69.}71.publicStringuploadFile(byte[]fileContent,StringextName)throwsException{72.returnuploadFile(fileContent,extName,null);73.}74.}

1.<span style="font-size:14px;font-weight:normal;">publicclassFastDFSTest{3.@Test4.publicvoidtestFileUpload()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.TrackerClienttrackerClient=newTrackerClient();9.// 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。  10.TrackerServertrackerServer=trackerClient.getConnection();11.// 4、创建一个StorageServer的引用,值为null  12.StorageServerstorageServer=null;13.// 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用  14.StorageClientstorageClient=newStorageClient(trackerServer,storageServer);15.// 6、使用StorageClient对象上传图片。  16.//扩展名不带“.”  17.String[]strings=storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg","jpg",null);18.// 7、返回数组。包含组名和图片的路径。  19.for(Stringstring: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.importjava.io.PrintWriter;4.importjava.io.StringWriter;6.publicclassExceptionUtil{8./**

9.  * 获取异常的堆栈信息

10.  * 

11.  * @param t

12.  * @return

13.  */14.publicstaticStringgetStackTrace(Throwable t){15.StringWriter sw=newStringWriter();16.PrintWriter pw=newPrintWriter(sw);18.try{19.t.printStackTrace(pw);20.returnsw.toString();21.}finally{22.pw.close();23.}24.}25.}

#6.easyUIDataGrid对象返回值

1.packagecom.taotao.result;3.importjava.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.publicclassEasyUIResult{16.privateIntegertotal;18.privateList<?>rows;20.publicEasyUIResult(Integertotal,List<?>rows){21.this.total=total;22.this.rows=rows;23.}25.publicEasyUIResult(longtotal,List<?>rows){26.this.total=(int)total;27.this.rows=rows;28.}30.publicIntegergetTotal(){31.returntotal;32.}33.publicvoidsetTotal(Integertotal){34.this.total=total;35.}36.publicList<?>getRows(){37.returnrows;38.}39.publicvoidsetRows(List<?>rows){40.this.rows=rows;41.}44.}

7.ftp上传下载工具类

1.package com.taotao.utils;3.importjava.io.File;4.importjava.io.FileInputStream;5.importjava.io.FileNotFoundException;6.importjava.io.FileOutputStream;7.importjava.io.IOException;8.importjava.io.InputStream;9.importjava.io.OutputStream;11.importorg.apache.commons.net.ftp.FTP;12.importorg.apache.commons.net.ftp.FTPClient;13.importorg.apache.commons.net.ftp.FTPFile;14.importorg.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.publicclassFtpUtil{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.publicstaticbooleanuploadFile(String host,int port,String username,String password,String basePath,40.String filePath,String filename,InputStream input){41.boolean result=false;42.FTPClient ftp=newFTPClient();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.returnresult;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.returnresult;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.returnresult;75.}76.input.close();77.ftp.logout();78.result=true;79.}catch(IOExceptione){80.e.printStackTrace();81.}finally{82.if(ftp.isConnected()){83.try{84.ftp.disconnect();85.}catch(IOExceptionioe){86.}87.}88.}89.returnresult;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.publicstaticbooleandownloadFile(String host,int port,String username,String password,String remotePath,104.String fileName,String localPath){105.boolean result=false;106.FTPClient ftp=newFTPClient();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.returnresult;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=newFile(localPath+"/"+ff.getName());123.OutputStreamis=newFileOutputStream(localFile);124.ftp.retrieveFile(ff.getName(),is);125.is.close();126.}127.}129.ftp.logout();130.result=true;131.}catch(IOExceptione){132.e.printStackTrace();133.}finally{134.if(ftp.isConnected()){135.try{136.ftp.disconnect();137.}catch(IOExceptionioe){138.}139.}140.}141.returnresult;142.}144.publicstaticvoidmain(String[]args){145.try{146.FileInputStreamin=newFileInputStream(newFile("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(FileNotFoundExceptione){150.e.printStackTrace();151.}152.}153.}

8.各种id生成策略

1.package com.taotao.utils;3.importjava.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.publicclassIDUtils{14./**

15.  * 图片名生成

16.  */17.publicstaticStringgenImageName(){18.//取当前时间的长整形值包含毫秒  19.long millis=System.currentTimeMillis();20.//long millis = System.nanoTime();  21.//加上三位随机数  22.Random random=newRandom();23.int end3=random.nextInt(999);24.//如果不足三位前面补0  25.String str=millis+String.format("%03d",end3);27.returnstr;28.}30./**

31.  * 商品id生成

32.  */33.publicstaticlonggenItemId(){34.//取当前时间的长整形值包含毫秒  35.long millis=System.currentTimeMillis();36.//long millis = System.nanoTime();  37.//加上两位随机数  38.Random random=newRandom();39.int end2=random.nextInt(99);40.//如果不足两位前面补0  41.String str=millis+String.format("%02d",end2);42.long id=newLong(str);43.returnid;44.}46.publicstaticvoidmain(String[]args){47.for(int i=0;i<100;i++)48.System.out.println(genItemId());49.}50.}

##9.上传图片返回值

1.package com.result;2./**

3.  * 上传图片返回值

4.  * <p>Title: PictureResult</p>

5.  * <p>Description: </p>

6.  * <p>Company: www.itcast.com</p> 

7.  * @author  入云龙

8.  * @date    2015年7月22日下午2:09:02

9.  * @version 1.0

10.  */11.publicclassPictureResult{13./**

14.  * 上传图片返回值,成功:0 失败:1   

15.  */16.privateInteger error;17./**

18.  * 回显图片使用的url

19.  */20.privateString url;21./**

22.  * 错误时的错误消息

23.  */24.privateString message;25.publicPictureResult(Integer state,String url){26.this.url=url;27.this.error=state;28.}29.publicPictureResult(Integer state,String url,String errorMessage){30.this.url=url;31.this.error=state;32.this.message=errorMessage;33.}34.publicIntegergetError(){35.returnerror;36.}37.publicvoidsetError(Integer error){38.this.error=error;39.}40.publicStringgetUrl(){41.returnurl;42.}43.publicvoidsetUrl(String url){44.this.url=url;45.}46.publicStringgetMessage(){47.returnmessage;48.}49.publicvoidsetMessage(String message){50.this.message=message;51.}53.}

10.自定义响应结构

1.packagecom.result;3.importjava.util.List;5.importcom.fasterxml.jackson.databind.JsonNode;6.importcom.fasterxml.jackson.databind.ObjectMapper;8./**

9.  * 自定义响应结构

10.  */11.publicclassTaotaoResult{13.// 定义jackson对象  14.privatestaticfinalObjectMapper MAPPER=newObjectMapper();16.// 响应业务状态  17.privateInteger status;19.// 响应消息  20.privateString msg;22.// 响应中的数据  23.privateObjectdata;25.publicstatic TaotaoResultbuild(Integer status,String msg,Objectdata){26.returnnewTaotaoResult(status,msg,data);27.}29.publicstatic TaotaoResultok(Objectdata){30.returnnewTaotaoResult(data);31.}33.publicstatic TaotaoResultok(){34.returnnewTaotaoResult(null);35.}37.publicTaotaoResult(){39.}41.publicstatic TaotaoResultbuild(Integer status,String msg){42.returnnewTaotaoResult(status,msg,null);43.}45.publicTaotaoResult(Integer status,String msg,Objectdata){46.this.status=status;47.this.msg=msg;48.this.data=data;49.}51.publicTaotaoResult(Objectdata){52.this.status=200;53.this.msg="OK";54.this.data=data;55.}57.//    public Boolean isOK() {  58.//        return this.status == 200;  59.//    }  61.publicIntegergetStatus(){62.returnstatus;63.}65.publicvoidsetStatus(Integer status){66.this.status=status;67.}69.publicStringgetMsg(){70.returnmsg;71.}73.publicvoidsetMsg(String msg){74.this.msg=msg;75.}77.publicObjectgetData(){78.returndata;79.}81.publicvoidsetData(Objectdata){82.this.data=data;83.}85./**

86.  * 将json结果集转化为TaotaoResult对象

87.  * 

88.  * @param jsonData json数据

89.  * @param clazz TaotaoResult中的object类型

90.  * @return

91.  */92.publicstatic TaotaoResultformatToPojo(String jsonData,Class<?>clazz){93.try{94.if(clazz==null){95.returnMAPPER.readValue(jsonData,TaotaoResult.class);96.}97.JsonNode jsonNode=MAPPER.readTree(jsonData);98.JsonNodedata=jsonNode.get("data");99.Object obj=null;100.if(clazz!=null){101.if(data.isObject()){102.obj=MAPPER.readValue(data.traverse(),clazz);103.}elseif(data.isTextual()){104.obj=MAPPER.readValue(data.asText(),clazz);105.}106.}107.returnbuild(jsonNode.get("status").intValue(),jsonNode.get("msg").asText(),obj);108.}catch(Exception e){109.returnnull;110.}111.}113./**

114.  * 没有object对象的转化

115.  * 

116.  * @param json

117.  * @return

118.  */119.publicstatic TaotaoResultformat(String json){120.try{121.returnMAPPER.readValue(json,TaotaoResult.class);122.}catch(Exception e){123.e.printStackTrace();124.}125.returnnull;126.}128./**

129.  * Object是集合转化

130.  * 

131.  * @param jsonData json数据

132.  * @param clazz 集合中的类型

133.  * @return

134.  */135.publicstatic TaotaoResultformatToList(String jsonData,Class<?>clazz){136.try{137.JsonNode jsonNode=MAPPER.readTree(jsonData);138.JsonNodedata=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.returnbuild(jsonNode.get("status").intValue(),jsonNode.get("msg").asText(),obj);145.}catch(Exception e){146.returnnull;147.}148.}150.}

##11.jedis操作

1.packagecom.taotao.jedis;3.publicinterfaceJedisClient{5.Stringset(String key,String value);6.Stringget(String key);7.Booleanexists(String key);8.Longexpire(String key,int seconds);9.Longttl(String key);10.Longincr(String key);11.Longhset(String key,String field,String value);12.Stringhget(String key,String field);13.Longhdel(String key,String...field);14.}

1.packagecom.taotao.jedis;3.importorg.springframework.beans.factory.annotation.Autowired;5.importredis.clients.jedis.JedisCluster;7.publicclassJedisClientCluster implements JedisClient{9.@Autowired10.privateJedisCluster jedisCluster;12.@Override13.publicStringset(String key,String value){14.returnjedisCluster.set(key,value);15.}17.@Override18.publicStringget(String key){19.returnjedisCluster.get(key);20.}22.@Override23.publicBooleanexists(String key){24.returnjedisCluster.exists(key);25.}27.@Override28.publicLongexpire(String key,int seconds){29.returnjedisCluster.expire(key,seconds);30.}32.@Override33.publicLongttl(String key){34.returnjedisCluster.ttl(key);35.}37.@Override38.publicLongincr(String key){39.returnjedisCluster.incr(key);40.}42.@Override43.publicLonghset(String key,String field,String value){44.returnjedisCluster.hset(key,field,value);45.}47.@Override48.publicStringhget(String key,String field){49.returnjedisCluster.hget(key,field);50.}52.@Override53.publicLonghdel(String key,String...field){54.returnjedisCluster.hdel(key,field);55.}57.}

1.packagecom.taotao.jedis;4.importorg.springframework.beans.factory.annotation.Autowired;7.importredis.clients.jedis.Jedis;8.importredis.clients.jedis.JedisPool;11.publicclassJedisClientPool implements JedisClient{13.@Autowired14.privateJedisPool jedisPool;17.@Override18.publicStringset(String key,String value){19.Jedis jedis=jedisPool.getResource();20.String result=jedis.set(key,value);21.jedis.close();22.returnresult;23.}26.@Override27.publicStringget(String key){28.Jedis jedis=jedisPool.getResource();29.String result=jedis.get(key);30.jedis.close();31.returnresult;32.}35.@Override36.publicBooleanexists(String key){37.Jedis jedis=jedisPool.getResource();38.Boolean result=jedis.exists(key);39.jedis.close();40.returnresult;41.}44.@Override45.publicLongexpire(String key,int seconds){46.Jedis jedis=jedisPool.getResource();47.Long result=jedis.expire(key,seconds);48.jedis.close();49.returnresult;50.}53.@Override54.publicLongttl(String key){55.Jedis jedis=jedisPool.getResource();56.Long result=jedis.ttl(key);57.jedis.close();58.returnresult;59.}62.@Override63.publicLongincr(String key){64.Jedis jedis=jedisPool.getResource();65.Long result=jedis.incr(key);66.jedis.close();67.returnresult;68.}71.@Override72.publicLonghset(String key,String field,String value){73.Jedis jedis=jedisPool.getResource();74.Long result=jedis.hset(key,field,value);75.jedis.close();76.returnresult;77.}80.@Override81.publicStringhget(String key,String field){82.Jedis jedis=jedisPool.getResource();83.String result=jedis.hget(key,field);84.jedis.close();85.returnresult;86.}89.@Override90.publicLonghdel(String key,String...field){91.Jedis jedis=jedisPool.getResource();92.Long result=jedis.hdel(key,field);93.jedis.close();94.returnresult;95.}98.}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容