Você está na página 1de 32

Lio 2

Classes Servlets
Programao WEB 1

Objetivos
Ao final desta lio, o estudante ser capaz de:

Obter uma viso geral da arquitetura Servlet Conhecer o ciclo de vida de uma Servlet Manipular requisi es e respostas Configurar, empacotar e distribuir uma aplicao !"# Conhecer os par$metros de aplica es !"#

Programao WEB

Servlet

%ara programar:

%rogramao &ava Conceitos Cliente'(ervidor )*M+ e )**% importar as classes padro de e,tenso do pacote -ava,.servlet e -ava,.servlet.http. -ava,.servlet -ava,.servlet.http

%ara criar:

Programao WEB

Viso geral da arquitetura Servlet


Common /ate0a1 2nterface 3C/24 (ervlets so pro-etadas para fornecer aos desenvolvedores uma soluo &ava para criar aplica es !"# ",iste somente um processo que gerencia as requisi es (ervlets so carregadas na mem5ria somente uma vez

Programao WEB

Primeira vista sobre Servlet


%assaremos agora para o 6et#eans

Programao WEB

Ciclo de vida da Servlet


Controlado pelo container em que a Servlet foi implementado %ermite que o cont7iner resolva os problemas

Programao WEB

Ciclo de vida da Servlet: Instanciao

A classe da servlet 8 carregada na mem5ria, e uma instancia 8 criada pelo cont7iner %elo padro, um cont7iner realiza o que 8 chamado lazy loading Servlet atravessa essa fase somente uma vez na vida Chamado o m8todo construtor sem argumento

Programao WEB

Ciclo de vida da Servlet: Inicializao


Servlet 8 preparada para uso na aplicao Servlet atravessa tamb8m este estgio somente uma vez Ap5s esta fase a inst$ncia da classe comea a ser chamada de Servlet Chamado o m8todo init ! public void init(ServletConfig config)

Programao WEB

Ciclo de vida da Servlet: Pronta


A fase em que uma servlet se encontra ao longo de sua vida A servlet pode repetidamente ser chamada pelo container para fornecer sua funcionalidade Chamado o m8todo service ! public void service(ServletRequest req, ServletResponse res)

Programao WEB

Ciclo de vida da Servlet: "estruio


9uando uma servlet deve ser removida de um cont7iner :esenvolvedores no podem interferir Chamado o m8todo destro# !

Programao WEB

10

Ciclo de vida da Servlet: $arbage Collection

;ase no ciclo de vida da Servlet equivalente a qualquer outro ob-eto &ava Ocorre imediatamente antes que uma instancia do ob-eto se-a removido da mem5ria :esenvolvedores no t7m nenhum controle direto Chamado o m8todo %inalize !

Programao WEB

11

$erenciando &equisi'es e &es(ostas


A servlet disp e de um ob-eto ServletRequest (ervlet possuem uma subclasse chamada )**%(ervlet<equest ;ornece m8todos adicionais para recuperar informa es espec=ficas para )**% 2nformao de cookie, os detalhes de cabealho

Programao WEB

12

$erenciando &equisi'es e &es(ostas


:ados de ;ormulrio e Argumentos <ecuperando 2nforma es da ><+ da <equisio 2nforma es de Cabealho /erao da sa=da

Programao WEB

13

"ados de )ormul*rio e +rgumentos


request.get%arameter request.get%arameter?alues request.get%arameter6ames

Programao WEB

14

request,getParameter

%assaremos agora para o 6et#eans

Programao WEB

15

request,getParameter

%ara este e outros cenrios similares, &ava fornece o m8todo get%arameter no ob-eto )ttp(ervlet<equest public String getParameter(String parameterName)

Agora, vamos criar o c5digo que recebe o nome do usurio, devolve um cumprimento simples e o )*M+ usado para visualizar o formulrio

Programao WEB

16

request,getParameterValues

%assaremos agora para o 6et#eans

Programao WEB

17

request,getParameter-ames

%assaremos agora para o 6et#eans

Programao WEB

18

&ecu(erando in%orma'es de uma requisio .&L


http:// host!: port!/ requestPath!" quer#String!

)ost @ request.get(erver6ame34 %ort @ request.get(erver%ort34 <equest %ath @ em &ava 8 dividido em A componentes l5gicos: Conte,t @ O conte,to da aplicao 0eb. %ode ser recuperado invocando o m8todo request.getConte,t%ath34 %ath info @ tO restante da requisio, ap5s o nome do conte,to %ode ser recuperada invocando o m8todo request.get%ath2nfo34 9uer1 (tring @ request.get9uer1(tring34

Programao WEB

19

&ecu(erando in%orma'es de uma requisio .&L

%ara a seguinte ><+: http:''000.m1-edi.net:BCBC')elloApp'greet>serDnameE&edi

*emos o resultado de cada invocao dos m8todos citados:


request.getServerName() request.getServerPort() request.getContextPath() request.getPath#n$o() request.get&ueryString() www.myjedi.net 8080 He o!"" greet%ser name=Jedi

Programao WEB

20

In%orma'es de Cabeal/o

%ode ser recuperado a partir do servlet, chamando os seguintes m8todos do )ttp(ervlet<equest:


get)eader3(tring name4 get)eaders3(tring name4 get)eader6ames34 get2nt)eader3(tring name4 get:ate)eader3(tring name4

Programao WEB

21

$erao de Sa0das

%assaremos agora para o 6et#eans

Programao WEB

22

Con%igurao de uma +(licao 1eb

O servlet define um arquivo FM+ chamado de 0eb.,ml que age como um arquivo de configurao para as aplica es 0eb "ste arquivo 8 tamb8m chamado de descriptor de deplo1 (er utlizado o primeiro e,emplo ;irst(ervlet como um ponto de partida para melhor entender a estrutura do 0eb.,ml

Programao WEB

23

Con%igurao de uma +(licao 1eb

%assaremos agora para o 6et#eans

Programao WEB

24

2eb,3ml

G0ebHappI GservletI GservletHmappingI GsessionHconfigI G0elcomeHfileHlistI

Programao WEB

25

4m(acotando uma +(licao 145

A Aplicao pode ser posta no container 0eb por meio de um Jnico arquivo chamado !A< Arquivos !A< so os mesmos de arquivos &A<s: eles simplesmente contem c5digos -ava comprimidos utilizando um formato K2% 2nformalmente, !A< significa Arquivo !eb

Programao WEB

26

$erando arquivos 1+&

%assaremos agora para o 6et#eans

Programao WEB

27

Par6metros do Servlet e +(licao

2nicializao dos par$metros do (ervletConfig e do (ervlet %ar$metros da Aplicao e do (ervletConte,t

Programao WEB

28

ServletCon%ig e Servlet
(ervletConfig

%assado para um servlet especifico durante sua fase de inicializao. ;azendo uso disto, o servlet pode: <ecuperar informa es especificas para ele mesmo, tais como par$metros de inicializao /anhar acesso a uma instancia do ob-eto de ServletContext

%ar$metros de inicializao so 5timos para:

9uando se lida com informa es que pode variar com cada deploy realizado na aplicao %ermite que comportamentos do servlet se-am modificados sem que se-a necessrio a recompilao do c5digo
Programao WEB 29

ServletCon%ig e Servlet

%assaremos agora para o 6et#eans

Programao WEB

30

Sum*rio

(ervlets Ciclo de ?ida da (ervlet /erenciando <equisi es e <espostas :ados de ;ormulrio e Argumentos request.get%arameter, request.get%arameter?alues, request.get%arameter6ames <ecuperando informa es de uma requisio ><+ Configurao de uma Aplicao !"# "mpacotando uma aplicao %ar$metros do (ervlet e Aplicao

Programao WEB

31

Parceiros

Os seguintes (arceiros tornaram 74"I L0ngua Portuguesa:

TM

(oss0vel em

Programao WEB

32

Você também pode gostar