我想从servlet向jsp页面发送一个包含大量值的double数组,这个数组没有一定大小的问题,大小是以用户的inpt给出的,所以有时它可以包含500.000,720.000等等,用户可以输入的最大值为数组大小的值为1,000,000。
我使用以下内容,它可以正常工作:
(的servelt) RequestDispatcher disp;
request.setAttribute("vValues", V_Array);
disp = getServletContext().getRequestDispatcher("/index.jsp");
disp.forward(request, response);
(JSP)
<% double[] V_Values =(double[]) request.getAttribute("vValues"); %>
但是当我尝试从servlet向jsp页面发送超过100.000个值时,问题出现了,页面加载了一段时间,然后崩溃并出现以下错误:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.xml.ws.WebServiceException: Could not send Message.
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:144)
sun.proxy.$Proxy64.getSVData(Unknown Source)
SMC.client.SMCService.doGet(SMCService.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/SMC/services/SMPort: Read timed out
你可以帮助我,我需要解决这个问题才能继续。
提前致谢;
答案 0 :(得分:2)
您不应该将大量数据从servlet推送到jsp。页面不应该填充100.000或任何大量的值。从观众角度来看,这是不可用的:
如果您需要接收或发送该大小的数组给用户,您将需要解决另一种方法:将该数据存储在一个文件中(csv浮现在脑海中),然后发送它。同样,对于输入,用户希望将数据作为文件发送,因此请使用临时表单上传文件。
如果需要预处理该数组只显示几个值,请在servlet中进行预处理,而不是在jsp中进行预处理。
答案 1 :(得分:0)
用户会要求程序生成随机值,因此用户必须输入(我的程序需要多少值来随机生成)..结果将是图形重新定位 -