Escolar Documentos
Profissional Documentos
Cultura Documentos
19.3.1 Ciclo de Vida dos Servlets
0 inicio do clico de vida de um servlet ocorre quando o administrador do sis-
‘oma inicia uma aplicagio baseada em um servlet. Nesse momento, 0 container
responsivel polos servlets no servidor de aplicagao cria uma instancia de um
servlet, O container também passa os parimetros de inicializagdo do servlet
através do método init, Ox parimetzos de iniializacio persister até o servlet
ser destruito,
‘Seo processo de incilizagio ocorter com sucesso, o servlet se torna dispansvel
para servigo (atendimento de requisigses). Se 0 processo falhar 0 container
doscarrega o servlet
ApSs a que um serviet se torna disponivel, o administrador pode optar para
colocé-lo em um estado de indisponival, assim cle permancceré até que 0 ad-
rministrador execute a operagio contrat,
Quando um requisigio de um cliente choga ao servidor de aplicagio, © con
tainer cria os objetos request e response, que sio passados de parimelro para
‘o método service,
mmhttp://www. candidatoreal.com
http://www.candidatoreal.com
© método service recupera informagies sobre a requisigio a partir do ob-
Jota request, processa a requisicio, e em seguida utiliza 0 objeto response para
car uma resposta para o cliente.0 método service pode ainda chamar outros
tétodos para processar a requisigio, como doGet(), doPost(), ou métodas es
tritos pelo proprio programador.
Quando 0 administrador encerra a aplicagao, 0 container invoca 0 método
Aestroy() © descarroga o servlet. A figura 19.2 representa o diagrama de estados
do cielo de vida de una servlet.
Figura 19.2: Ciclo de vide do
19.3.2 Mantendo o estado do cliente
Muitas aplicagGes requerem que uma série de requisigées de un mesmo cliente
Sojarn associadas uma com a outra, para que uma determinada operacio faca
sentido. Um exemplo pritico & uma aplicagio de carrinho de compras, ex que
fo cliente vat navegando durante as paginas escolhendo os produtor © ao final
realiza a compra de fate, © perfodo que compreende a entrada no site, pas-
sando pela escolha dos produtes e chegando ao pagamento cu ao cancelamento
S-comumonte chamada de sessio. A aplicagio 6 responsive] por manter 0 estado
da sessio, tendo em vista que 0 protocolo HTTP é um protocolo stateless.
Para suportar aplicagSes que precisam manter um estado, os servlets ofere-
com APT's para implementar o concsito de sesso.
As sessées sito ropresuntadas polo objeto IlttpSession. Uma sessio pode ser
aceasada chamando 0 método getSession do objeto request. Kase método re-
torna a sossio corrente associada com o roquest,¢ se cla ainda nio existir, uma
m2http://www. candidatoreal.com
http://www.candidatoreal.com
sessio 6 criada, Como o método getSession pode modificar o header da resposta
(Gesponse header), esse método deve ser chamado antes de yeeuperados o Print-
Writer ou o ServletOutputStream (objetos que servem para mandar dados para
co cliente).
|Atributos podem ser associados a ttma sessio pelo note. Tais atribmtos
podem ser acessados por qualquer componente Web que pertenga ao mesmo
contexto esteja atendendo uma requisigao que seja parte da mesma sessio, A
seguir ura exemplo de Servlet que mantém sesabes,
public class CashierServiet extends HttpServlet {
public void dotet (HetpServletRequest request,ttpServletResponse response)
‘hrous ServletException, IOException {
// Get the user's session and shopping cart
HetpSession session = request getSession();
ShoppingCart cart = (ShoppingCart) session. getActribute(
a books
1 Devernine the total price of the us
double total = cart.getTotal(;
Come nio hé nenbiuma forma de um cliente HTTP sinalizar que wma s
rio 6 mais necesséria (a nao scr via eplicagio), cada sesséo possui um valor de
timeout. O valor de timeout pode ser acessad atraves dos métodos getMaxe
Inactivelnterval © Maxlnactivelnterval. Geralmente 0 tempo mixin de
inatividade permitide para uma sessio também ¢ feita no servidor de aplicagio.
19.4 Um pouco mais sobre paginas JSP
Jova Servor Pages (JSP) é uma tecnologia que permite embutir eédigo java em
‘wma pagina HTML para gevar contesido dindmico. Um exemplo simples de urna
pigina JSP 6 a seguinte
‘A primeira linha da pigina 6 um exemplo de dietiva JSP, Blas sempre si
definidas entre as tags iJ601 © %j. No exemplo 6 utiizads uma diretiva de im-
Port, que tem por objetivo importar pacotes assizn como em uma classe java
comum. Existem outros tipos de dretivas, sondo as mais conhocidas a include
o taglib
A dixetiva include inclue o contetido do arquivo especificado durante a fase
de compilagao da pagina JSP, ou seja, quando esta 6 convertida em, um Servlet,
Neste aso, os dois arquiver sia combinadoe para gorar um x6. E muito til
fquando uma pégina 6 estruturada em partes bem definidas (topo, mem, 10-
ddapé, etc). A seguir am exemplo da tso de traa diretiva include.
right nemu.jep" Io
Wnat’s your e-mail address? <2R>
Wnat’s your age?
‘