如何避免服务器端Java中的刷新

时间:2018-07-21 11:30:58

标签: java servlets

请考虑以下情形:用户应将一些文件发送到服务器,并且每个用户都有一个ID。每个用户必须发送一次文件,而不是两次。如果用户发送文件后又想再次发送文件,则不会显示文件上传页面。但是存在一个问题:上载过程需要时间,并且在上载文件时,用户可以刷新页面并向他显示该页面(因为文件尚未上载),然后他可以一次又一次地上载文件! 使用jsp的客户端代码,我无法更改它。现在,我要防止在服务器端刷新页面。为此,我使用了一个中间页面:当用户想要查看文件上传页面时,他会转到该中间页面(servlet),该中间servlet在用户的会话中添加一个标志,并将其重定向到文件上传servlet。文件上载servlet检查该标志,如果该标志存在,则向他显示该页面,然后该标志将被删除。每当用户尝试刷新文件上传页面时,该标志都不存在,他将被重定向到错误页面。 这是我的解决方案,但是有一个严重的问题:当用户从中间servlet重定向到文件上传servlet时,其请求和响应将被破坏,并且我无法访问他的请求(用户向我发送了一些请求信息,我需要文件上传servlet中的那些。)

1-有没有一种方法可以克隆请求对象? (这样我就可以加入会话,并在重定向后可以检索到该内容)

2-如果答案为否,是否有更好的解决方案?

任何建议将不胜感激。

编辑: 请注意,我不想将请求参数/属性保存到会话中。

1 个答案:

答案 0 :(得分:0)

在代码中使用window.stop();