Java na WEB Servlet. Sumário



Documentos relacionados
Java para Desenvolvimento Web

Fundamentos de Servlets. Conceitos e ciclo de vida Classes e Interfaces da API Exemplos de Servlets

Java para WEB. Servlets

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Prof. Roberto Desenvolvimento Web Avançado

Programação II Programação para a Web. Christopher Burrows

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Java II. Sérgio Luiz Ruivace Cerqueira

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Prática Sobre Servlets e JSP

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Desenvolvimento Web TCC Turma A-1

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Alfamídia Programação: Java Web

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Autenticação e Autorização

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de uma Webapp

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

Servlets. João Carlos Pinheiro. Julho / 2005

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Java Servlets. Leonardo Gresta Paulino Murta

Associação Carioca de Ensino Superior Centro Universitário Carioca

Executando comandos do Sistema Operacional em uma aplicação WEB Java

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Tecnologias Web. Java Servlets

INTRODUÇÃO À TECNOLOGIA SERVLETS

Desenvolvimento Web TCC Turma A-1

UNIDADE II JAVA SERVLETS

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

Tutorial Jogo da Velha WEB

Prof. Fellipe Aleixo

Curso de Aprendizado Industrial Desenvolvedor WEB

Aula 03 - Projeto Java Web

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Programação em Rede. Servlets. Manipulação de dados de input em Servlets

Programação Web Aula 12 - Java Web Software

Scriptlets e Formulários

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Servlets e Applets, funcionamento e comparativo.

programação de páginas de conteúdo dinâmico

J550. Helder da Rocha

Javascript Exemplos Objetos

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

TUTORIAL JSP & SERVLET

Criação de uma aplicação usando Servlets

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Desenvolvendo Aplicações Web com Java

Java ME Java Platform, Micro Edition Java SE Java Platform, Standard Edition Java EE Java Platform, Enterprise Edition

Tutorial. Começando a Criar Aplicativos SMS

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005

Desenvolvimento Web com JSP/Servlets

PROGRAMAÇÃO PARA WEB

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Desenvolvimento de Sistemas Corporativos Aula 1.5 Introdução a Servlets. Prof. Bruno Moreno

WebWork 2. João Carlos Pinheiro.

Servlets API. Aplicações web usando recursos da Servlets API no desenvolvimento de aplicações web. Professor J. c o l u n a

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

Persistência de Classes em Tabelas de Banco de Dados

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

Trabalhando com Servlet

Faculdades Integradas Santa Cruz. Tutorial de Java MVC WEB Criando uma tela de Login com Banco de Dados

Gerador de código JSP baseado em projeto de banco de dados MySQL

GUIA INTEGRA SERVICES E STATUS MONITOR

J550 Segurança e Controle de erros

Servlets & JSP. Prof. Ramon Chiara

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA. Apostila Servlet/JSP. Alcione de Paiva Oliveira

Programação Gráfica em Java.

Universidade São Judas Tadeu. Faculdade de Tecnologia e Ciências Exatas. Sistemas de Informação 3ASIN

Servlets, JSPs e Java Beans

JSP e Servlet Princípio de MVC

Tecnologias para Web

3 SCS: Sistema de Componentes de Software

Java II. Sérgio Luiz Ruivace Cerqueira

Java na WEB Banco de Dados

ANDROID APPLICATION PROJECT

20/08/14 JAVA SERVLETS CONCEITOS CONTEÚDO ARQUITETURA DE UMA APLICAÇÃO WEB ARQUITETURA DA APLICAÇÃO WEB

Desenvolvimento de aplicações Web. Java Server Pages

Aplicações de Linguagem de Programação Orientada a Objeto

Orientada a serviços: JAX-WS SOAP API

Acessando um Banco de Dados

Registo de condutor (Protótipo funcional) Página apresentada ao utilizador

Laboratórios 5, 6, 7 - Servlets

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Curso de Java para Web. Curso de Java. Daniel Destro do Carmo Softech Network Informática

Transcrição:

1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento de tomada de decisão. Sumário 11. Servlets... 2 Introdução... 2 O que distingue um servlet de uma típica classe?... 2 O que distingue um HttpServlet de uma típica classe?... 2 Código Java de um de exemplo de HttpServlet... 3 Comentários:... 3 A execução do Servlet... 5 12. Servlets e Documentos JSPs... 5 12.1 Código do Servlet... 6 12.2 Servlets como mecanismo de tomada de decisão... 8 13. Configuração do JCreator... 12 14. O que estudar a partir de agora?... 14

