... 4XHVWLRQV 4 )SNTTHISOVERKILL)STHISREALLYAPOSSIBILITYTHATACLIENTWILLOPENANOTHERBROWSERWINDOW$/FCOURSEITIS3URELYYOUVEDONETHISYOURSELFWITHOUTASECONDTHOUGHTOPENEDASECONDWINDOWBECAUSEYOUWERETIREDOFWAITINGFORTHEOTHERONETORESPONDORBECAUSEYOUMINIMIZEDONEORMISPLACEDTHEWINDOWWITHOUTREALIZINGITETC4HEPOINTISYOUCANTTAKETHECHANCEIFYOUNEEDTHREADSAFETYFORYOURSESSIONVARIABLES9OUHAVETOKNOWTHATITSQUITEPOSSIBLEFORASESSIONSCOPEDATTRIBUTETOBEUSEDBYMORETHANONETHREADATATIME 4 )SNTITABADIDEATOSYNCHRONIZECODEBECAUSEITCAUSESALOTOFOVERHEAD AND HURTSCONCURRENCY$9OUSHOULD!,7!93THINKCAREFULLYBEFORESYNCHRONIZINGANYCODEBECAUSEYOURERIGHTITDOESADDSOMEEXPENSEINCHECKINGACQUIRING AND RELEASINGLOCKS)FYOUNEEDPROTECTIONTHENUSESYNCHRONIZATIONBUTREMEMBERTHESTANDARDRULEOFALLFORMSOFLOCKINGKEEPTHELOCKFORTHESHORTESTAMOUNTOFTIMETOACCOMPLISHYOURGOAL)NOTHERWORDSDONTSYNCHRONIZETHECODETHATDOESNTACCESSTHEPROTECTEDSTATE-AKEYOURSYNCHRONIZEDBLOCKASSMALLASPOSSIBLE'ETTHELOCKGETINGETWHATYOUNEED AND GETTHEHECKOUTSOTHELOCKCANRELEASE AND OTHERTHREADSCANRUNTHATCODEV\QFKURQL]HRQWKHVHVVLRQChapter 5. Being a Web AppChapter 5. Being a Web App Head First Servlets and JSP ... automatically.)They use the word ÒboundÓ and ÒunboundÓ to mean Òadded toÓ and Òremoved fromÓ.Chapter 5. Being a Web AppChapter 5. Being a Web App Head First Servlets and JSP By Bert Bates, Kathy Sierra, ... prohibited.FKDSWHU 4 7HATSWITHTHEINCONSISTENTNAMINGSCHEME(OWCOMETHE$$ELEMENTSARECONTEXTPARAM AND INITPARAMBUTINTHESERVLETCODE" /4( USETHEGET)NIT0ARAMETERMETHOD$4HEYDIDNTASKUSTOHELPTHEMCOMEUPWITHTHENAMES)FTHEYHADOFCOURSEWEDHAVESAIDITSHOULDBEGET)NIT0ARAMETER AND GET#ONTEXT0ARAMETERTOMATCHTHE8-,ELEMENTSINTHE$$/RTHEYCOULDHAVEUSEDDIFFERENT8-,ELEMENTSPERHAPSSERVLETINITPARAM AND CONTEXTINITPARAM"UTNOTHATWOULDHAVESUCKEDALLTHEFUNOUTOFTRYINGTOKEEPTHEMSTRAIGHT 4 7HYWOULD)EVERUSEINITPARAMANYWAY7OULDNT)ALWAYSWANTTOUSECONTEXTPARAMSOTHATOTHERPARTSOFMYAPPCOULDREUSETHEVALUES AND )WONTHAVETODUPLICATE8-,CODEFOREVERYSERVLETDECLARATION$)TALLDEPENDSONWHICHPARTOFYOURAPPISSUPPOSEDTOSEETHEVALUE9OURAPPLICATIONLOGICMIGHTREQUIREYOUTOUSEAVALUETHATYOUWANTTORESTRICTTOONLYANINDIVIDUALSERVLET"UTTYPICALLYDEVELOPERSFINDAPPWIDECONTEXTINITPARAMETERSALOTMOREHELPFULTHANSERVLETSPECIFICSERVLETINITPARAMETERS0ERHAPSTHEMOSTCOMMONUSEOFACONTEXTPARAMETERISSTORINGDATABASELOOKUPNAMES9OUDWANTALLPARTSOFYOURAPPTOHAVEACCESSTOTHECORRECTNAME AND WHENITCHANGESYOUWANTTOCHANGEITINONLYONEPLACE 4 7HATHAPPENSIF)GIVEACONTEXTINITPARAMETERTHESAMENAMEASASERVLETINITPARAMETERINTHESAMEWEBAPP$4HEMOLECULARSIZEDBLACKHOLEMIRACULOUSLYCREATEDINARESEARCHFACILITYIN.EW*ERSEYWILLSLIPFROMITSCONTAINMENTlELDPLUMMETTOTHEEARTHSCORE AND DESTROYTHEPLANET/RMAYBENOTHINGBECAUSETHERESNONAMESPACECONmICTSINCEYOUGETTHEPARAMETERSTHROUGHTWODIFFERENTOBJECTS3ERVLET#ONTEXTOR3ERVLET#ONlG 4 )FYOUMODIFYTHE8-,TOCHANGETHEVALUEOFANINITPARAMETEREITHERSERVLETORCONTEXTWHENDOESTHESERVLETORTHERESTOFTHEWEBAPPSEETHECHANGE$/.,9WHENTHEWEBAPPISREDEPLOYED2EMEMBERWETALKEDABOUTTHISBEFORETHESERVLETISINITIALIZEDONLYONCEATTHEBEGINNINGOFITSLIFE AND THATSWHENITSGIVENITS3ERVLET#ONFIG AND 3ERVLET#ONTEXT4HE#ONTAINERREADSTHEVALUESFROMTHE$$WHENITCREATESTHOSETWOOBJECTS AND SETSTHEVALUES 4 #ANT)GETAROUNDTHISBYSETTINGTHEVALUESATRUNTIME3URELYTHERESAN!0)THATLLLETMECHANGETHOSEVALUESDYNAMICALLY$.OTHERESNOT,OOKIN3ERVLET#ONTEXTOR3ERVLET#ONFIG AND YOULLFINDAGETTERGET)NIT0ARAMETERBUTYOUWONTFINDASETTER4HERESNOSET)NIT0ARAMETER 4 4HATSLAME$4HESEAREINITPARAMETERS)NITFROMTHE,ATINWORDINITIALIZATION)FYOUTHINKOFTHEMPURELYASDEPLOYTIMECONSTANTSYOULLHAVETHERIGHTPERSPECTIVE)NFACTTHATSSOIMPORTANTWEREGOINGTOSAYITAGAININABOLDERWAY7KLQNRILQLWSDUDPHWHUVDVGHSOR\WLPHFRQVWDQWV<RXFDQJHWWKHPDWUXQWLPHEXW\RXFDQ·WVHWWKHP7KHUH·VQRVHW,QLW3DUDPHWHUVHUYOHWDQGFRQWH[WLQLWSDUDPHWHUVWKHUH DUH QR'XPE 4XHVWLRQVChapter 5. Being a Web AppChapter 5. Being a Web App Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 059600 540 7 Publisher: O'Reilly...