Desenvolvimento de
Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Parte VI
Prof. Pedro Clarindo da Silva Neto
Páginas dinâmicas
O desenvolvimento da Internet levou à necessidade de criação de pági-
nas dinâmicas. A página de resultados exibida quando acessamos um
site de buscas como o Google, por exemplo, é criada naquele instante.
Ela depende, essencialmente, de dois fatores:
Da expressão de busca que inserimos, isto é, do conjunto de termos que
utilizamos para encontrar o site desejado. 

Do estado do banco de dados do Google naquele momento. 

Se voltarmos ao site após uma semana e realizarmos a mesma busca,
poderemos obter um resultado diferente. Isso ocorre porque o banco de
dados é atualizado constantemente, e novas páginas que podem atender
à nossa pesquisa são constantemente incluídas e/ou atualizadas.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Páginas dinâmicas
O mesmo acontece com sites de lojas virtuais, que incluem e
atualizam o catálogo de produtos à venda constantemente. A
página de um carrinho de compras, por exemplo, não existe
antes de o cliente escolher os itens que quer comprar.
Páginas dinâmicas se baseiam nos dados submetidos pelo
usuário e é derivada dos dados contidos no banco, que são
alterados frequentemente. Existem várias linguagens de
programação que podemos utilizar para criá-las, como C, C+
+, Perl, ASP, PHP etc. Neste material utilizaremos a linguagem
Java, já vista em disciplinas anteriores, que possui uma API
específica para o desenvolvimento Web, além da facilidade da
orientação a objetos.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Introdução aos Servlets
Servlets são programas em Java que rodam na Web ou em servidores
de aplicação, e que se comportam como uma camada entre as
requisições vindas dos navegadores e o banco de dados. O trabalho
de um servlet é: (1) ler os dados enviados pelo cliente (inseridos, por
exemplo, em um formulário HTML) e os dados implícitos enviados
pelo navegador (mostrados mais adiante); (2) gerar o resultado, em
um formato que o navegador entenda; e (3) enviar o documento
gerado e os dados implícitos para o navegador do cliente.
Para executar um servlet, é necessário um servidor (ou servlet contai-
ner), que processa as requisições e gera o documento de resposta. Se
seu Netbeans já possui suporte para web, é provável que você já
possua uma servidor (Tomcat ou GlassFish) instalado e configurado.
Caso contrário, procure um tutorial para lhe orientar.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Introdução aos Servlets
Para testar, crie um novo projeto para web no Netbeans chamado
“ProjetoTeste”. Em seguida, clique com o botão direito em “Pacotes de
código fontes”, depois em “Novo”, e por fim em “Servlet” (veja na
Figura 31). Preencha o campo Nome da classe com “ServletTeste” (sem
as aspas), que será o nome do nosso primeiro servlet. Preencha também
o campo Pacote com “Teste” (pacote em que criaremos o servlet). Por
fim, clique em “Próximo” e depois em “Finalizar”.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Introdução aos Servlets
Como podemos perceber no trecho acima, o código
HTML que será retornado ao usuário deve ser impresso
manualmente no arquivo de saída chamado “out”. Tudo
que for impresso neste arquivo fará parte da página
resultante.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Pode não parecer muito prático imprimir as linhas de
código HTML de dentro do arquivo em Java, como visto
no trecho acima, e real- mente não é!
Mais adiante veremos que servlets são mais utilizados
para desenvolvermos a lógica de negócios do sistema.
Para criarmos a parte de apresentação, utilizamos JSP.
Mas como só aprenderemos JSP nos próximos capítulos,
vamos continuar criando as páginas retornadas ao
usuário, por enquanto, através de “out.println( )”.
Desenvolvimento de Aplicações Web
Introdução aos Servlets
Prof. Pedro Clarindo da Silva Neto
Introdução aos Servlets
Ao executarmos o projeto, nosso servlet será compilado, mas
ainda não será visualizado. Para visualizarmos, trocaremos a URI
http://localhost:8080/ProjetoTeste exibida pelo navegador pela URI
http://localhost:8080/ProjetoTeste/ServletTeste. Outra alternativa é
criarmos um link no arquivo “index.jsp” para esta última URI.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Principais aspectos de um
Servlet
Servlets costumam ser executados após submetermos um formulário
HTML. Quando o usuário clica em um botão do tipo “submit” no
formulário de uma página, os dados preenchidos são enviados ao
servidor, que executa o servlet definido pelo atributo “action” da tag
<form>. Cada campo do formulário deve possuir um nome único, para
que o servlet seja capaz de recuperar o que foi digitado pelo usuário
neste campo:
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Principais aspectos de um
Servlet
O trecho de código HTML acima indica que os dados preenchidos no
formulário serão enviados ao servlet chamado “ServletTeste”, e os valo-
res poderão ser recuperados através dos nomes “nome” e “idade”.
Os servlets herdam da classe HttpServlet e recebem as variáveis
request e response como parâmetros. A primeira contém os dados
referentes à requisição submetida pelo usuário. Na outra, incluímos
informações relativas à resposta enviada ao navegador do cliente. Os
campos do formulário acima poderiam ser recuperados no servlet da
seguinte forma:
Desenvolvimento de Aplicações Web
Você pode imprimir as
variáveis acima no arquivo
de saída do servlet para
testar se o valor dos
campos “nome” e “idade”
realmente foram passados
pelo formulário.
Prof. Pedro Clarindo da Silva Neto
Métodos GET e POST
Além do atributo action, também podemos definir na tag <form>
o atributo method, que pode conter os valores “GET” ou “POST”.
Este atributo define a forma como os dados preenchidos no
formulário serão enviados ao servlet. Utilizando “GET”, os dados
são passados através da URI. A URI abaixo, por exemplo, indica
que os parâmetros passados ao servlet são “nome” e “idade”, que
possuem os valores “Hilario” e “27”, respectivamente.
Desenvolvimento de Aplicações Web
http://localhost:8080/ProjetoTeste/ServletTeste?nome=Hilario&idade=27
Utilizando “POST”, os valores são enviados implicitamente, através
do cabeçalho enviado pelo navegador. Isto é interessante quando o
formulário contém senha, pois não desejamos que as mesmas sejam
exibidas na URI. Se o atributo method não for definido, o padrão é
que o formulário seja enviado utilizando o método “GET”.
Prof. Pedro Clarindo da Silva Neto
Primeiro exemplo de Servlet
No código abaixo, criamos um formulário em um
arquivo HTML. Quando ele for submetido, os dados
preenchidos serão enviados a um servlet chamado
“ConfereIdade” através do método “GET”:
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Primeiro exemplo de Servlet
O arquivo “ConfereIdade.java” deve ser um servlet que exibe uma
saudação ao usuário caso sua idade seja maior ou igual a 18. Caso
contrário, o usuário é redirecionado ao site do IFMT. Veja a seguir o
código contido no método “ProcessRequest” do servlet:
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Primeiro exemplo de Servlet
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Primeiro exemplo de Servlet
A maioria dos servlets possuirão esta estrutura:
• Primeiro, acessamos os valores preenchidos
nos campos dos formulários;
• Em seguida, realizamos algum processamento
com estes valores;
• Por fim, devolvemos a resposta ao usuário.
Veremos mais adiante que o processamento
costuma incluir acesso a banco de dados, para
que as páginas fiquem ainda mais dinâmicas.
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Começando a criar um webmail
Para treinarmos os conceitos vistos acima,
vamos começar a criar a interface inicial de
um webmail. O primeiro passo é criar uma
página inicial para nosso site, que deve
permitir que o usuário digite seu login e sua
senha. Também iremos incluir as opções de
“Cadastro” e “Lembrete de Senha”. Tente
criar um código que exiba uma página
semelhante à da Figura a seguir:
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Começando a criar um webmail
Desenvolvimento de Aplicações Web
Proposta do livro-texto com css
e javascript para validar.
Proposta do professor com
bootstrap e html5
Prof. Pedro Clarindo da Silva Neto
Começando a criar um webmail
Ao submeter o formulário acima, os dados devem ser
enviados a um servlet chamado “login” através do
método “Post” (para que a senha não seja exibida na
URI).
O próximo passo é verificar se o usuário existe no
banco de dados e, neste caso, se sua senha está
correta. Por enquanto, vamos criar apenas o “esque-
leto” do servlet, sem incluir o acesso ao banco. Neste
caso, o login será considerado correto somente se o
login digitado for “user” e a senha for “123”:
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Começando a criar um webmail
Desenvolvimento de Aplicações Web
Prof. Pedro Clarindo da Silva Neto
Começando a criar um webmail
O trecho de código acima prevê a verificação dos seguintes
casos:
Campos do formulário não foram preenchidos; 

