Servlets Excel工作表上载到不同的计算机,即Windows或Sun Soloris。当用户使用servlet选择报告时,如何显示相同的Excel工作表

Servlets Excel工作表上载到不同的计算机,即Windows或Sun Soloris。当用户使用servlet选择报告时,如何显示相同的Excel工作表,servlets,Servlets,在我的应用程序中,我们有两台不同的机器,即Sun Solories和window machine。用户将在任何一台机器上上载ms excelsheet。因此,当我在报告中上载完成时,我希望显示相同的excelsheet。用户将随时选择报告任何机器。因此,我需要如何处理这个场景。我想我会在oracle中使用clob对象保存excelsheet。但我不知道它对不对?请给出这方面的解决方案 场景只要您在服务器端正确处理二进制文件,并且客户端安装了打开所需二进制文件所需的软件,客户端或服务器运行的操作系

在我的应用程序中,我们有两台不同的机器,即Sun Solories和window machine。用户将在任何一台机器上上载ms excelsheet。因此,当我在报告中上载完成时,我希望显示相同的excelsheet。用户将随时选择报告任何机器。因此,我需要如何处理这个场景。我想我会在oracle中使用clob对象保存excelsheet。但我不知道它对不对?请给出这方面的解决方案
场景

只要您在服务器端正确处理二进制文件,并且客户端安装了打开所需二进制文件所需的软件,客户端或服务器运行的操作系统实际上并不重要

首先,您需要将二进制数据存储在blob中,而不是clob中。clob用于字符/文本数据,而不是二进制数据。否则,二进制数据的格式只会不正确。一旦您修复了这个问题,那么只需创建一个使用
ResultSet 35; getBinaryStream()获取blob的
InputStream
基于请求参数或pathinfo,然后将其流式传输到HTTP响应的
OutputStream
,以及一组正确的响应头,指示浏览器如何处理

比如说,

String filename = URLDecoder.decode(request.getPathInfo().substring(1), "UTF-8");
InputStream input = getInputStreamFromDatabase(filename); // Do the JDBC job there.
OutputStream output = response.getOutputStream();

response.setHeader("Content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");

// Now write input to output the usual way.
然后您可以通过调用它