Я запускаю следующий код на моей машине, а sample.jsp запускается на моем сервере Tomcat.В файле sample.jsp код выполняется в бесконечном цикле.
public static void main(String[] args) throws Exception {
URL obj = new URL("http://localhost:8080/bank/sample.jsp");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
if (con.getResponseCode() == HttpURLConnection.HTTP_OK) { // success
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try(BufferedInputStream stream = new BufferedInputStream(con.getInputStream()) ) {
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ( (bytesRead = stream.read(buffer)) > 0 && byteArrayOutputStream.size() <= 1024 * 100) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
}
}
if(byteArrayOutputStream.size() > 1024 * 100){
stream.close();
con.disconnect();
throw new Exception("content too big. hence terminating...");
}
}
}
Ниже приведен код в моем jsp:
<%@page import = "java.io.File" %>
<%@page import = "java.io.FileWriter" %>
<%
for(long i=0;i < 10;)
{
out.println("HelloHelloHelloHelloHelloHello");
}
%>
Я закрываю соединение, а также открываемый поток, когда выходной поток превышает определенный размер.Это не останавливает процесс, запущенный на моем сервере Tomcat.Но я хочу остановить программу на стороне сервера, когда соединение закрыто со стороны клиента.Я также не получаю IOException, и поток, кажется, работает бесконечно.Может кто-нибудь помочь мне о том, как остановить поток.