Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
AN02FREV001/REV 3.0 1 PROGRAMA DE EDUCAÇÃO CONTINUADA A DISTÂNCIA Portal Educação CURSO DE JAVA NAS TECNOLOGIAS JSP/SERVLET JSP Aluno: EaD - Educação a Distância Portal Educação AN02FREV001/REV 3.0 2 CURSO DE JAVA NAS TECNOLOGIAS JSP/SERVLET JSP MÓDULO I Atenção: O material deste módulo está disponível apenas como parâmetro de estudos para este Programa de Educação Continuada. É proibida qualquer forma de comercialização ou distribuição do mesmo sem a autorização expressa do Portal Educação. Os créditos do conteúdo aqui contido são dados aos seus respectivos autores descritos nas Referências Bibliográficas. AN02FREV001/REV 3.0 3 SUMÁRIO MÓDULO I 1 FUNDAMENTOS PARA PROGRAMAÇÃO NA WEB 1.1 INTRODUÇÃO 1.2 HISTÓRICO E EVOLUÇÃO DAS LINGUAGENS WEB 1.3 SERVLETS? 1.4 JSP? 1.5 SERVLET X JSP 1.6 SERVIDOR DE APLICAÇÃO WEB: TOMCAT 1.7 ANTES, UMA PALAVRA SOBRE JEE 2 INFRAESTRUTURA 2.1 JAVA 2.2 AMBIENTE DE DESENVOLVIMENTO: ECLIPSE 2.3 TOMCAT: ESTRUTURA DE DIRETÓRIOS 2.4 TOMCAT: INICIANDO 2.5 TOMCAT: ENCERRANDO 2.6 TOMCAT: LOGS 2.7 INCLUINDO BIBLIOTECAS NECESSÁRIAS NO ECLIPSE MÓDULO II 3 CONSTRUINDO A PRIMEIRA APLICAÇÃO 3.1 MONTANDO A ESTRUTURA DE DIRETÓRIOS 3.2 CRIANDO O PRIMEIRO SERVLET 3.3 CRIANDO O ARQUIVO WEB.XML 3.4 MONTANDO UM MAPEAMENTO NO WEB.XML 3.5 GERANDO E DISPONIBILIZANDO COM O ANT 3.6 O EMPACOTAMENTO WAR 3.7 EXECUTANDO A APLICAÇÃO AN02FREV001/REV 3.0 4 MÓDULO III 4 SERVLETS 4.1 HIERARQUIA DE ENTIDADES 4.2 A CLASSE HTTPSERVLET 4.3 UMA PALAVRA RÁPIDA SOBRE REQUISIÇÕES GET E POST 4.4 DEFININDO UMA QUERY STRING 4.5 FORMULÁRIOS HTML, UMA REVISÃO 4.6 REQUISIÇÕES E RESPOSTAS 4.7 RECUPERANDO INFORMAÇÕES PASSADAS COMO PARÂMETRO 4.8 ESCREVENDO CONTEÚDO NA SAÍDA PADRÃO 4.9 ARMAZENANDO OBJETOS NA REQUISIÇÃO 4.10 CONFIGURANDO INFORMAÇÕES INICIAIS MÓDULO IV 5 A TECNOLOGIA JSP 5.1 CRIANDO UM ARQUIVO JSP 5.2 TRADUÇÃO DE JSP PARA UM SERVLET 5.3 TRABALHANDO COM SCRIPTLETS 5.4 SÍMBOLO DE RETORNO DIRETO 5.5 A DIRETIVA PAGE 5.6 OBJETOS PADRÃO EM UM ARQUIVO JSP 5.7 REDIRECIONANDO A RESPOSTA 5.8 EXPRESSION LANGUAGE (EL) MÓDULO V 6 USANDO TAGS ESPECIAIS DENTRO DO JSP 6.1 JSTL 6.2 INCLUINDO UMA REFERÊNCIA PARA OS DESCRITORES 6.3 ESCREVENDO NA SAÍDA PADRÃO USANDO O <C:OUT> 6.4 ESCREVENDO CONDIÇÕES COM O <C:IF> AN02FREV001/REV 3.0 5 6.5 PERCORRENDO UMA COLEÇÃO USANDO O <C:FOREACH> 6.6 COMO EXPLORAR MAIS ESSE UNIVERSO 7 TAGS CUSTOMIZADAS 7.1 CRIANDO O ARQUIVO DESCRITOR 7.2 VINCULANDO O ARQUIVO DESCRITOR AO PROJETO 7.3 USANDO A TAG DEFINIDA EM UM ARQUIVO JSP 7.4 DEFININDO A CLASSE QUE REPRESENTA UMA TAG MÓDULO VI 8 TRABALHANDO COM A SESSÃO DO USUÁRIO E FILTROS 8.1 SESSÃO 8.2 CRIANDO E USANDO UMA SESSÃO 8.3 ALTERANDO A CONFIGURAÇÃO DE UMA SESSÃO 8.4 FINALIZANDO UMA SESSÃO 9 FILTROS 9.1 CRIANDO O CÓDIGO DE UM FILTRO 9.2 MAPEAMENTO DE UM FILTRO 9.3 UMA PALAVRA A MAIS SOBRE O PADRÃO DE PROJETO FILTER MÓDULO VII 10 REUNINDO TODOS OS CONCEITOS EM UMA APLICAÇÃO DE EXEMPLO 10.1 APLICAÇÃO DE EXEMPLO PROGRAMADA EM CAMADAS 10.1.1 Definindo os requisitos 10.2 TELA INICIAL DE LOGIN 10.3 CONFIGURANDO O WEB.XML 10.4 O PADRÃO DE PROJETO MVC 10.5 CONTROLANDO O FLUXO EM UMA SERVLET 10.6 CAMADA DE NEGÓCIO E DESTINO DA REQUISIÇÃO 10.7 RECUPERANDO O USUÁRIO DO BANCO DE DADOS AN02FREV001/REV 3.0 6 10.8 IMPEDINDO O ACESSO COM FILTROS 10.9 PERMITINDO AO USUÁRIO SAIR REFERÊNCIAS BIBLIOGRÁFICAS AN02FREV001/REV 3.0 7 MÓDULO I 1 FUNDAMENTOS PARA PROGRAMAÇÃO NA WEB 1.1 INTRODUÇÃO Com o surgimento e crescimento da Internet, esta passou de exclusividade da academia e defesa e passou a fazer parte do dia a dia do grande público, oferecendo entretenimento, serviços e comunicação a um baixo custo e velocidades cada vez maiores. Inicialmente os aplicativos disponíveis restringiam-se a sites de conteúdo fixo, estático, em que pouca ou nenhuma interação era possível ou se fosse, o custo e tempo de desenvolvimento eram muito grandes. Tendo essa necessidade cada vez maior de construir sistemas e páginas que oferecessem conteúdo dinâmico e personalizado para o usuário, unindo a facilidades de desenvolvimento e curvas de aprendizado cada vez menores, é que todo um conjunto de linguagens de programação e paradigmas de desenvolvimento de software foi surgindo. Neste ponto, o HTML não era mais suficiente para atender a todas as necessidades, ficando com o papel de exibição de conteúdo e deixando a lógica de negócio para o servidor. Desta forma, o servidor deixou de ser apenas uma entidade que recebe requisições e devolve alguma página (ainda que ele continue também com esse papel), mas passou a conter módulos que quando invocados realizavam algum processamento e devolviam um resultado, o que na maioria das vezes era HTML para ser exibido no navegador do usuário, mas poderia ser também um arquivo ou imagem para download, por exemplo. Programar para a web significa ter esses princípios muito bem delimitados, saber onde uma determinada programação vai afetar e como unir AN02FREV001/REV 3.0 8 as diversas tecnologias em torno de um objetivo. Sempre teremos um servidor em algum lugar que será o responsável por interceptar uma requisição, invocar algum código que faz um processamento, montar uma resposta e devolver o resultado a quem o invocou, tendo sempre em mente que essa exibição será feita na máquina do usuário, sofrendo todas as restrições tecnológicas ou impactos que esse aspecto possa ter. 1.2 HISTÓRICO E EVOLUÇÃO DAS LINGUAGENS WEB Inicialmente, a programação do lado servidor estava restrita à plataforma CGI (Common Gateway Interface), que possui acesso ao sistema servidor, podendo acessar diversos recursos e memória do ambiente. O aspecto negativo dela é que todo esse poder, caso seja mal usado, impacta diretamente no computador como um todo, pois se algum erro for inserido no código, ainda que involuntariamente, ele poderia derrubar o computador inteiro e não somente a aplicação, trazendo prejuízo para outras aplicações e nem sempre conseguindo se restabelecer sozinho. Em geral, esse código era escrito na linguagem C, compilada e gerando executáveis específicos para a arquitetura em que seria executado. Passados alguns anos e observando-se a necessidade cada vez maior de se ter linguagens de programação que suportassem o desenvolvimento do lado do servidor, que fossem mais seguras para o desenvolvimento e cuja curva de aprendizado fosse menor, outras linguagens de programação foram surgindo, como é o caso do PHP e Perl, duas linguagens interpretadas, em que a compilação não é necessária e cuja curva de aprendizado é bem menos inclinada. O problema destas linguagens estava mais no campo da escalabilidade, imaginando que os sistemas estavam cada vez maiores. Ainda que existam sistemas grandes usando essas duas tecnologias, poucos são de missão crítica ou que possuam muitos acessos concorrentes. Entrando em AN02FREV001/REV 3.0 9 sequência neste mercado aparece a Microsoft com a sua linguagem ASP, com um comportamento próximo do encontrado nas linguagens Perl e PHP e a Sun com a plataforma Java e as primeiras versões do seu JSP/Servlet. 1.3 SERVLETS? A tecnologia Servlet é como se programa na web utilizando a tecnologia Java, a partir de alguns adendos e complementos que a linguagem principal oferece, com suporte a requisições e demais elementos necessários para se programar nesta perspectiva. Existem alguns padrões e regras a serem seguidas para se programar usando esta perspectiva, mas a tendência é que ao seguir esses padrões toda a programação se torne mais estruturada e fácil de dar manutenção que em outras tecnologias, como PHP ou ASP. Diferente das páginas JSP, aqui o foco está nos objetos que irão fazer parte das regras de negócio do sistema do usuário, ainda que possa ser escrito também o HTML resultante diretamente nestes elementos. Em geral, sistemas web escritos em Java fazem uso desta e da tecnologia de JSP para se alcançar ao objetivo de escrever páginas de conteúdo dinâmico. 1.4 JSP? Ainda que em uma primeira vista JSP e Servlets sejam diferentes, elas são apenas distintas formas de escrever um código buscando alcançar um mesmo objetivo. O termo JSP é a sigla para Java Server Page, outra maneira de escrever código Java para se programar na perspectiva web, só que neste momento o elemento principal é o HTML e não os objetos da página, facilitando a escrita de interfaces gráficas inteligentes e adaptáveis ao universo do usuário. AN02FREV001/REV 3.0 10 Na tecnologia central de uma página JSP está a linguagem de marcação HTML (Hypertext Markup Language) que serve para formatar o conteúdo que está sendo exibido na tela, só que ela quando usada sozinha não oferece qualquer recurso de lógica ou regras de negócio, servindo apenas para formatação baseada em marcas (também chamadas de tags), daí a necessidade de inserir algum recurso, do lado do servidor, que ofereça esses recursos que faltam a ela. Desta forma, ao juntar o HTML para formatação com a tecnologia Java, o recurso de montar uma tabela dinâmica ou escrever alguma informação de objetos do lado servidor fica facilitado. Como juntar as duas tecnologias, mas tendo o foco principal o HTML, é papel das páginas JSP, serão traduzidos e reduzidos a um Servlet, que trata as requisições feitas para um servidor de aplicação e em seguida tratadas para oferecer algum recurso de volta ao cliente, que normalmente é representado por um navegador (como o Microsoft Internet Explorer ou o Mozila Firefox). 1.5 SERVLET X JSP É praticamente impossível escrever qualquer sistema que faça uso de uma abordagem e não da outra, pois elas caminham juntas, cada qual com seu foco. Pode-se resumir o papel de cada uma da seguinte forma: Servlets JSP Foco principal: controle de fluxo Foco principal: apresentação HTML escrito em código Java Código Java escrito em HTML Sintaxe Java completa Sintaxe Java e mais elementos específicos Ambas as tecnologias fazem uso principal da sintaxe Java encontrada em qualquer programa que possamos ter, com a diferença de que será AN02FREV001/REV 3.0 11 necessário fazer uso de todo o conjunto específico de classes e interfaces que foram projetadas para oferecer suporte à programação web. No caso específico do JSP, existem ainda algumas variações de sintaxe que buscam facilitar a posterior manutenção de códigos escritos, tendo como foco a interface gráfica do usuário. 1.6 SERVIDOR DE APLICAÇÃO WEB: TOMCAT Durante todo o treinamento precisaremos usar um servidor de aplicações web para testar nossos programas de exemplo. Para a tecnologia JSP/Servlets, o servidor mais utilizado hoje no mundo é o Apache Tomcat, que deriva do projeto do servidor web Apache, só que escrito para oferecer suporte à tecnologia da Sun, seguindo toda a especificação escrita. Neste ponto, vale dizer que a Sun no momento da criação da tecnologia JSP/Servlets definiu um documento contendo a especificação dela, significando a maneira como a Sun entendia tecnologia e como ela deveria ser implementada pelas empresas que quisessem oferecer suporte a ela. Em seguida, ela passou a certificar os servidores que foram surgindo como seguidores ou não da sua especificação, garantindo uma visão padronizada da sua tecnologia. Neste caso, o Tomcat é o chamado servidor de referência, por seguir toda a especificação e ser reconhecido pela Sun como tal. Ele pode ser obtido gratuitamente do site da Apache e por ser um software livre, seu código-fonte pode ser obtido e alterado livremente. Além disso, ele é usado em servidores de aplicação que oferecem suporte à tecnologia JEE (Java Enterprise Edition) como o JBoss, que o utilizam como servidor para o tratamento de requisições web. Antes de prosseguir, portanto, vá até o site da Apache (http://tomcat.apache.org/) baixe o arquivo compactado na versão 5.x (no momento da confecção deste material, a versão de produção mais atual era a AN02FREV001/REV 3.0 12 5.5.29), descompacte-o em um diretório em que você tenha acesso para posterior acesso e manipulação, pois ele será muito utilizado durante todo o treinamento para que possamos testar nossos programas. Dentre as várias opções de executáveis que ele oferece na página de download, deve ser baixada a versão que aponta para a opção Core, que significa todo o necessário para nossas execuções. Obtenha o arquivo zipado (existem as opções em tar.gz e instalador para Windows), pois esta acaba sendo a mais simples de ser manipulada. O arquivo não tem mais que nove megabytes de tamanho. 1.7 ANTES, UMA PALAVRA SOBRE JEE O termo JEE que surgiu no capítulo anterior merece uma explicação, pois ele representa um dos três caminhos ou divisões que hoje existem dentro das tecnologias Java. Ele se refere à Java Enterprise Edition ou de forma geral e bem aberta à programação usando servidores. Neste aspecto, a programação web é apenas uma das possibilidades, pois o termo JEE acaba sendo mais amplo, pois traz também os componentes de negócio, os EJB (Enterprise Java Beans). Esses EJBs são componentes Java que possuem basicamente regras de negócio que servem para executar alguma tarefa específica sem estar ligada diretamente a uma interface gráfica, seja ela Web, Desktop ou móvel, podendo interagir com qualquer uma delas. O Tomcat, como servidor de aplicações web, não oferece suporte aos EJBs, mas apenas à tecnologia JSP/Servlets. Para a execução desses objetos de negócio é necessário o uso de um servidor de aplicações, em um contexto mais amplo. Atualmente, o servidor JBoss é o mais utilizado no mundo para oferecer suporte aos EJBs e este traz dentro de si um servidor Tomcat para tomar conta da parte web. Disso, podemos concluir que a especificação JEE engloba a especificação web, AN02FREV001/REV 3.0 13 gerando uma solução muito mais ampla para estas soluções completas. Além do JBoss, outros servidores que possuem relevância e alcance do mercado são o Glassfish, que é da própria Sun e é utilizado como implementação de referência para servidores JEE, o Weblogic, que era da BEA até que esta foi comprada pela Oracle, fazendo parte da família de produtos Oracle (e como a Sun foi comprada pela Oracle, então esta acabou trazendo para si os dois servidores) e o Geronimo, que é do projeto Apache. Dito tudo isso, neste momento o que nos importa é apenas a parte web da especificação de programação para servidores, portanto será necessário baixar e rodar apenas o Tomcat para nossos futuros testes. 2 INFRAESTRUTURA 2.1 JAVA Ainda que o servidor de aplicações que iremos utilizar seja o Tomcat, para que este funcione e possa executar nossos arquivos ou mesmo para compilar nossos arquivos (lembrando que todo o código, ainda que tenha bibliotecas especiais é Java) é preciso ter instalado na máquina de trabalhar uma versão do Java igual ou superior à versão 5.0, que já traz uma série de novos recursos e facilidades. Ele pode ser obtido diretamente do site da Sun (http://java.sun.com/javase/downloads/widget/jdk6.jsp) e não possui custo. Vale lembrar que é necessário baixar o JDK (Java Development Kit), pois é com ele que conseguiremos compilar e não somente executar programas em Java. Será necessário fazer toda a configuração para que os demais programas possam ser executados corretamente. Para testar se esta instalação ocorreu corretamente, abra uma janela command (isso pode ser feito digitando cmd em Iniciar > Executar) e digite o AN02FREV001/REV 3.0 14 comando javac, conforme a figura abaixo: FIGURA 1 - INSTRUÇÕES PARA UM COMANDO JAVAC FONTE: Disponível em: <http://java.sun.com/javase/downloads/widget/jdk6.jsp>. Acesso em: 02/07/2010 Ainda que o comando executado não receba nenhum argumento, será mostrada uma série de instruções de ajuda para a execução correta posterior, mas isso indica que o programa foi corretamente instalado, pois se ocorreu algum problema na instalação, será mostrada a mensagem de comando não encontrado. 2.2 AMBIENTE DE DESENVOLVIMENTO: ECLIPSE Para se desenvolver sistemas comerciais, possuir alguma ferramenta que facilite o processo é fundamental. Para Java, existem diversas, mas uma que ganha cada vez mais destaque é a ferramenta chamada Eclipse, que traz AN02FREV001/REV 3.0 15 enormes benefícios ao desenvolvimento. Atualmente ela está em sua versão 3.5, chamada Galileo. Ela pode ser obtida gratuitamente do site do projeto (http://www.eclipse.org/downloads/) e para começar o seu uso, basta descompactá-la e dar um duplo clique no executável principal, que fica dentro da página principal criada. Ao iniciar a execução do mesmo, deve-se aparecer a seguinte tela: FIGURA 2 - TELA DE ABERTURA DA IDE ECLIPSE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Sendo que o nome que aparece do termo Eclipse pode variar conforme a versão obtida. Em seguida, será pedido para o usuário informar onde deseja que seja definido o chamado workspace, que é o diretório onde os arquivos dos projetos deverão ser salvos. No momento, pode ser escolhida qualquer pasta do sistema de arquivos do usuário. O Eclipse é um dos exemplos de IDE (Integrated Development Environment) que poderia ser traduzido para Ambiente de Desenvolvimento Integrado, por integrar todas as ferramentas necessárias para facilitar o desenvolvimento das aplicações. Talvez atualmente ela seja a mais famosa e AN02FREV001/REV 3.0 16 utilizada no mundo para desenvolvimento Java, mas existem diversas outras muito boas que também podem ser utilizadas, como o Netbeans da própria Sun ou o JBuilder da CodeGear. No caso do Eclipse existe um conjunto de empresas que mantém o projeto, liderados pela IBM. O importante de tudo isso é escolher alguma ferramenta para este tipo de desenvolvimento para tornar todo o processo mais simples para a equipe. FIGURA 3 - ESCOLHA DO WORKSPACE PARA ESTA EXECUÇÃO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Repare na figura acima que é possível navegar na estrutura de diretórios utilizando o botão Browse da interface gráfica. Uma vez escolhido o caminho e apertado o botão “OK”, chega-se à seguinte tela: AN02FREV001/REV 3.0 17 FIGURA 4 - TELA INICIAL SEM PROJETOS DO ECLIPSE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 O ambiente principal reúne todas as facilidades para o desenvolvimento de projetos em Java. Essa interface gráfica pode variar de acordo com as extensões (chamadas plugins) que foram baixadas ou instaladas no ambiente. De forma geral, na esquerda ficam os projetos e a navegação pelos seus arquivos, no topo, os botões de ação, no centro, o código-fonte que está sendo editado e abaixo informações gerais e de execução de programas. Codificação usando o Eclipse funciona orientada a projetos, então antes de escrever qualquer código é necessário criar algum projeto Java com toda a sua infraestrutura mínima. Isso pode ser feito por meio de assistentes que o conduzem durante todo o processo. Iremos criar um projeto que posteriormente será utilizado para os exemplos de JSP/Servlets. Vá em “File > New > Java Project”. AN02FREV001/REV 3.0 18 FIGURA 5 - CRIANDO UM NOVO PROJETO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Será aberto o seguinte assistente: FIGURA 6 - DEFININDO UM NOME PARA O PROJETO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 AN02FREV001/REV 3.0 19 Neste caso, o nome do projeto dado foi PortalEducacao, mas poderia ter sido qualquer termo que trouxesse significado para o projeto em questão. Todas as demais configurações são mantidas, inclusive o caminho de onde o projeto deve ser salvo e que corresponde ao workspace originalmente escolhido. Finalizado este preenchimento, clica-se no botão “Next”, para ir para a próxima página do assistente. FIGURA 7 - TELA DE CONFIGURAÇÃO DO PROJETO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Na página seguinte existe uma série de outras configurações que no momento serão mantidas como estão. O próximo passo é apertar o botão “Finish” para a conclusão do assistente. AN02FREV001/REV 3.0 20 FIGURA 8 - NOVO PROJETO CRIADO NA ABA DA ESQUERDA FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Na aba da esquerda aparece agora o projeto que acabamos de criar, com o nome e arquivos básicos necessários para a compilação e execução de qualquer projeto em Java. Vale destacar que todo o arquivo Java que for criado deve ser colocado dentro da pasta src. Para fins de teste, vamos criar um arquivo para verificar se tudo está funcionando corretamente. Clicando com o botão direito sobre a pasta src, escolha “New > Class”. AN02FREV001/REV 3.0 21 FIGURA 9 - CRIANDO UMA NOVA CLASSE PELO ASSISTENTE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Será aberto o seguinte assistente: FIGURA 10 - DADOS PARA A NOVA CLASSE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 AN02FREV001/REV 3.0 22 Foi dado um nome para a classe e em seguida apertado o botão “Finish”. FIGURA 11 - EXIBINDO OS DADOS DA NOVA CLASSE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Uma vez criado o arquivo ele aparece na parte da esquerda, dentro do diretório src, no pacote padrão (já que nenhum foi informado) e com a listagem dos métodos que devem fazer parte dele. Ao abrir o arquivo criado, o seu conteúdo aparece no centro, no editor principal, já com as palavras reservadas destacadas, facilitando o desenvolvimento. Foi escrito o comando System.out.println(), que imprime algum texto no terminal e ao mandar executar o comando, o resultado é mostrado na parte inferior, na aba chamada Console. Uma das grandes facilidades do uso de um ambiente como esse é concentrar em um mesmo lugar todas as informações necessárias para o desenvolvimento. Outro recurso muito interessante que esses ambientes trazem é a compilação on-line, ou seja, caso algum erro de compilação seja identificado, ele já é mostrado durante a edição do arquivo. Veja a próxima AN02FREV001/REV 3.0 23 imagem, que força um erro: FIGURA 12 - MOSTRANDO COMO OS ERROS SERÃO MOSTRADOS FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 No exemplo acima, o erro foi forçado ao remover o ponto e vírgula do final do comando. Imediatamente, o compilador acusou o erro e o ambiente de desenvolvimento marcou a linha como errada e indicou o erro que o compilador encontrou para ela. Com isso, eventuais correções não precisam esperar até que a compilação efetivamente seja disparada, ganhando em muito o tempo de desenvolvimento. 2.3 TOMCAT: ESTRUTURA DE DIRETÓRIOS Uma vez descompactado o conteúdo do arquivo baixado para o Tomcat, deve-se ter uma estrutura diretórios parecida com a seguinte: AN02FREV001/REV 3.0 24 Diretório Significado bin Possui os executáveis necessários para disparar a execução e demais tarefas do servidor. common Armazena todos os componentes comuns às diversas aplicações que serão instaladas no sistema. conf Diretório com as configurações do servidor e das aplicações nele instalados. logs Guarda os arquivos de log. server Arquivos que servem para o sistema funcionar. shared Arquivos compartilhados por todo o servidor para ele funcionar. temp Arquivos temporários criados durante a execução. webapps Diretório em que as aplicações web devem ser instaladas para poderem ser executadas. É o diretório principal para o nosso treinamento e onde iremos gastar a maior parte do tempo. work Arquivos temporários criados durante a execução. Como já mencionado acima, o diretório de nosso maior interesse vai ser o chamado webapps, pois todas as aplicações web (web applications) ficarão localizadas ali dentro. Outro diretório de interesse para o treinamento vai ser o diretório bin, pois é lá que ficam os executáveis para iniciar o funcionamento do servidor. Posteriormente, caso seja necessário referenciar o diretório de instalação do Tomcat, ele será chamado de {TOMCAT_HOME}. AN02FREV001/REV 3.0 25 2.4 TOMCAT: INICIANDO Para começar o servidor de aplicações é necessário chamar o executável startup.bat no Microsoft Windows (num ambiente Linux existe o equivalente startup.sh, esse é o único ponto que varia de sistema operacional para sistema operacional, pois todo o resto é comum). Dar um duplo clique nele faz com que o servidor de aplicações seja iniciado. FIGURA 13 - INFORMAÇÕES DE INICIALIZAÇÃO DO TOMCAT FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Ao clicar duas vezes no arquivo statup.bat, inicia-se uma tela prompt onde é escrito tudo que está acontecendo com o servidor. A linha final mostra que o servidor subiu e gastou próximo de dois segundos para isso. Uma das AN02FREV001/REV 3.0 26 características do Tomcat é a sua velocidade para inicialização. Para verificar se a inicialização ocorreu corretamente e o servidor está funcional, pode-se digitar o endereço padrão para invocar a página inicial http://localhost:8080, resultando na seguinte página: FIGURA 14 - PÁGINA INICIAL DO TOMCAT QUANDO INICIADO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Esta é a página inicial do console, onde se pode obter outras informações do servidor e acessar os ambientes de auxílio ao desenvolvimento. Para tanto, usa-se como endereço para o navegador o endereço de acesso local, utilizando o protocolo HTTP, acessando a máquina local (o termo localhost é comum e utilizado mesmo em outras plataformas) e em uma porta específica, a 8080, que vem configurada por padrão e que eventualmente pode ser alterada para outro valor, caso seja desejado ou necessário, conforme a instalação em produção. AN02FREV001/REV 3.0 27 2.5 TOMCAT: ENCERRANDO Para finalizar a execução do Tomcat na plataforma Microsoft Windows, basta fechar a tela prompt aberta, que o processo será finalizado automaticamente (tentar abrir o endereço anterior faz com que um erro 404 de página não encontrada seja retornado). Já para um ambiente Linux, uma das maneiras mais diretas de encerrar o servidor é executar os seguintes comandos, nesta ordem: ps –ef | grep tomcat kill -9 <pid> O comando ps –ef retorna todos os processos rodando na máquina naquele momento. Em seguida, o comando grep filtra os comandos retornados, mantendo apenas aquele que tenha no nome tomcat. Os dois comandos são unidos pelo símbolo | (pipe). A linha mostrada traz um número inteiro que identifica o processo que o sistema operacional subiu na máquina. Já o comando kill -9 finaliza qualquer processo, assim, passando o código desejado, o processo é encerrado. 2.6 TOMCAT: LOGS Em qualquer aplicação, seja durante o desenvolvimento, seja durante sua utilização em produção, é fundamental o acompanhamento de como os arquivos de log estão se comportando, pois diversos erros ou situações de exceção podem estar sendo gravados ali ou ainda, caso algum erro aconteça, as razões para o problema podem estar sendo gravadas e trazem indícios de como resolvê-los. Por padrão, o Tomcat traz seus arquivos para esta finalidade no diretório logs. Para nossos propósitos, o arquivo mais importante que deve ser AN02FREV001/REV 3.0 28 monitorado sempre e mais ainda quando algum comportamento não esperado acontece é o chamado catalina. Seu padrão de nome é catalina.AAAA-MM- DD.log, sendo alterado sempre que passamos de um dia para outro. É nele que todos os erros e saídas padrão (incluindo o System.out.println()) são gravados. 2.7 INCLUINDO BIBLIOTECAS NECESSÁRIAS NO ECLIPSE Já foi mencionado anteriormente que para o desenvolvimento de aplicações web na perspectiva Java são necessárias algumas bibliotecas especiais, que trazem as classes e interfaces indispensáveis para este desenvolvimento. Para fazer isso, precisamos incluí-las no Eclipse, pois todo o desenvolvimento acontece lá e a ferramenta precisa estar preparada para reconhecer esses componentes especiais. Como o Tomcat também vai precisar dessas bibliotecas para executar os programas, ele já traz, dentro das suas bibliotecas comuns que todas as aplicações usam, essas bibliotecas, empacotadas em forma de arquivos.jar, uma extensão criada pela plataforma Java para facilitar a disponibilização de componentes, mas que nada mais é que um arquivo compactado que segue algumas regras e padrões. Para este material, faremos uso das bibliotecas servlet-api.jar e jsp- api.jar, sendo que ambas ficam dentro do diretório common/lib da instalação padrão do Tomcat. Para fazer a vinculação com o Eclipse, é necessário alterar a configuração padrão do projeto criado, clicando com o botão direito sobre a pasta raiz do projeto e escolhendo a opção Properties (última opção do menu). AN02FREV001/REV 3.0 29 FIGURA 15 - ALTERANDO AS PROPRIEDADES DE UM PROJETO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Será aberta uma tela de propriedades gerais do projeto. Deve-se procurar em seguida o item “Java Build Path” e depois a aba “Libraries”, como mostrado na próxima figura: FIGURA 16 - INCLUINDO NOVAS BIBLIOTECAS NO CLASSPATH DO PROJETO FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 AN02FREV001/REV 3.0 30 Na aba aberta, ao apertar o botão “Add External Jars...” será disponibilizado um assistente em que será possível encontrar, dentro do sistema de arquivos, os jars mencionados acima. FIGURA 17 - ESCOLHENDO OS .JAR DO PRÓPRIO TOMCAT FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Uma vez que o botão Abrir tenha sido selecionado, as bibliotecas aparecerão na lista de componentes disponíveis e prontos para serem utilizados pelo projeto como um todo. AN02FREV001/REV 3.0 31 FIGURA 18 - INDICAÇÃO DE COMO AS BIBLIOTECAS APARECERÃO NO ECLIPSE FONTE: Disponível em: <http://www.eclipse.org/downloads>. Acesso em: 02/07/2010 Para finalizar o processo, basta apertar o botão “OK”. Feito isso, todas as classes que estão dentro das bibliotecas poderão ser utilizadas. Esse procedimento pode ser utilizado para qualquer futura outra biblioteca que se desejar incluir no projeto. -----------------------FIM DO MÓDULO I------------------------
Compartilhar