【发布时间】:2016-04-08 09:37:16
【问题描述】:
旧版 J2EE 应用程序详细信息:
- JSP + Servlets(2.4)
- Websphere 应用服务器 7.0
- 视图正在使用 IE 框架、核心 javascript 等
用户的操作:
- 返回 > 900 行的用户搜索需要一些时间才能显示(无分页)
- 然后用户单击“下载”按钮再次触发表单提交。
下面是在action servlet中执行的代码sn-p:
public class DownloadFileEvent extends ActionGeneric {
java.text.SimpleDateFormat df_file = new java.text.SimpleDateFormat("yyyyMMdd_HHmmss");
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception {
String errormsg = null;
StringBuffer LineBuffer = null;
// read parameters.
String _v = request.getParameter("view");
// Start traitment.
try {
// get sessions.
ServletOutputStream out = response.getOutputStream();
// Create title columns.
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename = " + getFilename(_v));
LineBuffer = new StringBuffer();
//Get the string response from some business method
//String v_wrk = getOutflow(request, _v).toString();
LineBuffer.append(v_wrk);
LineBuffer.append("\r\n");
out.print(LineBuffer.toString());
out.flush();
// end.
}// fin try
catch (Exception e) {
errormsg = e.getMessage();
} finally {
// to do.
}
}// end run.
}// fin class
问题:
由于“下载”需要一些时间,因此用户移动到其他屏幕
当他回来时,“打开/保存/另存为”提示已经出现了一段时间。现在,当用户保存/打开文件时,不是 900 行,而是少于 100 行
令人惊讶的是,如果立即完成打开/保存,所有行都会被下载
在catch块中,我放了一个日志,但是任何地方都没有异常
该问题不是在我的本地计算机(Windows,WAS 7)或系统测试环境(Linux,WAS 8.5)上模拟的,而是在 ACCEPTANCE(WAS 7,Linux)和 PRODUCTION(WAS 7,Linux)上出现)。 ACCEPTANCE 和 PRODUCTION 具有负载平衡器、Web 服务器设置但不在 systest 或本地
我该怎么做?
【问题讨论】:
-
你在哪里以及如何声明(不是实例化)LineBuffer?它是 servlet 类级别的字段吗?还是局部变量?
-
@OlafKock 添加了更多代码,你可以看看吗?
标签: java jsp servlets jakarta-ee websphere