Desvendando Os Servlets 3
-
Upload
vinicius-jussra-silva -
Category
Documents
-
view
23 -
download
0
Transcript of Desvendando Os Servlets 3
-
1
DESVENDANDO OS SERVLETS 3.0
Aluno: Bruno do Couto Rosa [email protected]
-
Os Servlets 3.0
l Lanada em novembro de 2009 l Java EE 6 que dene a verso 3.0 dos Servlets l de fcil congurao l Aumenta a produKvidade do desenvolvedor l Ainda possvel usar a verso dos Servlets anKga
-
Servlets Antes l O desenvolvedor Knha que criar uma classe que estendia de
HPpServlet l Tinha que congurar a classe corretamente no arquivo web.xml
-
Servlets 3.0 l UKliza-se annotaKons, em vez da congurao no web.xml que
agora opcional l A annotaKon @WebServlet usada para congurar o Servlet l O atributo urlPaPerns indica o padro de URL que ser mapeado
-
Atributos do @WebServlet l Name dene o nome para o servlet l DescripKon dene uma descrio l AsyncSupported d suporte a servlets assncronos l InitParams parmetros do servlet que podem ser recuperados atravs
da chamada ao getServletCong().getInitParameter() l A denio de cada parmetro feita atravs da @WebInitParam
-
Uma aplicao simples
-
Arquivo index.jsp
-
Filters e Listeners l Como so bastantes semelhantes aos Servlets, tambm sofrem mudanas
com o lanamento do Java EE 6 l Antes o Filter era preciso implementar a interface javax.servlet.lter l E o Listener era denido no arquivo web.xml l Agora tanto os lters como os listeners so congurados atravs das
annotaKons @WebFilter e @WebListener l Para os Filters so usados os mesmos parmetros que os Servlets, da
mesma forma
-
Congurao Externa
l Era muito didcil a congurao do web.xml l Agora possvel ler servlets, lters ou listeners implementados em outro
arquivo, desde que esteja no pacote da aplicao l Podem ser feitas atravs das mesmas annotaKons ou de fragmentos do
arquivo web.xml l Fragmentos so arquivos web-fragment.xml
-
Congurao externa usando fragmentos
l Pedaos do arquivo web.xml l Podem ser carregadas de vrios arquivos l No usa annotaKons, mas sim um arquivo web-fragment.xml, como um
arquivo web.xml l Os fragmentos devem ser organizados e ordenados l A tag estabelece a ordem entre os fragmentos l O lter sem annotaKons caria assim:
-
Arquivo Web-fragment.xml
l Implementao do arquivo web-fragment.xml
-
Arquivo Web.xml
Implementao do arquivo web.xml Ordenao dos fragmentos
-
Arquivo Web-fragment.xml
l Ou ento indicando a sequncia dos fragmentos usando as tags ou
-
Servlets, Filters e Listeners Dinmicos
l Integrao entre aplicaes e frameworks, atravs de carregamento dinmico em tempo de execuo
l Para suportar o carregamento dinmico foram adicionados a interface ServletContext, os mtodos addServlet(), addFilter() e addListener()
l S so invocados dentro do mtodo contextIniKalized() ou no mtodo onStartup()
l Um exemplo de ServletContextListener para a aplicao
-
Servlets, Filters e Listeners Dinmicos
l O mtodo onStartup() da interface ServletContainerIniKalizer, exclusivo da verso 3.0 dos Servlets
l Implementar a classe IniKalizer somente com o mtodo onStartup()
-
l Depois congurar com um diretrio dentro da aplicao com chamado services
l Criar um arquivo que deve ter o nome de javax.servlet.
ServletContainerIni2alizer que ter o nome da classe no caso init.IniKalizer
l Ento pode ser aproveitados frameworks externos
Servlets, Filters e Listeners Dinmicos
-
A annotaOon @HandlesTypes
l usada em classes que implementam a inteface ServletConKnerIniKalizer
l Recebe como parmetro uma lista de classes e/ou interfaces l Se exisKr uma classe AppListener ela ser chamada, e ser passada
como parmetro para o mtodo
-
Mtodo addServlet() l Recebem parmetros para congurao do Servlet l Assumem a existncia do servlet AppServlet no pacote servlet l O retorno desses mtodos um objeto do Kpo
ServletRegistraKon.Dynamic
-
O objeto ServletRegistraOon.Dynamic
l Este objeto uKlizado para congurar outras informaes do servlet depois que ele foi registrado
l Parmetros iniciais, mapeamento
-
Mtodo addFilter() l Recebe parmetros para congurao do Filter l Assumem a existncia do lter AppFilter no pacote lter l O retorno desses mtodos um objeto do Kpo
FilterRegistraKon.Dynamic
-
Mtodo addListener() l Recebe parmetros para congurao do Listener l Assumem a existncia do listener AppListener no pacote listener l No retornam nenhum dado
-
Chamadas Assncronas a Servlets
l No era possvel na verso 2.5 l Permite que durante a espera por uma resposta, a thread que est
atendendo requisio seja liberada l Depois quando a resposta chegar, uma nova thread uKlizada para
dar conKnuidade ao processo
-
Chamadas Assncronas a Servlets l Atributo asyncSupported l Mtodo startAsync responsvel por disparar o processamento
assncrono e o retorno do Kpo AsyncContext l Quando o startAsync disparado os mtodos doGet() e doPost()
terminam de executar e no geram resposta a requisio l Para gerar a resposta necessrio que o mtodo complete() do
objeto AsyncContext seja chamado
-
Chamadas Assncronas a Servlets
l Quando um mudana ocorrer, o mtodo atualizar() que uKliza o objeto AsyncContext
l Escreve os dados na stream de sada e chama o mtodo complete()
para nalizar o processo
-
Concluso
O Servlet 3.0 foi criado para aumentar a produKvidade do desenvolvedor, pois de fcil congurao por
usar as annotaKons.
-
PERGUNTAS ???
26