Você está na página 1de 35

Java para WEB

Servlets

Java para WEB

Servlets so classes Java que so instanciadas e


executadas em associao com servidores Web,
atendendo requisies realizadas por meio do
protocolo HTTP.

Java para WEB

Servlets a segunda forma que veremos para criao


de pginas dinmicas em Java alm da tecnologia j
vista JSP.

Java para WEB

A classe HttpServlet do pacote javax.servlet a classe


que possibilita o uso de classes java atravs do
protocolo Http.
A interface Servlet a que define exatamente como
uma servlet funciona, mas no o que vamos
utilizar agora uma vez que ela possibilita o uso de
qualquer protocolo baseado em requisies e
respostas, e no especificamente o HTTP.

Java para WEB

Para criarmos uma classe java que receba


requisies, fazemos isso criando uma classe
qualquer que estenda a classe HttpServlet e ento
sobrescrevemos o mtodo doGet.

Java para WEB

@Override
protected void doGet (HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
...
}

Java para WEB

Servlets so capazes de receber requisies e enviar


respostas atravs das Classes HttpServletRequest e
HttpServletResponse.

Java para WEB


Ento, o mtodo da Servlet poderia ter algo
como:
@Override
protected void doGet (HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {

PrintWriter out = response.getWriter();


out.println("<html>");
out.println("<body>");
out.println(Ol Mundo");
out.println("</body>");
out.println("</html>");
}

Java para WEB


Mapeando uma Servlet
A servlet acessada como uma pgina JSP qualquer,
porm para isso necessrio definir uma
configurao para que o servidor saiba qual servlet
ele deve acessar, esse mapeamento feito pelo
arquivo web.xml.

Java para WEB


Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name> WebApp_NAME</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

Java para WEB

O Mapeamento de uma servlet se d pela tag:


<servlet>
<servlet>
<servlet-name>primeiraServlet</servlet-name>
<servlet-class>br.com.cd.OiMundo</servlet-class>
</servlet>

Java para WEB

Aps isso indique por qual URL sua Servlet ser


acessada:
<servlet-mapping>
<servlet-name>primeiraServlet</servlet-name>
<url-pattern>/oiMundo</url-pattern>
</servlet-mapping>

Java para WEB

A tag <url-pattern>

Alm de mapear uma URL para acessar uma


servlet pssivel fazer com que vrias URLs
acessem a mesma servlet.
<url-pattern>/oiMundo/*</url-pattern>
<url-pattern>*.jsp</url-pattern>

Java para WEB


Prtica
Construa uma Servlet que exiba uma pgina HTML
onde contenha um ttulo e a mensagem de Boas
Vindas entre tags <h1>.

Java para WEB


Prtica
Construa uma pgina que tenha um formulrio e faa
uma servlet que some os dois valores digitados
nesse formulrio.

Java para WEB

Outros Mtodos de Servlet


doGet = recebe requisies GET
doPost = recebe requisies POST
service = recebe ambas requisies

Java para WEB

Dentro da classe servlet possvel utilizar todos os


objetos at agora visto como request, response,
session, Cookies e etc.

Java para WEB

Erros Comuns em Servlets

Java para WEB


Esquecer da barra inicial no URL pattern:
<url-pattern>oi</url-pattern>

Java para WEB


Digitar errado o nome do pacote da sua servlet:
<servlet-class>br.ac.servlet.OiMundo</servlet-class>

Java para WEB


Esquecer de colocar o nome da classe no
mapeamento da servlet
<servlet-class>br.ac.servlet</servlet-class>

Java para WEB


Prtica
Construa uma servlet que receba requisies para
cadastro de um Contato (Bean), coloque esse
contato em uma lista na sesso e crie uma pgina
que liste todos os contatos da sesso.

Java para WEB

Tratamento de Excees em Servlets

Java para WEB

possvel tratar erros em servlets atravs da


configurao do arquivo web.xml.

Java para WEB


Tratando erro da classe Exception
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/erro.html</location>
</error-page>

Java para WEB


Tratar erros de resposta Http como 404 (Pgina
inexistente)
<error-page>
<error-code>404</error-code>
<location>/paginaNaoEncontrada.html</location>
</error-page>

Java para WEB

Prtica
Crie uma servlet que trate erros de
java.lang.ArithmeticException,
java.lang.NumberFormatException e de pgina
inexistente.

Java para WEB

Mtodos init e destroy


O mtodo init executado sempre que uma servlet
executada (compilada) e o mtodo destroy sempre
quando essa mesma destruda.

Java para WEB

public void init(ServletConfig config) throws


ServletException {
super.init(config);
log("Iniciando a servlet");
}

Java para WEB

public void destroy() {


super.destroy();
log("Destruindo a servlet");
}

Java para WEB


Prtica
Construa uma servlet que conte quantas vezes o site
foi acessado e exiba em uma pgina essa
informao.

Java para WEB

SERVLETS 3.0

Java para WEB

Nova especificao da API de Servlets, disponvel em


alguns servidores j como GlassFish, Jetty e
Tomcat 7.

Java para WEB

A nova API trs algumas melhorias e correes.

@WebServlet("/oiMundo")
public class OiMundo extends HttpServlet {
...
}

Java para WEB


Exerccios
Crie uma servlet que efetue o Login em sua aplicao,
utilizando Beans e Sesso.

Crie um cadastro de Contatos onde ao salvar um contato,


esta ao seja feita por uma servlet, salvando esses em
um arquivo.
Crie uma servlet que controle o acesso do usurio na
aplicao, redirecionando ele para pgina de login
quando o mesmo no estiver na sesso.

Você também pode gostar