Applets zijn niet de enige manier webontwikkelaars kunnen Java- code te gebruiken om websites te maken . Servlets fungeren als afzonderlijke objecten op een JavaServer Pages ( JSP ) website . Echter , servlets ondervinden dezelfde problemen als andere Java-programma's bij gelijktijdige taken passen dezelfde variabele in de juiste volgorde . Dit komt omdat de software model van servlets , maar er zijn manieren om meerdere processen te beheren binnen de servlet om deze problemen te voorkomen . Servlet Object Model Servlets functioneren als klassen die webpagina instantiëren als objecten . Als een web ontwikkelaar noemt een servlet object in een kader , de servlet -code gaat naar de Java- compiler , dan is het gecompileerde class bestand gaat naar de server 's Java Runtime Environment (JRE ) . Wanneer de pagina wordt geladen voor de kijker , zal de JRE die gecompileerde object bestand uit te voeren binnen die specifieke HTML- frame. Echter , het kader waarbinnen servlets opereren is niet geavanceerd genoeg om meerdere bijvoorbeeld objecten te behandelen . Servlet concurrency Webontwikkelaars kunnen hetzelfde object insluiten in verschillende frames op de dezelfde pagina . Code van het object zullen onafhankelijk in elk van deze frames voeren . Het zal echter de code van dezelfde instantie zijn. In tegenstelling tot verschillende instanties van dezelfde klasse die alle onafhankelijke sets variabele waarden , zal elk van deze frames zijn het uitvoeren van de dezelfde set van variabele waarden . Hierdoor ontstaat het probleem van de gelijktijdigheid tussen servlet objecten. Servlet Multitasking Servers handvat multitasking in Java servlets door het creëren van meerdere threads binnen een enkel proces , niet door het creëren van meerdere processen . Dit kan worden multi - tasking kader van de servlet eigenlijke taak , of door de webontwikkelaar insluiten hetzelfde object in meerdere pagina frames . De JRE zal elk frame als een aparte thread te behandelen . Deze meerdere threads van meerdere frames kunnen overlappen en corrupte variabelen bij het schroefdraad passen dezelfde variabele tegelijk . Concurrency Veiligheid Er zijn twee standaard manieren voor het beheer concurrency met Java servlets . De eerste is standaard methode om data corruptie Java's : lock objecten. Deze laten een thread te letterlijk uit te sluiten andere threads toegang tot een variabele totdat het wordt gedaan met de variabele . De andere manier is om altijd expliciet referentievariabelen en waarden in plaats van verwijzen naar 'zelf', een term voor het object zelf . Het object exacte toestand zal verschillen tussen de frames , zodat code die verwijst naar specifieke waarden niet zullen tegenkomen dezelfde concurrency fouten als code die verwijst naar de staat van een object .
|