我可以将上传的文件作为会话变量保存并在不同的JSP / Servlet之间共享吗? (即文件应该在上传页面以外的页面中提供。) 或者是否有必要将文件保存在服务器中? 或者还有其他方法吗?
答案 0 :(得分:3)
是的,这是可能的。只需将其存储在byte[]
中,并将其另存为会话属性。
byte[] fileContent = getItSomehow();
session.setAttribute("fileContent", fileContent);
// ...
然而,您需要意识到byte
的每个byte[]
都有效地占用服务器内存的一个字节。因此,如果您同时拥有100个用户会话,每个只有一个10MB大文件,则已经消耗掉1GB的服务器内存。当您的服务器没有足够的内存并且您拥有大量访问者时,您将面临OutOfMemoryError
的风险。朝这个方向前三思而后行。