2 11. Servlets Introdução O que distingue um servlet de uma típica classe? Servlets são pequenos programas escritos em Java que rodam dentro de um servidor web em um Servlet Container (Tom Cat) e precisam ser executados por uma Java Virtual Machine denominada de Máquina Servlet. Um Servlet Container é o responsável pelo ciclo de vida de um servlet. Dois pacotes compõe a arquitetura fundamental dos servlets o javax.servlet e o javax.servlet.http. O javax.servlet provê recursos genéricos para um Servlet. O javax.servlet.http, é específico para o ambiente WEB. Um servlet é uma classe que implementa a interface javax.servlet.servlet. Essa interface define métodos para inicializar um servlet, responder a solicitações e remover o servlet da memória. Essas ações são conhecidas como ciclo de vida e são chamadas na seguinte sequência: 1. O servlet é construído e inicializado através do método public void init(). 2. Qualquer solicitação do cliente é encaminhada ao método public void service(servletrequest req, ServletResponse res). 3. O service é retirado da memória através do método public void destroy(). Além dos três métodos apresentados acima, a interface ainda disponibiliza os seguintes métodos: getservletconfig: o servlet pode utilizar esse método para ler alguma informação de configuração. getservletinfo: método que permite ao servlet retornar informações básicas a respeito de si, tais como: autor, versão e copyright. O que distingue um HttpServlet de uma típica classe? Uma cubclasse de HttpServlet precisa sobre-escrever pelo menus um dos métodos abaixo: doget, Se o servlet suporta uma solicitação HTTP GET. dopost, para a solicitação HTTP POST doput, para a solicitação HTTP PUT dodelete, para a solicitação HTTP DELETE. init e destroy, para genrenciar os revursos. getservletinfo, método utilizado pelo servlet para fornecer informações a respeito de si mesmo. Não há necessidade de sobre-escrever o método service. Service está associado às solicitações HTTP que podem ser definidas pelos métodos doxxx já apresentados.

3 Código Java de um de exemplo de HttpServlet 1. package javanaweb.servlets.httpservlets; 2. import java.io.ioexception; 3. import java.io.printwriter; 4. import javax.servlet.*; 5. import javax.servlet.http.httpservlet; 6. import javax.servlet.http.httpservletrequest; 7. import javax.servlet.http.httpservletresponse; 8. public class MeuPrimeiroHttpServlet extends 9. javax.servlet.http.httpservlet 10. { 11. public void destroy() {} 12. public ServletConfig getservletconfig() 13. {return null;} 14. public String getservletinfo() {return null;} 15. public void init(servletconfig config) {} 16. public void doget(httpservletrequest req 17., HttpServletResponse resp) 18. throws IOException, ServletException 19. {dopost(req,resp);} Comentários: 20. public void dopost(httpservletrequest req 21., HttpServletResponse resp) 22. throws IOException, ServletException 23. { resp.setcontenttype("text/html"); 24. PrintWriter out = resp.getwriter(); 25. out.println("<html>" 26. + "<title>meuprimeiroservlet</title>" 27. + "<body>"); 28. out.println("monta a página html"); 29. out.println("</body></html>"); 30. out.close(); 31. } 32. } O resultado da compilação do Servlet necessita ser armazenado dentro da pasta web-inf\classes com a mesma estrutura de diretório definida no pacote. Se durante a compilação, o JCreator forneceu a seguinte mensagem de erro abaixo, você deverá indicar para o ambiente JCreator aonde localiza-se o pacote necessário. A Seção 13 deste material apresenta como indicar o pacote para o JCreator.

4 Figura 1-Mensagem de erro de ausência de pacote A primeira linha do código anterior define essa estrutura. A Figura abaixo ilustra essa característica. Figura 2-Estrutura de Diretório Sugerida para os Servlets Antes da execução do HttpServlet, algumas linhas necessitam ser inseridas no arquivo web.xml para informar ao servidor a existência desse servlet. O código em negrito a seguir necessita ser adicionado ao arquivo web.xml. <servlet> <servlet-name> </servlet-name> MeuPrimeiroHttpServlet <servlet-class> javanaweb.servlets.httpservlets.meuprimeiro HttpServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> MeuPrimeiroHttpServlet

5 </servlet-name> <url-pattern>/meuservlet </url-pattern> </servlet-mapping> A execução do Servlet Figura 3-Exemplo de Execução do Servlet MeuServlet 12. Servlets e Documentos JSPs. Os Servlets podem trabalhar juntos com as páginas JSPs. No próximo exemplo apresenta-se uma forma de integração. O código a seguir ilustra o comportamento de uma página JSP. Figura 4-Código do Arquivo fatorialdenovo.jsp Nesse código, a variável recebe lê o atributo numero como um objeto. Esse atributo será enviado por um Servlet. O método getattribute(string) é similar ao

6 getparameter(string). A diferença é que o getattribute recebe qualquer tipo de informação e não apenas String como o getparameter(). A página JSP definida na Figura 4, não foi projetada para ser chamada diretamente. Ela foi projetada para ser chamada por um servlet. 12.1 Código do Servlet Figura 5-Código do Servlet CalculaFatorial Quando o servlet é chamado pelo método post ou get, ele cria um objeto inteiro (Integer) com um número e coloca no objeto instância de HttpServletRequest uma chave denominada por numero (linas 30 e 31 do código da Figura 5). A instância do objeto RequestDispatcher (mecanismo de localização de páginas JSPs e servlets) referenciará a página JSP desejada (linha 34 do código da Figura 5) e encaminha a solicitação para ela (linha 35 do código da Figura 5). É importante destacar que não há nenhuma instrução out.println(). A informação é gerada dinâmicamente pelo servlet, a página JSP apenas apresenta a informação. O servlet para ser executado necessita ser definifo no arquivo web.xml. A Figura 6 exemplifica essa definição.

