我正在使用JSP,我有一个复杂的可序列化对象,我希望将其下载到客户端计算机的平面文件格式。如何才能做到这一点?
我可以使用ObjectOutputStream将对象本地保存到JSP服务器,但我需要将对象远程存储到JSP服务器,而不是本地(例如客户端存储)
一旦对象本地存储在客户端计算机上,我就希望能够将其上传回JSP服务器并打开/读入对象,如何做到这一点?
亲切的问候,
蒂姆答案 0 :(得分:0)
我认为,JSP服务器无法将自动写入网络位置。这是一项安全限制,如果没有手动申请,可能无法实现。您可能想要使用以下策略:
在客户端计算机上创建共享位置(假设它在网络上)并在服务器上安装该位置,然后对JSP进行编码以将文件保存在该位置。
将文件保存在JSP服务器位置,然后可以编写FTP传输脚本将文件传输到客户端机器;使用作业调度程序(需要建立FTP通信)。
以可以使用应用程序网站下载(如下载音乐文件)的方式对应用程序进行编码。然后在客户端,您可以运行一个程序,该程序将连接到应用程序服务器并以编程方式将文件保存在客户端计算机上。
答案 1 :(得分:0)
您的问题是通过http发送二进制对象。
您可以在JSP代码中使用以下代码段。
response.setContentType("binary/octet-stream");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Disposition","attachment; filename=myjavaobject.obj");
ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(yourJavaObject); //Assuming yourJavaObject is the java object you want to send.
out.flush();
out.close();
不要忘记确保yourJavaObject
是serializable
。