Отправка запроса из одной JSP в другую JSP

В настоящее время я работаю над проектом платежного шлюза. Если какие-либо ошибки проверки произошли в серверной части, сначала я хочу показать сообщение об ошибке на моей странице jsp (платежный шлюз), а через 10 секунд я хочу отправить объект (код ошибки) продавцу (веб-страница продавца) с моего jsp страница.

В настоящее время, когда я пытаюсь выполнить отправку и пересылку на своей странице jsp, мое сообщение об ошибке/просмотр содержимого не отображается в файле jsp. Вместо того, чтобы показывать мои сообщения об ошибках, он просто ждет 10 секунд и пересылает объект продавцу. Потому что я надеюсь, что не позволю зафиксировать объект запроса/ответа в моем jsp, выполнив диспетчеризацию . Поправьте меня если я ошибаюсь.

Пожалуйста, предложите мне хороший способ справиться с этой ситуацией?

Я пытаюсь сделать это на своей странице jsp.

</head>
<body>
<form:form method="post"  commandName="item">
 <form:errors path="*" cssClass="errorblock" element="div" />
 
 <tr>
<td>Response Code :</td><td>${item.responseCode}</td>

<%="test" %>
</tr>
<%
Thread.sleep(10000); // sleep 10 seconds
RequestDispatcher rd = request.getRequestDispatcher("/merchant.jsp");
 //rd.include(request, response);
rd.forward(request, response);
%>
</body>


person Janahan    schedule 08.10.2014    source источник
comment
Можем ли мы отправить объект (код ошибки) также на страницу продавца в мета-перенаправлении?   -  person Janahan    schedule 08.10.2014


Ответы (1)


Вы не можете отправлять выходные данные в jsp, а затем засыпать поток или что-то в этом роде, веб-сервер не отправляет выходные данные до тех пор, пока код не завершит выполнение, поскольку мы не можем видеть ваш код, я предполагаю, что вы пытаясь вывести ошибку, приостановить поток, а затем отправить перенаправление, все, что нужно сделать, это записать его, а затем немедленно отправить перенаправление, когда оно будет отправлено клиенту.

Лучше всего, вероятно, использовать javascript для отправки перенаправления на страницу, на которую вы перенаправляете клиентов для отображения ошибки.

Редактировать: поскольку формат комментариев странный: сервлет не собирался ждать 10 секунд, а затем отправлять перенаправление, потому что вся обработка выполняется до отправки ответа, единственный способ отправить больше данных после факта будет javascript или какой-то другой странной черной магии, самым простым и элегантным решением будет следующее:

<script type="text/javascript">
    window.location.replace("http://yourwebsite.com/merchant.jsp"); 
</script>
person Zachary Craig    schedule 08.10.2014
comment
Ты делаешь именно то, что я думал. вы говорите интерпретатору спать 10 секунд, а затем перенаправляете клиента, однако веб-сервер завершает выполнение ВСЕГО кода на странице перед отправкой вывода клиенту, поэтому задержки нет, задержка просто заставляет страницу занять 10 секунд. load Согласно этому что-то вроде этого должно work <script type="text/javascript"> window.location.replace("http://yourwebsite.com/merchant.jsp"); </script> Редактировать: странное форматирование комментариев. - person Zachary Craig; 09.10.2014
comment
Большое спасибо. Может разобраться с ним через location.replace() и отправить форму с помощью javascript - person Janahan; 09.10.2014