Você está na página 1de 27

Arquitetura Web

Container Web

Web Application

Web Application, como funciona ?

Web Application

Tecnologias do lado do ser idor

!stendem as fun"#es b$sicas do %TT&


C'( ) Common 'ate*a+ (nterface A&(,s - .er let A&( , Apac/e A&( 000 .cripts - A.&, 1.&, Cold 2usion, &%&

Tecnologias do lado do ser idor

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&

(nterceptam o curso normal da comunica"5o


.er lets

6 que s5o ser 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
;

%TT& .er lets


Ciclo de ida da .er let


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

Ciclo de ida da .er let

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

Ciclo de ida da ser let

11

A&(- .er lets %TT&

(nterfaces

%TT&.er let4equest %TT&.er let4esponse %ttp.ession %ttp.er let CooBie


12

Classes Abstratas

Classes Concretas

Como escre er um ser let %TT&

&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

J:todos de ser i"o %TT&

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

J:todos de ser i"o %TT&

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

6bten"5o de dados de requisi"#es

Alguns m:todos de %TT&.er let4equest


!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

6bten"5o de dados de requisi"#es

Alguns m:todos de %TT&.er let4equest


%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;

&reenc/imento de uma resposta

Alguns m:todos de %TT&.er let4esponse


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

Como implementar do'et e do&ost

Kse do'et78 para receber requisi"#es '!T


@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

Como ler parFmetros de requisi"5o

.e>a o m:todo &6.T ou '!T, os alores dos parFmetros podem ser recuperados pelo m:todo get&arameter78

.tring parametro S request0get&arameter7MidN8U

&arFmetros de mesmo nome podem ser repetidos, nesse caso o get&arameter78 retornar$ a primeira ocorrVncia, para obter todas use

.tringOP parans S request0get&arameterQalues7MalunosN8U

22

Como gerar uma resposta

&ara gerar uma resposta, primeiro de e=se obter um flu<o de saAda de caracteres 7Writer8 ou de ?+tes 7 6utput.tream8

Writer out S response0getWriter78U 6utput.tream out S response0get6utput.tream78U

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

9e e=se imprimir os dados no ob>eto de saAda

Criando uma .er let

.5o necess$rias quatro etapas para construir e usar uma ser let

Codificar Compilar (mplantar 7deplo+8 !<ecutar

24

Compila"5o e implanta"5o

&ara compilar, use qualquer distribui"5o da A&(


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

(nclua o 1A4 no seu C@A..&AT% ao compilar, e<

&ara implantar, copie as classes compiladas para um conte<to e<istente no ser idor

1boss - Iser erIdefaultIdeplo+


25

!<ecu"5o

.e ocV instalou as ser lets em um conte<to raiG, e<ecute=as atra :s da K4@

/ttp-IIlocal/ost-;H;HIconte<toInome0do0ser let

&ara passar parFmetros

!scre a um formul$rio %TJ@ &asse=os ia K4@

/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

A ser let de e suportar tanto '!T quanto &6.T

23

Você também pode gostar