In a multithreaded environment, most servlets must be written to handle multiple
concurrent requests. The exception is a servlet that implements the
SingleThreadModel interface. Such a servlet will execute only one request thread
at a time.
A servlet responds to a client request according to the servlet engine’s mapping. A
mapping pairs a servlet instance with an URL to which the servlet returns data, for
example, HelloServlet with /hello/index.html.
However, a mapping might pair an URL with more than one servlet instance. For
example, a distributed servlet engine running on more than one server might have a
servlet instance running on each server, to balance the processing load. As a servlet
developer, you cannot assume that a servlet has only one instance.