在会话中的servlet之间共享上载的文件

时间:2011-09-13 18:23:16

标签: jsp servlets

我可以将上传的文件作为会话变量保存并在不同的JSP / Servlet之间共享吗? (即文件应该在上传页面以外的页面中提供。) 或者是否有必要将文件保存在服务器中? 或者还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。只需将其存储在byte[]中,并将其另存为会话属性。

byte[] fileContent = getItSomehow();
session.setAttribute("fileContent", fileContent);
// ...

然而,您需要意识到byte的每个byte[]都有效地占用服务器内存的一个字节。因此,如果您同时拥有100个用户会话,每个只有一个10MB大文件,则已经消耗掉1GB的服务器内存。当您的服务器没有足够的内存并且您拥有大量访问者时,您将面临OutOfMemoryError的风险。朝这个方向前三思而后行。