Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Robson Soares Silva ([email protected]) - graduado em Ciência da Computação pela UFMS, com pós-graduação em Análise de Sistemas pela UFMS e Mestrado em Sistemas Distribuídos pela UFRGS. Professor da UNIDERP/ANHANGUERA dos cursos de Ciência e Engenharia da Computação e Tecnologia em Análise e Desenvolvimento de Sistemas. Criação de uma aplicação usando Servlets Neste tutorial demonstra-se a criação de aplicação que faz a leitura de dois números e efetua a chamada a uma Servlet que mostra a soma dos números lidos. O que é um servlet? Servlet é um programa que estende a funcionalidade de um web server, gerando conteúdo dinâmico e interagindo com os clientes, utilizando o modelo request/response. Os servlets não são restritos ao modelo HTTP de request/response, mas esse é o modelo mais comumente utilizado. Arquitetura de um Servlet Todos os servlets implementam direta ou indiretamente a interface Servlet. O mais comum é o servlet dar extends na HttpServlet (que implementa a interface Servlet). A interface Servlet fornece métodos para gerenciamento do servlet e sua comunicação com clientes. Quando um servlet aceita uma chamada do cliente, ele recebe dois objetos: ServletRequest e ServletResponse. A classe ServletRequest encapsula a comunicação do cliente com o servidor, enquanto a ServletResponse encapsula a comunicação do servidor com o cliente. A ServletRequest permite que o servlet acesse informações como os nomes dos parâmetros passados pelo cliente, o protocolo usado pelo mesmo e o nome do host que fez o chamado ao servidor. Ela também permite que o servlet acesse um inputstream - o ServletInputStream - através do qual o servlet recebe dados do cliente. As subclasses da ServletRequest permitem ao servlet obter dados mais específicos, como informações do cabeçalho http. A ServletResponse fornece ao servlet métodos para responder ao cliente. Ela permite que o servlet defina o tamanho do conteúdo e seu mime type, fornece uma OutputStream - a ServletOutputStream - e tanbém um Writer, através dos quais o servlet poderá enviar respostas ao cliente. As subclasses da ServletResponse fornecem ao servlet mais capacidades específicas em relação ao protocolo, como manipular o cabeçalho HTTP da resposta. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Precisamos ter instalado: Jdk1.6 Tomcat 6 Eclipse (eclipse-jee-ganymede-SR1-win32) O primeiro passo é Configurar o Tomcat no Eclipse , na opção Window – Preferences. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Criação da Aplicação Passo 1 – Selecionar a opção New do Menu e Dynamic Web Project. Servlets Prof. Robson Soares Silva Passo 2 – Nome do Projeto Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Acessar o dreamweaver para criar o código HTML para nossa aplicação Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Deve-se copiar o código HTML gerado no dreamweaver para o index.html do projeto no Eclipse. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 No action deve-se configurar a Servlet que será chamada, neste caso coloca-se SomarNumeros. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Agora sim, chegou o momento de criarmos a Servlet, que vai receber os dois números lidos e mostrar a soma dos dois. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 No método doPost vamos colocar o código abaixo: response.setContentType("text/html"); PrintWriter out = response.getWriter(); Double numero1 = Double.parseDouble(request.getParameter("n1")); Double numero2 = Double.parseDouble(request.getParameter("n2")); Double soma = numero1 + numero2; out.write("<html>"); out.write("<head>"); out.write("<title> Soma dos Números </title>"); out.write("</head>"); out.write("<body>"); out.write("<h1> Soma dos Números: " + soma + "<h1>"); out.write("</body>"); out.write("</html>"); out.close(); Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Para executar a aplicação Na página Server, clicar o direito do mouse. E seguir as figuras mostradas a seguir. Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009 Servlets Prof. Robson Soares Silva Aula: 12/02/2009