Escolar Documentos
Profissional Documentos
Cultura Documentos
Uma maneira de escrever um servidor simples que serve apenas dados estticos seria
codificar tudo em um nico programa executvel. Este nico programa iria cuidar de todas as
diferentes tarefas, tais como a gesto da rede, implementao de protocolos, localizar dados
e responder. No entanto, para servidores HTTP que servem de dados sindicados, que exigem
um design altamente flexvel e extensvel. A lgica de aplicao continua a mudar, os clientes
precisam vistas personalizadas de informaes e parceiros de negcios precisam de regras de
transformao customizadas. No podemos escrever um nico programa que lida com todas
essas tarefas. Alm disso, o que se uma nova funcionalidade tem de ser adicionado? E se as
alteraes de formato de dados? Modificando os arquivos de origem (especialmente aps o
desenvolvedor deixou!) para adicionar um novo cdigo certamente a ltima coisa que
queremos fazer.
Bem, h um projeto melhor para esses tipos de servidores: dividir o cdigo em duas partes e
um executvel que lida com a rede e que fornece a aplicao lgica e deixar os dois
executveis tem uma interface padro entre eles. Este tipo de separao torna possvel
modificar o cdigo na lgica da aplicao sem afetar o mdulo de rede, desde que siga as
regras do interface. Tradicionalmente, as pessoas tm implementado este projeto para
servidores HTTP usando Common Gateway Interface (CGI). De um lado dessa interface o
servidor web principal, e do outro lado esto as scripts CGI. O servidor web funciona como o
mdulo de comunicaes de rede e gerencia os clientes, enquanto os scripts CGI atuar como
mdulos de processamento de dados e entregar o resultado. Eles seguem as regras do
"Common Gateway Interface" para passar dados entre eles.
Ele implementa as ltimas Servlet 2.4 e JSP 2.0 especificaes, que o que precisamos para
o exame.
Ela tem a capacidade de funcionar como um servidor web por si s (modo Standalone) .No
h necessidade de um servidor web separado.
Temos dado instrues de instalao para o Tomcat no apndice A. Nas discusses dos
exemplos ao longo do livro, assumiu-se que o diretrio de instalao do Tomcat c: \ jakartatomcat-5.0.25. Note-se que uma vez que voc tenha instalado o Tomcat, voc deve definir o
CATALINA_HOME, JAVA_HOME, e variveis CLASSPATH, conforme descrito no apndice A.
1.3.1 O cdigo
Listagem 1.1 contm o cdigo para HelloWorldServlet.java.
1.3.2 Compilao
Observe as instrues de importao na Listagem 1.1. Eles importam as classes dos pacotes
javax.servlet e javax.servlet.http. No Tomcat, eles So fornecidas como parte do arquivo
servlet-api.jar, que est no diretrio c: \ jakarta-tomcat 5.0.25 \ common \ lib \. Para compilar
1.3.3 implantao
A implantao um processo de duas etapas. (Ns vamos discutir a estrutura de implantao
no captulo 5.) Em primeiro lugar, ns colocamos os recursos para o diretrio necessrio.
Ento, eu informo sobre o nosso servlet Tomcat editando o arquivo web.xml:
1 Copie o arquivo para o diretrio HelloWorldServlet.class
c: \ jakarta-tomcat-5.0.25 \ webapps \ chapter01 \ WEB-INF \ classes
2 Crie um arquivo de texto chamado web.xml no
c: \ jakarta-tomcat5.0.25 \ webapps \ chapter01 \ WEB-INF.
Escreva as seguintes linhas no arquivo:
Voc tambm pode copiar o diretrio chapter01 diretamente do site da Manning no seu c: \
jakarta-tomcat-5.0.25 diretrio \ webapps. Isto ir fornecer todos os arquivos que voc precisa
para executar o exemplo.
1.3.4 Execuo
Comece Tomcat com um atalho ou com o prompt do DOS (c: \ jakarta-tomcat5.0.25 \ bin \
startup.bat).
Abra uma janela do navegador e v para a URL http: // localhost / chapter01 / servlet /
HelloWorldServlet.
Ol Mundo! deve aparecer na janela do navegador.
A interface javax.servlet.Servlet
Esta a interface central no API servlet. Cada classe servlet deve directa ou indirectamente
implementar essa interface. Tem cinco mtodos, tal como mostrado na tabela 1.1.
O mtodo de service () lida com as solicitaes e cria respostas. O servlet container chama
automaticamente esse mtodo quando ele recebe qualquer pedido para este servlet. A
assinatura completa deste mtodo
A classe javax.servlet.GenericServlet
A classe GenericServlet implementa a interface Servlet. uma classe abstrata que permite a
execuo de todos os mtodos, exceto o mtodo de servio () da interface Servlet. Ele
tambm adiciona alguns mtodos para apoiar o registo. Podemos estender esta classe e
implementar o mtodo de servio () para escrever qualquer tipo de servlet.
A interface javax.servlet.ServletRequest
A interface ServletRequest fornece uma viso genrica do pedido que foi enviado por um
cliente. Ele define mtodos que extraem informaes do pedido.
A interface javax.servlet.ServletResponse
A interface ServletResponse fornece uma forma genrica de envio de respostas. Ele define
mtodos que auxiliam no envio de uma resposta apropriada para o cliente.
A classe javax.servlet.http.HttpServlet
HttpServlet uma classe abstrata que estende GenericServlet. Ele adiciona um novo mtodo
de servio () com esta assinatura:
protected void service (HttpServletRequest, HttpServletResponse)
throws ServletException, java.io.IOException;
No exemplo Ol Mundo, ns estendemos nossa classe servlet a partir desta classe e que
cancelou o mtodo de servio ().
A interface javax.servlet.http.HttpServletRequest
A interface HttpServletRequest estende ServletRequest e fornece uma viso especfica HTTP
do pedido. Ele define mtodos que extraem informaes, tais como cabealhos de HTTP e
cookies, a partir da solicitao.
A interface javax.servlet.http.HttpServletResponse
A interface HttpServletResponse estende ServletResponse e fornece uma maneira especfica
do HTTP de envio de respostas. Ele define mtodos que auxiliam na criao de informao,
tais como cabealhos de HTTP e cookies, para a resposta.
Flexibilidade-Cada vez que precisa adicionar uma nova funcionalidade ao servidor, todos
ns temos que fazer escrever um novo servlet especfico para esse conjunto de requisitos e
conecte-o ao servidor, sem modificar o prprio servidor.
programadores Java Java no precisam aprender uma nova linguagem de script. Alm
disso, eles podem usar todos os recursos orientados a objetos fornecidos pelo Java.
1.5 RESUMO
Neste captulo, ns aprendemos sobre os conceitos bsicos de servlets e servlet container, e
como eles fornecem extenses para a funcionalidade de um servidor. Ns tambm correu
uma amostra de servlet Ol mundo que exibia uma linha de texto na janela do navegador.
Finalmente, ns olhamos a API Servlet e suas classes e interfaces. Armado com este
conhecimento, agora ns podemos responder pergunta "O que um servlet?" A partir de
vrias perspectivas diferentes. Conceitualmente, um servlet um pedao de cdigo que pode
ser
Ligado a um servidor existente para estender a funcionalidade do servidor
usado para gerar a sada desejada dinamicamente