Spring JSP文件上传,无论是否提交给服务器

时间:2014-11-14 09:37:05

标签: java spring jsp spring-mvc

问题是关于我的应用程序的设计(spring mvc),我不确定我做得对。我需要提供用户上传文件选项,然后解析上传的文件,验证并在JSP中显示数据。如果用户选择提交数据后显示数据,那么我将数据放入数据库。

我所做的是当用户上传文件然后处理它并将信息存储在DB中,然后在JSP中以分页显示。如果用户没有提交数据,那么我会在第二天清理这些数据。我看到的问题是我的数据库中有如此多的数据库调用和不必要的数据。

我已经阅读了会话和存储在内存中的关联上传请求,但是如果有数百个用户尝试上传几乎相同的时间,它会如何处理。

请告知这种方法是正确的设计和性能明智/或处理此类要求的正确方法。

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题,但恕我直言,答案取决于:

  • 上传文件的大小
  • 并发会话数
  • 服务器的容量

我唯一清楚的事情是,数据不应该在验证之前进入数据库中的确定表,除非它中有一个特殊字段表示它仍然没有经过验证且不应该使用。但无论如何,它会增加不必要的复杂性。

话虽如此,您必须在时间段内跨不同请求保留一些与会话相关的数据。因此,根据开头或帖子中引用的参数,您可以使用:

  • 一个cookie,如果数据很小(大约1千字节,因为cookie最大容量是4千字节)
  • 会话中的对象,如果有关可用内存和少数并发会话的数据很少
  • 最终隐藏字段中的表单数据是数据结构很简单 - 如果您向用户显示所有(或几乎所有)数据以进行验证并且可以修改某些字段,则可以考虑选择
  • 服务器上文件夹中的文件,只有会话中的文件名。这是一个很好的解决方案,但如果会话在没有用户验证其数据的情况下关闭,则必须在会话侦听器中实现清理,并且在应用程序异常停止的情况下,在服务器重启时捕获所有清理。