Applets no son los únicos desarrolladores web forma pueden usar el código de Java para crear sitios web. Servlets funcionan como objetos individuales en un sitio de JavaServer Pages ( JSP) . Sin embargo , los servlets se encuentran con los mismos problemas que el resto de los programas de Java cuando las tareas concurrentes modificar la misma variable fuera de secuencia. Esto se debe al modelo de software de servlets , pero hay maneras de manejar múltiples procesos dentro del servlet para prevenir estos problemas. Objeto servlet Modelo
Servlets funcionan como clases que las páginas web crean instancias como objetos. Cuando un desarrollador web llama a un objeto servlet dentro de un cuadro, el código de servlet pasa al compilador de Java, a continuación, el archivo de clase compilado va al entorno de ejecución de Java del servidor ( JRE ) . Cuando la página se carga para el espectador, el JRE se ejecutará ese archivo objeto compilado dentro de ese marco HTML específico. Sin embargo, el marco en el que operan los servlets no es lo suficientemente sofisticado para manejar múltiples objetos de instancia .
Servlet concurrencia
desarrolladores web
puede insertar el mismo objeto en diferentes marcos de la misma página. El código del objeto se ejecutará de forma independiente en cada uno de esos marcos . Sin embargo , será el código de la misma instancia . A diferencia de las diferentes instancias de la misma clase que tienen todos los conjuntos independientes de valores de variables , cada una de las tramas será ejecutar fuera el mismo conjunto de valores de las variables . Esto crea el problema de la concurrencia entre los objetos de servlets .
Servlet multitarea
Servidores
mango multitarea en servlets Java mediante la creación de múltiples hilos dentro de un único proceso, no por la creación de múltiples procesos. Esto puede ser multi -tarea como parte de la tarea actual del servlet, o debido a los desarrolladores web la incorporación al mismo objeto en múltiples marcos de página . El JRE tratará cada fotograma como un subproceso independiente . Estas múltiples hilos de múltiples marcos se superponen y las variables corruptos cuando los subprocesos modifican la misma variable a la vez .
Concurrencia Seguridad
Hay dos formas estándar de gestión de la concurrencia con servlets Java. El primero es el método estándar de Java para prevenir la corrupción de datos : objetos de bloqueo . Éstos permiten que un subproceso se bloquee literalmente otros temas de acceso a una variable hasta que se realiza con la variable. La otra forma es siempre explícitamente las variables y valores de referencia en lugar de hacer referencia a "yo", un término para el objeto en sí . Estado exacto del objeto será diferente entre los cuadros , por lo que el código que hace referencia a los valores específicos que no se encontrarán con los mismos errores de concurrencia como el código que hace referencia el estado de un objeto.