如何向servlet发送大量数据
问题描述:
我正在编写一个Android应用程序,它具有将数据上传到servlet的功能,当我说数据时,我的意思是很多字符串。该servlet在Apache Tomcat v6中运行,并以Java编写。在我看来,我看到的一种做法是使用HttpUrlConnection
。如何向servlet发送大量数据
客户端:
URL u = new URL("http://servlet location");
HttpURLConnection httpCon = (HttpURLConnection) u.openConnection();
httpCon.setRequestMethod("GET");
httpCon.setDoOutput(true);
httpCon.setDoInput(true);
httpCon.setUseCaches(false);
httpCon.setDefaultUseCaches(false);
DataInputStream in = new DataInputStream(httpCon.getInputStream()); // line 8
DataOutputStream out = new DataOutputStream(httpCon.getOutputStream());
// -- writing to servlet using the outputStream --`
... ...
Servlet的一面:
DataInputStream dis = new DataInputStream(request.getInputStream());
DataOutputStream out = new DataOutputStream(response.getOutputStream());
int numFiles = dis.readInt(); //line 3
for(int i=0;i<numFiles;i++)
{
this.data.add(dis.readUTF()); //data is a vector that contains String types
}
当我到客户端上线8条,它触发一个HTTP GET
要求,即预制件servlet的一面。
一切都很好,但是当servlet进入ois.readUTF()
时,它引发了一个异常,而不是等待传入的数据。
答
当你有大量的数据,如大文件或大图像/质量好的图像发送到服务器,那么你可以发送它的部分/块。
首先与服务器建立一个HTTP连接,然后发送带有DataOutputStream
类的块。在服务器端,您需要实现接收这些块的代码,并在获取所有块后将它们放入一个文件中。
它抛出什么异常? – 2012-03-04 22:26:18
在servlet中,我得到一个EOF异常 – Netanel 2012-03-05 12:48:10