•Usuário não existe; 

•Senha correta; e 

•Senha incorreta. 

No próximo capítulo, iremos aprimorar o código acima
realizando consultas no banco de dados.
Desenvolvimento de Aplicações Web
Programação para internet. / Hilário Seibel Júnior. – Vitória: Ifes, 2010.
CAELUM, Java e Orientação a Objetos, Apostila. [Internet: http://
www.caelum.com.br/ downloads/apostila/caelum-java-objetos-fj11.pdf]. Acesso em
04/03/2009.
DEITEL, Harvey M.; DEITEL, Paul J., Java: Como Programar, São Paulo: Prentice-Hall,
2005.
GOODMAN, Danny, JavaScript a Bíblia, Ed. Campus, 2001

HALL, Marty; BROWN, Larry, Core Servlets e JavaServer Pages vo1 e vol 2, Ed.
Ciência Moderna, 2005
HORSTMANN, Cay; CORNELL, Gary, Core Java 2, Fundamentos, São Paulo: Makron
Books, Volume 1, 2000.
KURNIAWAN, Budi, Java para a Web com Servlets, JSP e EJB, Ed. Ciência Moderna,
2002
MUSCIANO, Chuck; KENNEDY, Bill, HTML: The definitive guide, Ed. Orelly, 1997
OLSON, Steven Douglas, Ajax com Java, Ed. Alta Books, 2007
Referências
Prof. Pedro Clarindo da Silva Neto
Desenvolvimento de Aplicações Web

