Desenvolvimento de Aplicações Web

21
Desenvolvimento de Aplicações Web Prof. Pedro Clarindo da Silva Neto Parte VI

Transcript of Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web

Prof. Pedro Clarindo da Silva NetoParte 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 POSTAlé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 ServletO 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 ServletA 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 webmailO 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, Apost i la. [ Internet : ht tp: / /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