Java para WEB

Propaganda
Java para WEB
Servlets
Java para WEB
Servlets são classes Java que são instanciadas e
executadas em associação com servidores Web,
atendendo requisições realizadas por meio do
protocolo HTTP.
Java para WEB
Servlets é a segunda forma que veremos para criação
de páginas dinâmicas em Java além da tecnologia já
vista JSP.
Java para WEB
A classe HttpServlet do pacote javax.servlet é a classe
que possibilita o uso de classes java através do
protocolo Http.
A interface Servlet é a que define exatamente como
uma servlet funciona, mas não é o que vamos
utilizar agora uma vez que ela possibilita o uso de
qualquer protocolo baseado em requisições e
respostas, e não especificamente o HTTP.
Java para WEB
Para criarmos uma classe java que receba
requisições, fazemos isso criando uma classe
qualquer que estenda a classe HttpServlet e então
sobrescrevemos o método doGet.
Java para WEB
@Override
protected void doGet (HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
...
}
Java para WEB
Servlets são capazes de receber requisições e enviar
respostas através das Classes HttpServletRequest e
HttpServletResponse.
Java para WEB
Então, o método 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 página JSP qualquer,
porém para isso é necessário definir uma
configuração 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
Após 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>
Além de mapear uma URL para acessar uma
servlet é póssivel fazer com que várias URL’s
acessem a mesma servlet.
<url-pattern>/oiMundo/*</url-pattern>
<url-pattern>*.jsp</url-pattern>
Java para WEB
Prática
Construa uma Servlet que exiba uma página HTML
onde contenha um título e a mensagem de Boas
Vindas entre tags <h1>.
Java para WEB
Prática
Construa uma página que tenha um formulário e faça
uma servlet que some os dois valores digitados
nesse formulário.
Java para WEB
Outros Métodos de Servlet
doGet = recebe requisições GET
 doPost = recebe requisições POST
 service = recebe ambas requisições

Java para WEB
Dentro da classe servlet é possível 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
Prática
Construa uma servlet que receba requisições para
cadastro de um Contato (Bean), coloque esse
contato em uma lista na sessão e crie uma página
que liste todos os contatos da sessão.
Java para WEB
Tratamento de Exceções em Servlets
Java para WEB
É possível tratar erros em servlets através da
configuração 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 (Página
inexistente)
<error-page>
<error-code>404</error-code>
<location>/paginaNaoEncontrada.html</location>
</error-page>
Java para WEB
Prática
Crie uma servlet que trate erros de
java.lang.ArithmeticException,
java.lang.NumberFormatException e de página
inexistente.
Java para WEB
Métodos init e destroy
O método init é executado sempre que uma servlet é
executada (compilada) e o método destroy sempre
quando essa mesma é destruída.
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
Prática
Construa uma servlet que conte quantas vezes o site
foi acessado e exiba em uma página essa
informação.
Java para WEB
SERVLETS 3.0
Java para WEB
Nova especificação da API de Servlets, disponível em
alguns servidores já como GlassFish, Jetty e
Tomcat 7.
Java para WEB
A nova API trás algumas melhorias e correções.
@WebServlet("/oiMundo")
public class OiMundo extends HttpServlet {
...
}
Java para WEB
Exercícios
Crie uma servlet que efetue o Login em sua aplicação,
utilizando Beans e Sessão.
Crie um cadastro de Contatos onde ao salvar um contato,
esta ação seja feita por uma servlet, salvando esses em
um arquivo.
Crie uma servlet que controle o acesso do usuário na
aplicação, redirecionando ele para página de login
quando o mesmo não estiver na sessão.
Download