Professional Documents
Culture Documents
umainterfacequepermite:
Notificarquandoocontextoinicializado(a
aplicaoestsendodistribuda);
Conseguirosparmetrosdeinicializaodo
contextodaaplicaoatravsdoServletContext;
Usaronomedelookup doparmetrode
inicializaoparafazerumaconexocomobanco dedados;
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
ServletContextListener
umainterfacequepermite(continuao):
Armazenaraconexocomobancodedadoscomo
umatributo,paraquetodasaspartesdaaplicao possamacessla.
Notificarquandoocontextodaaplicao
destrudo(aaplicaoretiradadoaroucai);
Encerraraconexocomobancodedados.
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
ServletContextListener
Import javax.servlet.*; Public class MyServletContextListener implements ServletContextListener { public void contextInitialized (ServletContextEvent event){ //cdigoparainicializaraconexocomobancodedados //earmazenlacomoumatributodecontexto } public void contextDestroyed (ServletContextEvent event){ //cdigoparaencerraraconexocomobancodedados } }
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
ServletContextListener
Executarumexemplode Listener:
Atarefadolistener conseguiroparmetrode
ServletContext,deformaqueoservletpossa recuperlo.
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
ServletContextListener
aplicaocompartilhado(objetoCaneta),sem precisarlerosparmetrosdocontexto.
Seoobjetocompartilhadoumacanetaouuma
1. O container l o DD para esta aplicao Container <weapp> ... web.xml 3. O container cria um par de strings nome/valor para cada parmetro init do contexto
marca
2. O Container cria um novo ServletContext, que todas as partes da aplicao iro compartilhar. Container
Container
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
Container
Instncia de MyServletContextListener
6. O container chama o mtodo contextInialized() do listener, passando um novo ServletContextEvent. O objeto de evento tem uma referencia para o servletContext, ento o cdigo que trata o evento consegue obter o contexto atravs do evento e consegue obter o parmetro init do contexto.
marca
String
ServletContext Event
BIC
ServletContext
String
Listener
ServletContext Event
Container
contextInialized(ServletContextEvent)
Listener
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
String
Listener
ServletContext
BIC
Listener
String
Instncia de caneta.class
Listener
ServletContext
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
11. O container cria um novo servlet (cria um novo servletConfig com parmetros init, d ao servletConfig uma referncia para ServletContext e chama o mtodo init do Servlet)
marca
String
ServletConfig
BIC
ServletContext
String
Container
init(ServletConfig)
Instncia de Listenertester
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
Oque,defato,umatributo?
Umatributoumobjetoconfiguradoemum dosoutrostrsobjetosdaAPIservlet:
ServletContext HttpServletRequest (ouServletRequest) HttpSession
Umatributocomoumobjetopresoemum quadrodeavisos:
Algumoafixounoquadroparaqueoutros
possampeglo.
Qualoescopodeumatributo?Isto,quemtem
acessoaoatributoeporquantotempoelese mantmativo?
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
AtributosxParmetros
Tipos:
Atributos:Application/context,Request eSession; Parmetros:deinicializaodocontexto,da
solicitaoedoservlet.
Mtodoparaconfigurao:
Atributo:setAttribute(nome,objeto); Parmetros:deinicializaodocontextoedo
servletsoconfiguradosnoDD.
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
AtributosxParmetros
Tipoderetorno:
Atributo:Objeto; Parmetro:String.
Mtodoparaobteno:
Atributo:getAttribute(nome daString) Parmetro:getInitParameter(nome daString)
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
OsTrsEscopos:Contexto,SolicitaoeSesso
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
OsTrsEscopos:Contexto,SolicitaoeSesso
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
AAPIAtributo
Pg 123
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
Oescopodocontextonothreadsafe
Pg 125
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
Oescopodocontextonothreadsafe
Soluo:
Sincronizaroobjetocontexto
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br
RefernciasBibliogrficas
UFSC/CTC/INE5646 ProgramaoWebPatriciaDMPlentzplentz@inf.ufsc.br