一、jersey
以下叙述纯属个人简介,有错请包涵指正,谢谢。
项目在随着业务和时间的增加,数据量会约而来越大。这儿就对项目的个鞥新与维护产生了影响。所以,就要把应用与数据分开。应用就是纯业务,项目里面不包含数据资料。把需要的数据资料都放在另一台服务器上,这样就避免了更新维护应用服务器的时候,对数据的顾虑。
jersey就能够实现这个要求。
首先,平时使用的大多都是get,post请求。tomcat在默认情况下是不支持put请求的。而jersey使用的是put请求。
要想实现tomcat支持put请求,只需要修改 tomcat下\conf\web.xml中
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
添加红色字体部分。以使得tomcat支持put请求。
二、简单例子实现
1.先创建一个web项目,在WebContent下建立一个upload文件夹
2.创建一个Java项目
导入jar包jersey-core-1.18.1.jar、jersey-client-1.18.1.jar、commons-io-2.4.jar
JerseyClient.java 内容
package com.jersey.demo;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import org.apache.commons.io.FileUtils;
import com.jersey.utils.FileNameCreator;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
public class JerseyClient {
public static void main(String[] args) throws IOException {
// 要上传的文件
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File file = chooser.getSelectedFile();
// 图片名称的生成器
String url = FileNameCreator.creatRandomName("http://localhost:8080/file_server/upload/", file.getName());
// jersey client
Client client = new Client();
// 设置请求路径
WebResource resource = client.resource(url);
// 将文件转换为byte数组
byte[] buf = FileUtils.readFileToByteArray(file);
//发送
resource.put(String.class,buf);
System.out.println("发送成功");
}
}
FileNameCreator.java
package com.jersey.utils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileNameCreator {
/**
*
* @param url http://localhost:8005/file_server/upload
* @param fileName
* @return http://localhost:8005/file_server/11111a.jpg
*/
public static String creatRandomName(String url,String fileName) {
DateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmSSS");
String format = fmt.format(new Date());
// 要保存的地址
url = url + format +fileName;
return url;
}
}
运行添加图片即可。
在使用tomcat过程中会出现重启tomcat,或重新部署文件丢失的情况。针对这种情况,我们可以在