Escolar Documentos
Profissional Documentos
Cultura Documentos
Container Web
Web Application
Web Application
C'( ) Common 'ate*a+ (nterface A&(,s - .er let A&( , Apac/e A&( 000 .cripts - A.&, 1.&, Cold 2usion, &%&
4odam do lado do ser idor, portanto n5o dependem de suporte dos na egadores
6s na egadores fornecem apenas a interface com o usu$rio 4ecebem dados ia requisi"#es %TT& 7 '!T e &6.T8 9e ol em atra :s de respostas %TT&
.er lets
!<tens5o de ser idor escrita em 1a a &odem ser usadas para estender qualquer tipo de aplica"5o do modelo requisi"5o=resposta Toda .er let implementa >a a<0ser let0.er let !<tens#es para ser idores W!? !stendem >a a<0ser let0/ttp0%ttp.er let @idam com caracterAsticas do %TT& como '!T, &6.T , CooBies , etc0
;
6 Ciclo de ida de uma .er let : controlado pelo container Duando o ser idor recebe uma requisi"5o, ela : repassada para o container que delega a uma .er let 6 container fica respons$ el por
Carregar a classe em memEria Criar uma instFncia da classe (nicialiGar a instFncia c/amando o m:todo init78
9epois que a ser let foi inicialiGada, cada requisi"5o : e<ecutada em um m:todo ser ice78
6 Container cria um .er let4equest, que representa um ob>eto de requisi"5o e um .er let4esponse, que representa um ob>eto de resposta, depois c/ama o ser ice78 passando=os como parFmetros
Duando o container decidir remo er a ser let da memEria ele a finaliGa c/amando o m:todo destro+78
1H
11
(nterfaces
Classes Abstratas
Classes Concretas
&ara escre er uma .er let %TT&, de e=se estender %TT&.er let e implementar um ou mais m:todos de ser i"o , normalmente o do&ost78 eIou do'et78
13
A Classe %TT&.er let redireciona os pedidos encamin/ados para ser ice78 para os m:todos que refletem os m:todos %TT& 7'!T , &6.T ,etc 0008
public oid do'et7%ttp.er let4equest,%ttp.er let4esponse8 public oid do&ost7%ttp.er let4equest,%ttp.er let4esponse8 6utros como do9elete78,doTrace78,do&ut78,do6ptions78 7 o m:todo %!A9 : implementado pelo do'et 8
14
Kma .er let %TT& de er$ estender %TT&.er let e implementar pelo menos um dos m:todos do'et78 ou do&ost78
15
(nicialiGa"5o
A inicialiGa"5o de uma %TT&.er let pode 7 e de e 8 ser feita atra :s do m:todo init78
16
!numeration get%eaderLames78 ) obt:m nomes dos cabe"al/os .tring get%eader7MnomeN8 ) obt:m o alor do cabe"al/o .tring get&arameter7MnomeN8 ) obt:m o alor do parFmetro %TT& .tringOP get&arameterQalues7MnomeN8 ) obt:m os alores do parFmetro %TT& !numeration get&arameterLames78 ) obt:m os nomes dos parFmetros
13
%ttp.ession get.ession78 ) retorna a sess5o setAttribute7MnomeN,ob>8 ) define um atributo ob> c/amado nome 6b>ect getAttribute7MnomeN8 ) recupera o atributo nome
1;
add%eader7.tring nome, .tring alor8 ) adiciona cabe"al/o %TT& setContentT+pe7tipo J(J!8 ) define o tipo J(J! para gerar a saAda 7te<tI/tml , imageIgif , etc 0008 send4edirect7.tring url8 ) redireciona o cliente para a url Writer getWriter78 ) obt:m um Writer para gerar a saAda 7 ideal para saAdas de te<to8 6utput.tream get6utput.tream78 ) obt:m um 6utput.tream, ideal para gerar saAdas n5o te<to 7imagens , etc 0008 reset78 ) limpa toda a saAda reset?uffer78 ) limpa toda a saAda, e<ceto os cabe"al/os
1C
@inBs clicados ou K4@ digitadas no na egador Alguns formul$rios que usam '!T
Kse do&ost78 para receber dados de formul$rios &6.T .e quiser usar ambos, n5o sobrepon/a o ser ice78, e sim implemente os 2 m:todos
2H
&arFmetros de requisi"5o
&arFmetros s5o pares nomeI alor que s5o en iados pelo cliente concatenados em .trings e separados por R
nomeS>oaoRsobrenomeSpauloRidS32
.e o m:todo for '!T, os parFmetros s5o passados em uma Tnica lin/a no quer+ .tring, que estende a K4@ apEs um M?N
Iser letITeste?nomeS>oaoRsobrenomeSpauloRidS32
.e o m:todo for &6.T, os parFmetros s5o passados como uma stream no corpo da mensagem
21
.e>a o m:todo &6.T ou '!T, os alores dos parFmetros podem ser recuperados pelo m:todo get&arameter78
&arFmetros de mesmo nome podem ser repetidos, nesse caso o get&arameter78 retornar$ a primeira ocorrVncia, para obter todas use
22
&ara gerar uma resposta, primeiro de e=se obter um flu<o de saAda de caracteres 7Writer8 ou de ?+tes 7 6utput.tream8
9e e=se definir o tipo de dados a ser gerado, isto : importante para que o na egador saiba e<ibir as informa"#es
response0setContentT+pe7Mte<tI/tmlN8U out0println7MW/1X6l$WI/1XN8U
23
.5o necess$rias quatro etapas para construir e usar uma ser let
24
Compila"5o e implanta"5o
6 ser let0>ar distribuAdo pelo Tomcat em commonIlib 6 >2ee0>ar distribuAdo no pacote 12!! da .un 6 >a a<0ser let0>ar do 1?oss em ser erIdefaultIlib X >a ac )classpat/ 00Iser let0>arU0 Jeu.er let0>a a
&ara implantar, copie as classes compiladas para um conte<to e<istente no ser idor
!<ecu"5o
/ttp-IIlocal/ost-;H;HIconte<toInome0do0ser let
/ttp-IIlocal/ost-;H;HIconte<toInome0do0ser let?idS32
26
!<ercAcios
Crie uma ser let 7treinamento0e<ercicios0@ista8 , que imprima em uma tabela todos os nomes de parFmetros en iados e seus alores
23