Juliana Jenny Kolb
Home > Simulados on-line > Questões de Concursos > Tecnologia da Informação (TI) > Java > JEE
Materiais de Estudo Complementares
Apostila Completa Java PDF |
Java_JEE |
Servlets
O nome “servlet” vem da ideia de um pequeno servidor (servidorzinho, em inglês) cujo objetivo é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente.
Desta forma, entende-se “servelts”, como uma tecnologia capaz de gerar páginas dinâmicas para a plataforma Java.
Cada servlet é um objeto Java que recebe requisições (request) e produz algo (response), como uma página HTML dinamicamente gerada.
A figura 1 mostra três clientes acessando o mesmo servidor através do protocolo HTTP:
A interface Servlet define exatamente como uma servlet funciona, possibilitando o uso de qualquer protocolo baseado em requisições e respostas, e não especialmente o HTTP.
Exemplificando, para escrevermos uma servlet, criamos uma classe Java que estenda HttpServlet e sobrescreva um método chamado service. Esse método será o responsável por atender requisições e gerar as respostas adequadas. Sua assinatura:
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
…
}
Repare que o método recebe dois objetos que representam, respectivamente, a requisição feita pelo usuário e a resposta que será exibida no final.
Servlet x CGI
Diversas requisições podem ser feitas à mesma servlet ao mesmo tempo em um único servidor. Por isso, ela é mais rápida que um programa CGI comum que não permitia isso.
A especicação de servlets cita algumas vantagens em relação ao CGI:
- Fica na memória entre requisições, não precisa ser reinstanciada;
- O nível de segurança e permissão de acesso pode ser controlado em Java;
- Em CGI, cada cliente é representado por um processo, enquanto que com Servlets, cada cliente é representado por uma linha de execução.
Mapeando uma Servlet no WEB.XML
O container não tem como saber o endereço de acesso para executar a Servlet, a não ser que isso seja configurado. Para isso, mapea-se uma URL específica para uma servlet por meio do arquivo web.xml, que fica dentro do WEB-INF.
Exemplo:
Começamos com a definição da servlet em si, dentro da tag :
<servlet>
<servlet-name>primeiraServlet </servlet-name>
<servlet-class>br.com.teste.servlet.OiMundo</servlet-class>
</servlet>
Em seguida, mapeie nossa servlet para a URL /oi. Perceba que isso acontece dentro da tag (mapeamento de servlets) e que você tem que indicar que está falando daquela servlet que definimos logo acima: passamos o mesmo servlet-name para o mapeamento.
<servlet-mapping>
<servlet-name>primeiraServlet </servlet-name>
<url-pattern>br.com.teste.servlet.OiMundo</url-pattern>
</servlet-mapping>
Portanto, são necessários dois passos para mapear uma servlet para uma URL:
- Definir o nome e classe da servlet;
- 2) Usando o nome da servlet, definir a URL.
A servlet pode ser acessada através da seguinte URL: http://localhost:8080/921-agenda/oi
Assim que o arquivo web.xml e a classe da servlet de exemplo forem colocados nos diretórios corretos, basta congurar o Tomcat para utilizar o diretório de base como padrão para uma aplicação Web.