О возможном параллелизме: я так не думаю.
Ваш сервлет с длинным пулом выполняется в другом потоке с собственным HttpRequest
и собственным HttpResponse
.
Ваша проблема находится в вашем JSP, как указано: sale_jsp.java:96
Что-то уже зафиксировано в ответе, поэтому вы не можете использовать getOutputStream()
.
И это очень очень просто в JSP, это простой пример:
<%@ page language="java" contentType="text/html;" %>
<%@ page import="java.io.*" %>
<% OutputStream os = response.getOutputStream();
os.write(......);
%>
Сгенерированный сервлет, по крайней мере, напечатает 3 '\ n' в выводе перед OutputStream os = response.getOutputStream()
, так что все готово ..
Чтобы избежать этого, удалите все пробелы между %>
и <%
, например:
<%@ page language="java" contentType="text/html;"
import="java.io.*" %><%
OutputStream os = response.getOutputStream();
os.write(......);
%>
Настройте свой Tomcat, чтобы сохранить сгенерированный код .
Посмотрите на сгенерированный код для вашего sale.jsp
, я уверен, вы поймете, что не так.
Кроме того, будьте осторожны с <%!
, вы должны объявлять некоторые переменные и непреднамеренно делиться ими по ВСЕМ запросам на этой JSP, это может привести к такого рода параллелизму ...