Applets sind nicht die einzige Möglichkeit, Web-Entwickler können Java-Code , Webseiten zu erstellen . Servlets funktionieren als einzelne Objekte auf einer JavaServer Pages (JSP) -Website . Allerdings stoßen Servlets die gleichen Probleme wie andere Java-Programme , wenn gleichzeitig Aufgaben ändern die gleiche Variable in der richtigen Reihenfolge . Dies ist wegen der Software-Modell von Servlets , aber es gibt Möglichkeiten, um mehrere Prozesse innerhalb des Servlet verwalten , um diese Probleme zu vermeiden. Servlet Object Model
Servlets funktionieren als Klassen, die Webseiten als Objekte instanziieren. Wenn ein Web-Entwickler ein Servlet -Objekt innerhalb eines Rahmens ruft , die Servlet-Code zum Java-Compiler geht , dann ist die kompilierten Klasse geht an die Server- Java-Laufzeitumgebung (JRE). Wenn die Seite für den Betrachter Lasten wird dadurch die JRE , dass kompilierte Objekt Datei innerhalb dieser spezifischen HTML-Frame auszuführen. Allerdings ist der Rahmen, in dem Servlets arbeiten nicht ausgereift genug, um mehrere Instanzen Objekte zu behandeln.
Servlet Concurrency
Web-Entwickler können das gleiche Objekt in unterschiedlichen Frames einbetten auf das gleichen Seite. Das Objekt hat eine Code wird unabhängig voneinander ausgeführt werden in jedem dieser Frames. Jedoch wird der Code von der gleichen Instanz. Im Gegensatz zu anderen Instanzen derselben Klasse , die alle unabhängige Sätze von Variablenwerten , wird jedem dieser Frames Ausführung aus dem gleichen Satz von variablen Werten . Dadurch entsteht das Problem der Parallelität zwischen Servlet-Objekte .
Servlet Multitasking
Servers Griff in Java Servlets Multitasking , indem mehrere Threads in einem einzigen Prozess , nicht durch Erstellen mehrerer Prozesse . Dies kann Multitasking als Teil des Servlets eigentliche Aufgabe , oder aufgrund der Web-Entwickler die Einbettung des gleichen Objekts in mehrere Kacheln . Die JRE wird behandeln jeden Rahmen als einem separaten Thread . Diese mehreren Threads aus mehreren Aufnahmen können sich überschneiden und korrupte Variablen ändern , wenn Threads die gleiche Variable in der gleichen Zeit .
Concurrency Sicherheit
Es gibt zwei Standard- Methoden zur Verwaltung der Parallelität mit Java-Servlets . Die erste ist die Java Standard- Verfahren zur Verhinderung von Datenverlust : Sperrobjekten . Diese ermöglichen ein Thread buchstäblich aussperren andere Threads Zugriff auf eine Variable , bis sie mit der Variable erfolgt. Der andere Weg ist, immer explizit Bezugsgrößen und Werte statt auf " Selbst", einer Bezeichnung für das Objekt selbst . Das Objekt hat eine genaue Zustand wird zwischen den Rahmen , so unterschiedlich Code, der auf bestimmte Werte nicht begegnen die gleichen Fehler wie Parallelität Code, der auf den Zustand eines Objekts .