1. How is it possible to start multiple threads on a single servlet instance.
I mean: servletInstance.start()- Why it doesn't give IllegalThreadStateExcption?
The threads are not created inside the Servlet. For every request a seperate thread is created by the container. The request-threads will all access the single Servlet's instance service() method
This is what the Servlet 2.4 specs says:
SRV.2.1 Request Handling Methods The handling of concurrent requests to a Web application generally requires
that the Web Developer design servlets that can deal with multiple threads executing
within the service method at a particular time.
Generally the Web container handles concurrent requests to the same servlet
by concurrent execution of the service method on different threads.
Which class or interface in the hierarchy of javax.servlet.http.HttpServlet extends or implents Runnable interface. Where is run() method defined, who calls it and when?
There is no such class because of the previous explanation (and you can verify this from the API)