Daw slide 06

  • 1.
    Desenvolvimento de Aplicações Web Prof.Pedro Clarindo da Silva Neto Parte VI
  • 2.
    Prof. Pedro Clarindoda Silva Neto Páginas dinâmicas O desenvolvimento da Internet levou à necessidade de criação de pági- nas dinâmicas. A página de resultados exibida quando acessamos um site de buscas como o Google, por exemplo, é criada naquele instante. Ela depende, essencialmente, de dois fatores: Da expressão de busca que inserimos, isto é, do conjunto de termos que utilizamos para encontrar o site desejado. 
 Do estado do banco de dados do Google naquele momento. 
 Se voltarmos ao site após uma semana e realizarmos a mesma busca, poderemos obter um resultado diferente. Isso ocorre porque o banco de dados é atualizado constantemente, e novas páginas que podem atender à nossa pesquisa são constantemente incluídas e/ou atualizadas. Desenvolvimento de Aplicações Web
  • 3.
    Prof. Pedro Clarindoda Silva Neto Páginas dinâmicas O mesmo acontece com sites de lojas virtuais, que incluem e atualizam o catálogo de produtos à venda constantemente. A página de um carrinho de compras, por exemplo, não existe antes de o cliente escolher os itens que quer comprar. Páginas dinâmicas se baseiam nos dados submetidos pelo usuário e é derivada dos dados contidos no banco, que são alterados frequentemente. Existem várias linguagens de programação que podemos utilizar para criá-las, como C, C+ +, Perl, ASP, PHP etc. Neste material utilizaremos a linguagem Java, já vista em disciplinas anteriores, que possui uma API específica para o desenvolvimento Web, além da facilidade da orientação a objetos. Desenvolvimento de Aplicações Web
  • 4.
    Prof. Pedro Clarindoda Silva Neto Introdução aos Servlets Servlets são programas em Java que rodam na Web ou em servidores de aplicação, e que se comportam como uma camada entre as requisições vindas dos navegadores e o banco de dados. O trabalho de um servlet é: (1) ler os dados enviados pelo cliente (inseridos, por exemplo, em um formulário HTML) e os dados implícitos enviados pelo navegador (mostrados mais adiante); (2) gerar o resultado, em um formato que o navegador entenda; e (3) enviar o documento gerado e os dados implícitos para o navegador do cliente. Para executar um servlet, é necessário um servidor (ou servlet contai- ner), que processa as requisições e gera o documento de resposta. Se seu Netbeans já possui suporte para web, é provável que você já possua uma servidor (Tomcat ou GlassFish) instalado e configurado. Caso contrário, procure um tutorial para lhe orientar. Desenvolvimento de Aplicações Web
  • 5.
    Prof. Pedro Clarindoda Silva Neto Introdução aos Servlets Para testar, crie um novo projeto para web no Netbeans chamado “ProjetoTeste”. Em seguida, clique com o botão direito em “Pacotes de código fontes”, depois em “Novo”, e por fim em “Servlet” (veja na Figura 31). Preencha o campo Nome da classe com “ServletTeste” (sem as aspas), que será o nome do nosso primeiro servlet. Preencha também o campo Pacote com “Teste” (pacote em que criaremos o servlet). Por fim, clique em “Próximo” e depois em “Finalizar”. Desenvolvimento de Aplicações Web
  • 6.
    Prof. Pedro Clarindoda Silva Neto Introdução aos Servlets Como podemos perceber no trecho acima, o código HTML que será retornado ao usuário deve ser impresso manualmente no arquivo de saída chamado “out”. Tudo que for impresso neste arquivo fará parte da página resultante. Desenvolvimento de Aplicações Web
  • 7.
    Prof. Pedro Clarindoda Silva Neto Pode não parecer muito prático imprimir as linhas de código HTML de dentro do arquivo em Java, como visto no trecho acima, e real- mente não é! Mais adiante veremos que servlets são mais utilizados para desenvolvermos a lógica de negócios do sistema. Para criarmos a parte de apresentação, utilizamos JSP. Mas como só aprenderemos JSP nos próximos capítulos, vamos continuar criando as páginas retornadas ao usuário, por enquanto, através de “out.println( )”. Desenvolvimento de Aplicações Web Introdução aos Servlets
  • 8.
    Prof. Pedro Clarindoda Silva Neto Introdução aos Servlets Ao executarmos o projeto, nosso servlet será compilado, mas ainda não será visualizado. Para visualizarmos, trocaremos a URI http://localhost:8080/ProjetoTeste exibida pelo navegador pela URI http://localhost:8080/ProjetoTeste/ServletTeste. Outra alternativa é criarmos um link no arquivo “index.jsp” para esta última URI. Desenvolvimento de Aplicações Web
  • 9.
    Prof. Pedro Clarindoda Silva Neto Principais aspectos de um Servlet Servlets costumam ser executados após submetermos um formulário HTML. Quando o usuário clica em um botão do tipo “submit” no formulário de uma página, os dados preenchidos são enviados ao servidor, que executa o servlet definido pelo atributo “action” da tag <form>. Cada campo do formulário deve possuir um nome único, para que o servlet seja capaz de recuperar o que foi digitado pelo usuário neste campo: Desenvolvimento de Aplicações Web
  • 10.
    Prof. Pedro Clarindoda Silva Neto Principais aspectos de um Servlet O trecho de código HTML acima indica que os dados preenchidos no formulário serão enviados ao servlet chamado “ServletTeste”, e os valo- res poderão ser recuperados através dos nomes “nome” e “idade”. Os servlets herdam da classe HttpServlet e recebem as variáveis request e response como parâmetros. A primeira contém os dados referentes à requisição submetida pelo usuário. Na outra, incluímos informações relativas à resposta enviada ao navegador do cliente. Os campos do formulário acima poderiam ser recuperados no servlet da seguinte forma: Desenvolvimento de Aplicações Web Você pode imprimir as variáveis acima no arquivo de saída do servlet para testar se o valor dos campos “nome” e “idade” realmente foram passados pelo formulário.
  • 11.
    Prof. Pedro Clarindoda Silva Neto Métodos GET e POST Além do atributo action, também podemos definir na tag <form> o atributo method, que pode conter os valores “GET” ou “POST”. Este atributo define a forma como os dados preenchidos no formulário serão enviados ao servlet. Utilizando “GET”, os dados são passados através da URI. A URI abaixo, por exemplo, indica que os parâmetros passados ao servlet são “nome” e “idade”, que possuem os valores “Hilario” e “27”, respectivamente. Desenvolvimento de Aplicações Web http://localhost:8080/ProjetoTeste/ServletTeste?nome=Hilario&idade=27 Utilizando “POST”, os valores são enviados implicitamente, através do cabeçalho enviado pelo navegador. Isto é interessante quando o formulário contém senha, pois não desejamos que as mesmas sejam exibidas na URI. Se o atributo method não for definido, o padrão é que o formulário seja enviado utilizando o método “GET”.
  • 12.
    Prof. Pedro Clarindoda Silva Neto Primeiro exemplo de Servlet No código abaixo, criamos um formulário em um arquivo HTML. Quando ele for submetido, os dados preenchidos serão enviados a um servlet chamado “ConfereIdade” através do método “GET”: Desenvolvimento de Aplicações Web
  • 13.
    Prof. Pedro Clarindoda Silva Neto Primeiro exemplo de Servlet O arquivo “ConfereIdade.java” deve ser um servlet que exibe uma saudação ao usuário caso sua idade seja maior ou igual a 18. Caso contrário, o usuário é redirecionado ao site do IFMT. Veja a seguir o código contido no método “ProcessRequest” do servlet: Desenvolvimento de Aplicações Web
  • 14.
    Prof. Pedro Clarindoda Silva Neto Primeiro exemplo de Servlet Desenvolvimento de Aplicações Web
  • 15.
    Prof. Pedro Clarindoda Silva Neto Primeiro exemplo de Servlet A maioria dos servlets possuirão esta estrutura: • Primeiro, acessamos os valores preenchidos nos campos dos formulários; • Em seguida, realizamos algum processamento com estes valores; • Por fim, devolvemos a resposta ao usuário. Veremos mais adiante que o processamento costuma incluir acesso a banco de dados, para que as páginas fiquem ainda mais dinâmicas. Desenvolvimento de Aplicações Web
  • 16.
    Prof. Pedro Clarindoda Silva Neto Começando a criar um webmail Para treinarmos os conceitos vistos acima, vamos começar a criar a interface inicial de um webmail. O primeiro passo é criar uma página inicial para nosso site, que deve permitir que o usuário digite seu login e sua senha. Também iremos incluir as opções de “Cadastro” e “Lembrete de Senha”. Tente criar um código que exiba uma página semelhante à da Figura a seguir: Desenvolvimento de Aplicações Web
  • 17.
    Prof. Pedro Clarindoda Silva Neto Começando a criar um webmail Desenvolvimento de Aplicações Web Proposta do livro-texto com css e javascript para validar. Proposta do professor com bootstrap e html5
  • 18.
    Prof. Pedro Clarindoda Silva Neto Começando a criar um webmail Ao submeter o formulário acima, os dados devem ser enviados a um servlet chamado “login” através do método “Post” (para que a senha não seja exibida na URI). O próximo passo é verificar se o usuário existe no banco de dados e, neste caso, se sua senha está correta. Por enquanto, vamos criar apenas o “esque- leto” do servlet, sem incluir o acesso ao banco. Neste caso, o login será considerado correto somente se o login digitado for “user” e a senha for “123”: Desenvolvimento de Aplicações Web
  • 19.
    Prof. Pedro Clarindoda Silva Neto Começando a criar um webmail Desenvolvimento de Aplicações Web
  • 20.
    Prof. Pedro Clarindoda Silva Neto Começando a criar um webmail O trecho de código acima prevê a verificação dos seguintes casos: Campos do formulário não foram preenchidos; 
 •Usuário não existe; 
 •Senha correta; e 
 •Senha incorreta. 
 No próximo capítulo, iremos aprimorar o código acima realizando consultas no banco de dados. Desenvolvimento de Aplicações Web
  • 21.
    Programação para internet./ Hilário Seibel Júnior. – Vitória: Ifes, 2010. CAELUM, Java e Orientação a Objetos, Apostila. [Internet: http:// www.caelum.com.br/ downloads/apostila/caelum-java-objetos-fj11.pdf]. Acesso em 04/03/2009. DEITEL, Harvey M.; DEITEL, Paul J., Java: Como Programar, São Paulo: Prentice-Hall, 2005. GOODMAN, Danny, JavaScript a Bíblia, Ed. Campus, 2001
 HALL, Marty; BROWN, Larry, Core Servlets e JavaServer Pages vo1 e vol 2, Ed. Ciência Moderna, 2005 HORSTMANN, Cay; CORNELL, Gary, Core Java 2, Fundamentos, São Paulo: Makron Books, Volume 1, 2000. KURNIAWAN, Budi, Java para a Web com Servlets, JSP e EJB, Ed. Ciência Moderna, 2002 MUSCIANO, Chuck; KENNEDY, Bill, HTML: The definitive guide, Ed. Orelly, 1997 OLSON, Steven Douglas, Ajax com Java, Ed. Alta Books, 2007 Referências Prof. Pedro Clarindo da Silva Neto Desenvolvimento de Aplicações Web