I thought so, thanks for the confirmation, although the code would produce
a ever growing page on Tomcat 4.0 web server and IE 5.5.
I would think the servlet runner should know when a http connection has been
torn down and kill the doGet() thread that is just wasting cpu cycles.
What other mechanism exists in a web-server that can handle such an issue ?
-----Original Message-----
From: A mailing list for discussion about Sun Microsystem's Java Servlet
API Technology. [mailto:[EMAIL PROTECTED]]On Behalf Of Matt
Penner
Sent: Monday, June 18, 2001 7:38 AM
To: [EMAIL PROTECTED]
Subject: Re: long doGet()
You can't. Once you place a request to a servlet it begins
processing.
When you hit the stop button in your browser all it does is stop it from
listening for the response. The servlet has no idea that you have actually
stopped the browser. If you create an infinite loop or a thread that never
dies the only way to stop it is to kill the process manually or restart the
JVM.
Your loop that you're writing wont actually produce any output at
all. The
web browser doesn't display any data until you actually close the output
stream (or return from the post method which eventually does the same
thing). Since you never get out of your loop you'll never see any output at
all. You'll just get a blank screen on your browser. This causes a small
problem sometimes for novice servlet developers when they don't catch their
exceptions and try to figure out why their servlets sometimes return a blank
page.
Hope this helps,
Matt
-----Original Message-----
From: A mailing list for discussion about Sun Microsystem's JavaServlet
API
Technology. [mailto:[EMAIL PROTECTED]] On Behalf Of S G
Sent: Sunday, June 17, 2001 12:50 AM
To: [EMAIL PROTECTED]
Subject: long doGet()
how would i get out of the infinite while loop just by hitting
the stop button in my browser in the following code ?
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoopTest extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
ResourceBundle rb =
ResourceBundle.getBundle("LocalStrings",request.getLocale());
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
String title = rb.getString("helloworld.title");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<body>");
// note that all links are created to be relative. this
// ensures that we can move the web application that this
// servlet belongs to to a different place in the url
// tree and not have any harmful side effects.
// XXX
// making these absolute till we work out the
// addition of a PathInfo issue
out.println("<a href=\"/examples/servlets/helloworld.html\">");
out.println("<img src=\"/examples/images/code.gif\" height=24 " +
"width=24 align=right border=0 alt=\"view code\"></a>");
out.println("<a href=\"/examples/servlets/index.html\">");
out.println("<img src=\"/examples/images/return.gif\" height=24 " +
"width=24 align=right border=0 alt=\"return\"></a>");
out.println("<h1>" + title + "</h1>");
out.println("</body>");
out.println("</html>");
//out.flush();
//out.close();
boolean loopForEver = true;
int i = 0;
try
{
while(loopForEver)
{
System.out.println("\t i:" + i);
i++;
out.println (""+i);
}
}
catch(Exception ex)
{
ex.printStackTrace() ;
}
}
}
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html