7 Figura 6-Configuração do Arquivo web.xml Ao ser executado, a seguinte página dinâmica podem ser geradas: Figura 7-Exemplos de Execução do Serlvet CalculaFatorial

8 12.2 Servlets como mecanismo de tomada de decisão. Um dos principais empregos de um servlet em uma aplicação é o de decidir o que apresentar ao usuário. Será apresentado um exemplo de como o Servlet pode selecionar uma página de acordo com alguma decisão lógica. Figura 8-Lógica do Servlet Conforme ilustrado na Figura 8, o Servlet lerá um parâmetro chamado codigo. Se esse parâmetro não foi fornecido pelo usuário, o seu valor será null. Se isso acontecer, o servlet montará uma página HTML para o usuário fornecer o código. Se o usuário já forneceu um código, esse parâmetro é comparado com o número 1 e 2. Cada um desses valores correspodem a uma página JSP vista durante o curso. A representação da lógica da Figura 8 está em negrito no código abaixo. O código para esse servlet é apresentado no quadro abaixo. 1. //////////////////////////////// arquivo ServletGeral.java 2. package javanaweb.servlets; 3. import java.io.ioexception; 4. import java.io.printwriter; 5. import javax.servlet.*;

9 6. import javax.servlet.http.httpservlet; 7. import javax.servlet.http.httpservletrequest; 8. import javax.servlet.http.httpservletresponse; 9. public class ServletGeral 10. extends javax.servlet.http.httpservlet 11. { 12. public void destroy() {} 13. public ServletConfig getservletconfig() {return null;} 14. public String getservletinfo() {return null;} 15. public void init(servletconfig config) {} 16. public void doget(httpservletrequest req 17.,HttpServletResponse resp) throws IOException 18., ServletException 19. { dopost(req,resp); } 20. public void dopost(httpservletrequest req 21.,HttpServletResponse resp) throws IOException 22., ServletException 23. { 24. String parametro = req.getparameter("codigo"); 25. if (parametro==null) 26. { 27. resp.setcontenttype("text/html"); 28. PrintWriter out = resp.getwriter(); 29. out.println("<html><body>"); 30. out.println("<form method=\'post\'>"); 31. out.println("<br>codigo:<input type=\'text\' " 32. + "name=\'codigo\' size=3>");

10 33. out.println("<input type=\'submit\' value=\'enviar'> " 34. + "</form>"); 35. out.println("</body></html>"); 36. out.close(); 37. } 38. else 39. { 40. if (parametro.trim().equals("1")) 41. { int n = (int)math.round(10*math.random()+1); 42. req.setattribute("numero",new Integer(n)); 43. String pagina = "./jsp/fatorialdenovo.jsp"; 44. RequestDispatcher saida = 45. req.getrequestdispatcher(pagina); 46. saida.forward(req,resp); 47. } 48. else if (parametro.trim().equals("2")) 49. { 50. RequestDispatcher saida = 51. req.getrequestdispatcher("./jsp/index.jsp"); 52. saida.forward(req,resp); 53. } 54. } 55. } 56. } Destaca-se novamente a necessidade de modificação do arquivo web.xml. A Figura 9 enfatiza o trecho de código que necessita ser inserido no arquivo web.xml.

11 Figura 9-Trecho de Código que Necessita ser Inserido no Arquivo web.xml A execução do Servlet é apresentada a seguir Figura 10-Execução do ServletGeral

12 13. Configuração do JCreator Se durante a compilação de um servlet o JCreator forneceu a mensagem de erro da Figura 11, isso ocorreu porquê o JCreator não localizou a biblioteca javax.servlet. Figura 11-Mensagem de Erro do JCreator Há a necessidade de informar ao ambiente o local onde a biblioteca está aramzenada. No elemento de menu Project, selecione a opção Project Settings. Na janela que será apresentada, selecione a guia Required Libraries e pressione o botão New.... A Figura 12 ilustra a nova janela que será apresentada. Figura 12-Interface para definição de Pacotes Selecione a opção Add Package... conforme ilustrado na Figura 12 e em seguida indique o pacote servlet-api.jar armazenado no diretório common\lib do TomCat, conforme ilustrado nas Figuras 13 e 14. A Figura 15 ilustra a finalização da configuração do JCreator para acessar pacotes externos.

13 Figura 13-Diretório onde o pacote está localizado Figura 14-Pacote a ser selecionado

14 Figura 15-Finalização da definição de bibliotecas a serem utilizadas no projeto 14. O que estudar a partir de agora? Durante esse curso, através de quatro tutoriais, foi introduzido alguns aspectos da tecnologia Java para a produção de sites dinâmicos. Outros aspectos e avanços tecnológicos

15 apresentados pela tecnologia Java são interessantes e recomenda-se ao programador Java conhecê-los. Como recomendação de uma possível continuidade deste estudo, recomenda-se o seguinte livro: Java EE 5: guia prático: Scriptles, Servlets e JavaBeans. Autor: Kleitor Frankilnt Correa de Araújo. Editora: Érica SP, 2006.