2013-04-12 4 views
1

Я хочу отправить двойной массив с большим количеством значений с сервлета на страницу jsp, проблема в этом массиве не имеет определенного размера, размер указан как inpt от пользователя , поэтому некоторое время он может содержать 500 000, 720 000 и т. д. и максимальный размер, который пользователь может ввести в него, поскольку значение размера массива составляет 1 000 000.Отправить Большое количество двойных значений от сервлета до JSP

Я использую следующее, и она работает правильно:

(servelt) RequestDispatcher дисп;

 request.setAttribute("vValues", V_Array); 

    disp = getServletContext().getRequestDispatcher("/index.jsp"); 

    disp.forward(request, response); 

(JSP)

  <% double[] V_Values =(double[]) request.getAttribute("vValues"); %> 

Но проблема возникает, когда я пытаюсь отправить более 100.000 значений из сервлета JSP странице загрузки страницы в течение некоторого времени, а затем он получил аварии с следующая ошибка:

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

Я не могу представить себе пользователя, который наберет более 100 предметов. Лучшее решение, похоже, отправляет файл. –

+0

пользователь не будет печатать, пользователь попросит программу разделить случайные значения, поэтому пользователь вводит (сколько значений хочет от моей программы размножаться случайно) .. и результат будет графическим представлением – user2034269

+0

извините, возможно, мое объяснение wasn 't so good – user2034269

ответ

2

Вы не должны выталкивать такое количество данных из сервлета в jsp. Страница не должна заполняться 100 000 или любым огромным количеством значений. Это просто не может использоваться с точки Зритель стенда:

  • пользователь никогда не хотите, чтобы прочитать эту сумму данных
  • пользователь никогда не будет вход так много чисел вручную

Если вам нужно получать или отправлять массив этого размера пользователю, вам нужно будет решить другой способ: сохранить эти данные в файле (csv приходит на ум), а затем отправить его. Аналогично, для ввода, пользователи захотят отправить данные в виде файла, поэтому сделайте специальную форму для загрузки файла.

Если вам нужно предварительно обработать этот массив, чтобы отображать только несколько значений, выполните предварительную обработку в сервлет, а не в jsp.

+0

пользователь не будет вводить, пользователь попросит программу разделить случайные значения, поэтому пользователь вводит (сколько значений хочет от моей программы размножаться случайным образом) .. и результат будет графическим представлением – user2034269

+0

извините, возможно, мое объяснение было не так хорошо – user2034269

+0

ли ваша графика нужна 100.000 значений? Это кажется немного чрезмерным. – didierc

0

извините, может быть, мое объяснение было не так хорошо, я имел в виду

Пользователь будет задать программу genrate случайных значений, так что пользователь может просто ввести (сколько значений хотят от моей программы genrate случайным образом). и результат будет графическим представлением -

+0

Это не ответ. Это должно быть редактирование по вашему вопросу. –

+0

Тем не менее, сервер должен предоставлять загрузку файла со случайными сгенерированными значениями, а не показывать их все на клиенте. Обратите внимание, что вы даже не можете сделать это на JavaScript. –

Смежные вопросы