Le applet non sono l'unico modo in cui gli sviluppatori web possono utilizzare il codice Java per creare siti web . Servlet funzionano come singoli oggetti su un Pages ( JSP ) sito JavaServer . Tuttavia, servlet incontrano gli stessi problemi come altri programmi Java quando attività simultanee modificano la stessa variabile fuori sequenza . Questo perché il modello software di servlet , ma ci sono modi per gestire più processi all'interno della servlet per evitare questi problemi . Servlet modello a oggetti
servlet funzionano come le classi che le pagine web creare un'istanza come oggetti . Quando uno sviluppatore web chiama un oggetto servlet all'interno di una cornice , il codice del servlet va al compilatore Java , quindi il file di classe compilato va in ambiente runtime Java del server ( JRE ) . Al caricamento della pagina per lo spettatore , il JRE eseguirà tale file oggetto compilato in quel lasso di HTML specifico . Tuttavia, il quadro in cui operano le servlet non è abbastanza sofisticato per gestire più oggetti istanza .
Servlet di concorrenza
sviluppatori Web
possono incorporare lo stesso oggetto in differenti cornici sul stessa pagina . Codice dell'oggetto viene eseguito in modo indipendente in ciascuno di quei frames . Tuttavia , sarà il codice dalla stessa istanza . Diversamente diverse istanze della stessa classe che hanno tutti insiemi di valori di variabili indipendenti , ciascuna di quelle cornici sarà spento eseguendo lo stesso insieme di valori di variabili . Questo crea il problema della concorrenza tra gli oggetti servlet .
Servlet Multitasking
server
maniglia multitasking in servlet Java per la creazione di più thread all'interno di un unico processo , non da la creazione di più processi. Questo può essere multi -tasking come parte del compito attuale della servlet , o per lo sviluppatore web incorporare lo stesso oggetto in più frame di pagina . Il JRE tratterà ogni fotogramma come un thread separato . Questi thread multipli da più fotogrammi possono sovrapporsi e variabili corrotti quando le discussioni modificano la stessa variabile allo stesso tempo .
Concorrenza Sicurezza
Ci sono due modi standard di gestione della concorrenza con servlet Java . Il primo metodo standard di prevenire la corruzione dei dati del Java : oggetti di blocco . Questi permettono un filo per bloccare letteralmente fuori altri thread di accedere a una variabile fino a quando non viene fatto con la variabile . L'altro modo è quello di sempre esplicitamente variabili di riferimento e di valori invece di fare riferimento "sé ", un termine per l'oggetto stesso . Esatto stato dell'oggetto varia tra i fotogrammi , quindi il codice che fa riferimento a valori specifici non si incontrano gli stessi errori di concorrenza come codice che fa riferimento lo stato di un oggetto .