Los hilos (threads) en una JSP
Cuando se solicita una página JSP por primera vez, el motor JSP genera un servlet correspondiente a la página (se le llama instancia de la JSP). La instancia de la JSP se guarda en la memoria del servidor. Si la JSP contiene código Java, también se inicia lo que se llama un hilo (thread). Posteriormente, cada que hay otra petición de la página, se utiliza la instancia de la JSP y además, se crea otro hilo por cada nueva petición de la página, como se ilustra en la Figura IV-1.

Las variables globales se guardan en la instancia de la JSP, y se declaran dentro del tag <%! %>. Las variables locales se crean para cada thread, y se declaran dentro de un scriptlet. Por ejemplo, en el siguiente código se declara una variable global que lleva la cuenta de las peticiones que se han hecho sobre la página.
Para comprender el código del ejemplo, recordemos que:


En la Figura IV-2 se observa que esta página se solicitó tres veces. Esta técnica puede fallar cuando dos computadoras solicitan la página JSP exactamente al mismo tiempo. Se le dice en inglés no thread-safe cuando se manejan la variable globales de esta forma. En este caso, no sería grave que se perdiera la cuenta. Para los casos en que es indispensable que no se pierda la cuenta, existen métodos más sofisticados para manejar variables globales de forma más segura (thread-safe).
