Aluno: 8runo do CouLo 8osa brunodcouLo3[hoLmall.com Cs Serv|ets 3.0 ! Lanada em novembro de 2009
! !ava LL 6 que dene a verso 3.0 dos ServleLs
! L de fcll congurao
! AumenLa a produuvldade do desenvolvedor
! Alnda e posslvel usar a verso dos ServleLs anuga
Serv|ets Antes ! C desenvolvedor unha que crlar uma classe que esLendla de PupServleL ! 1lnha que congurar a classe correLamenLe no arqulvo web.xml
Serv|ets 3.0 ! uullza-se annoLauons, em vez da congurao no web.xml que agora e opclonal ! A annoLauon [WebServleL e usada para congurar o ServleL ! C aLrlbuLo urlauerns lndlca o padro de u8L que ser mapeado ! Atr|butos do QWebServ|et ! name - dene o nome para o servleL ! uescrlpuon - dene uma descrlo ! AsyncSupporLed - d suporLe a servleLs asslncronos ! lnlLarams - parmeLros do servleL que podem ser recuperados aLraves da chamada ao geLServleLCong().geLlnlLarameLer() ! A denlo de cada parmeLro e felLa aLraves da [WeblnlLaram Uma ap||cao s|mp|es Arqu|vo |ndex.[sp I||ters e L|steners ! Como so basLanLes semelhanLes aos ServleLs, Lambem sofrem mudanas com o lanamenLo do !ava LL 6
! AnLes o lllLer era preclso lmplemenLar a lnLerface [avax.servleL.lLer
! L o LlsLener era denldo no arqulvo web.xml
! Agora LanLo os lLers como os llsLeners so congurados aLraves das annoLauons [WeblllLer e [WebLlsLener
! ara os lllLers so usados os mesmos parmeLros que os ServleLs, da mesma forma Conhgurao Lxterna ! Lra mulLo dlncll a congurao do web.xml
! Agora e posslvel ler servleLs, lLers ou llsLeners lmplemenLados em ouLro arqulvo, desde que esLe[a no pacoLe da apllcao
! odem ser felLas aLraves das mesmas annoLauons ou de fragmenLos do arqulvo web.xml
! lragmenLos so arqulvos web-fragmenL.xml
Conhgurao externa usando fragmentos ! edaos do arqulvo web.xml ! odem ser carregadas de vrlos arqulvos ! no usa annoLauons, mas slm um arqulvo web-fragmenL.xml, como um arqulvo web.xml ! Cs fragmenLos devem ser organlzados e ordenados ! A Lag <absoluLe-orderlng> esLabelece a ordem enLre os fragmenLos
! C lLer sem annoLauons carla asslm: Arqu|vo Web-fragment.xm| ! lmplemenLao do arqulvo web-fragmenL.xml Arqu|vo Web.xm| ! lmplemenLao do arqulvo web.xml ! Crdenao dos fragmenLos Arqu|vo Web-fragment.xm| ! Cu enLo lndlcando a sequncla dos fragmenLos usando as Lags <aer> ou <before> Serv|ets, I||ters e L|steners D|nm|cos ! lnLegrao enLre apllcaes e frameworks, aLraves de carregamenLo dlnmlco - em Lempo de execuo ! ara suporLar o carregamenLo dlnmlco foram adlclonados a lnLerface ServleLConLexL, os meLodos addServleL(), addlllLer() e addLlsLener() ! S so lnvocados denLro do meLodo conLexLlnluallzed() ou no meLodo onSLarLup() ! um exemplo de ServleLConLexLLlsLener para a apllcao Serv|ets, I||ters e L|steners D|nm|cos ! C meLodo onSLarLup() da lnLerface ServleLConLalnerlnluallzer, e excluslvo da verso 3.0 dos ServleLs
! lmplemenLar a classe lnluallzer somenLe com o meLodo onSLarLup()
! uepols congurar com um dlreLrlo denLro da apllcao com chamado servlces
! Crlar um arqulvo que deve Ler o nome de !"#"$%&'(#)'*% ,'(#)'*-./*"0/'(1/02")03'( que Ler o nome da classe no caso lnlL.lnluallzer
! LnLo pode ser aprovelLados frameworks exLernos Serv|ets, I||ters e L|steners D|nm|cos A annotanon Qnand|es1ypes ! L usada em classes que lmplemenLam a lnLeface ServleLConunerlnluallzer
! 8ecebe como parmeLro uma llsLa de classes e/ou lnLerfaces
! Se exlsur uma classe AppLlsLener ela ser chamada, e ser passada como parmeLro para o meLodo Mtodo addServ|et() ! 8ecebem parmeLros para congurao do ServleL ! Assumem a exlsLncla do servleL AppServleL no pacoLe servleL ! C reLorno desses meLodos e um ob[eLo do upo ServleL8eglsLrauon.uynamlc C ob[eto Serv|etkeg|stranon.Dynam|c ! LsLe ob[eLo e uullzado para congurar ouLras lnformaes do servleL depols que ele fol reglsLrado ! armeLros lnlclals, mapeamenLo Mtodo addI||ter() ! 8ecebe parmeLros para congurao do lllLer ! Assumem a exlsLncla do lLer ApplllLer no pacoLe lLer ! C reLorno desses meLodos e um ob[eLo do upo lllLer8eglsLrauon.uynamlc Mtodo addL|stener() ! 8ecebe parmeLros para congurao do LlsLener ! Assumem a exlsLncla do llsLener AppLlsLener no pacoLe llsLener ! no reLornam nenhum dado Chamadas Ass|ncronas a Serv|ets ! no era posslvel na verso 2.3
! ermlLe que duranLe a espera por uma resposLa, a Lhread que esL aLendendo a requlslo se[a llberada
! uepols quando a resposLa chegar, uma nova Lhread e uullzada para dar conunuldade ao processo
Chamadas Ass|ncronas a Serv|ets ! ALrlbuLo asyncSupporLed ! MeLodo sLarLAsync - responsvel por dlsparar o processamenLo asslncrono e o reLorno e do upo AsyncConLexL ! Cuando o sLarLAsync e dlsparado os meLodos doCeL() e doosL() Lermlnam de execuLar e no geram resposLa a requlslo ! ara gerar a resposLa e necessrlo que o meLodo compleLe() do ob[eLo AsyncConLexL se[a chamado
Chamadas Ass|ncronas a Serv|ets ! Cuando um mudana ocorrer, o meLodo aLuallzar() que uullza o ob[eLo AsyncConLexL
! Lscreve os dados na sLream de salda e chama o meLodo compleLe() para nallzar o processo
Conc|uso C ServleL 3.0 fol crlado para aumenLar a produuvldade do desenvolvedor, pols e de fcll congurao por usar as annoLauons.