Programação Java para Web
Programação Java para Web
Novatec
Copyright 2010 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora. Editor: Rubens Prates Capa: Victor Bittow Reviso gramatical: Lia Gabriele Regius Editorao eletrnica: Camila Kuwabata ISBN: 978-85-7522-238-6 Histrico de impresses: Outubro/2010 Primeira edio
Novatec Editora Ltda. Rua Lus Antnio dos Santos 110 02460-000 So Paulo, SP Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: [email protected] Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
Dados
(CIP)
10-08728
CDD-005.133 ndices para catlogo sistemtico: 1. Java : Linguagem de programao : Computadores : Processamento de dados 005.133
CRM20100922
captulo 1
Este captulo tem como objetivo conduzir o leitor na montagem de um ambiente de desenvolvimento de um aplicativo web usando Java, Apache Tomcat, Eclipse e MySQL. Descreveremos como realizar a instalao e configurao do ambiente, bem como explicaremos o uso de cada uma dessas ferramentas. Ao final do captulo teremos um miniaplicativo de teste executando nesse ambiente e voc j estar preparado para iniciar o projeto do aplicativo financeiro pessoal, que ser o projeto mostrado ao longo do livro.
25
Se voc ainda no est pensando to alto e quer mesmo explorar tudo o que a comunidade Java oferece, existem outras ferramentas interessantes que voc poder adotar em projetos futuros. Novas ferramentas surgem a cada dia, e isso o combustvel que faz a evoluo constante da comunidade Java. Apesar de j termos definidas as ferramentas principais que utilizaremos neste livro, vamos listar a seguir algumas alternativas interessantes que voc poder explorar posteriormente.
IDE
NetBeans JDeveloper
Descrio
Ferramenta de desenvolvimento Java oficial da Sun (www.netbeans.org). Ferramenta de desenvolvimento Java oficial da Oracle (www.oracle. com/technology/jdev).
Banco de dados
Descrio
HypersonicSQL Banco de dados 100% Java. Tem vrios modos de execuo, entre eles, Standalone, que permite a utilizao do banco de dados sem precisar de instalao, diretamente a partir do do JAR (http://hsqldb.org/). Apache Derby Segue a mesma linha do HSQL e foi recentemente incorporado distribuio do Java, sendo chamado de JavaDB. Pode ser utilizado para execuo em dispositivos mveis, como celulares (http://developers.sun.com/javadb/). PostgreSQL Forte concorrente do MySQL (www.postgresql.org/).
A seguir, vamos instalar e configurar cada uma das ferramentas que compem nosso ambiente de desenvolvimento.
26
O controle remoto em si no vingou: ele estava muito a frente de seu tempo. Na poca, as empresas de TV a cabo e vdeo por demanda no tinham condies de viabilizar o negcio. Depois disso, James Gosling foi encarregado de adaptar a linguagem Oak para a internet, surgindo em 1995, assim, a plataforma Java. Umas das principais diferenas entre a plataforma Java e as demais linguagens existentes na poca que o Java executado sobre uma JVM, ou Java Virtual Machine. Qualquer plataforma de hardware ou equipamento eletrnico que possa executar uma mquina virtual conseguir executar Java. Isso justifica o slogan write once, run anywhere ou, em portugus, escreva uma vez, rode em qualquer lugar , .
27
Em nosso caso necessrio obter o pacote JDK (que tambm inclui o JRE). Dessa forma, clique em Download na opo JDK 6 Update X. Na pgina seguinte, selecione o ambiente (sistema operacional) de destino da instalao do pacote e a opo de idioma. Prossiga o download conforme as instrues do site.
Na tela seguinte, a instalao se iniciar, exibindo uma barra com o progresso da instalao. Depois de concluda essa etapa o instalador perguntar se voc deseja instalar a JRE (que foi marcada como opo da figura 1.2). Aceite a instalao e siga todos os passos mantendo o padro.
28
Configurao
Essa etapa da configurao s ser necessria caso tenhamos que executar o Java por linha de comando. A princpio isso no obrigatrio, pois utilizaremos a ferramenta Eclipse para fazer o desenvolvimento Java. Porm, interessante manter essa configurao para uma necessidade futura. No Windows, clique em Iniciar Painel de Controle Sistema. Clique na guia Avanado e no boto Variveis de Ambiente, conforme a figura 1.3.
A tela seguinte (Figura 1.4) exibe as variveis de ambiente do Windows. Agora vamos criar a varivel que define o local de instalao do Java, que utilizada por muitos outros programas que precisam saber onde o Java se encontra, inclusive o Apache Tomcat. Na regio de Variveis do Sistema, clique em Nova e preencha os campos com o nome JAVA_HOME e valor com o caminho em que o Java foi instalado (na verso utilizada no livro, C:\Arquivos de programas\Java\jdk1.6.0_18). Agora temos que alterar a varivel Path para conter o caminho para os programas executveis do Java. Na tela da figura 1.4, selecione a varivel Path e clique em Editar. V at o campo Valor da Varivel e adicione um ; (ponto e vrgula) no final da linha (se j no houver). Acrescente o texto %JAVA_HOME%\bin;.
29
Para testarmos a instalao do Java, abra um Prompt de Comando (Iniciar Programas Acessrios Prompt de Comando) e digite java version. Esse comando exibir a verso atual instalada do Java, conforme a figura 1.5, indicando o sucesso da instalao.
30
O primeiro far uma atualizao da lista dos pacotes disponveis para instalao e o segundo far o download e a instalao do Java 6 JDK. Quando o download terminar, a instalao comear automaticamente. Porm, antes disso o apt-get ir informar quanto de espao em disco ser necessrio para a instalao e perguntar se voc deseja continuar. Responda pergunta positivamente, como mostra a figura 1.6.
O prximo passo ser ler e aceitar o contrato de instalao, conforme as figuras 1.7 e 1.8. Para aceitar o contrato, tecle TAB para selecionar o boto Ok e pressione ENTER. Depois de terminado o processo de instalao, o Java j est pronto para uso. Para garantir o sucesso da instalao execute o comando java version no prompt de comando, conforme a figura 1.9. Devero aparecer trs linhas com informaes da verso instalada. Caso seja necessrio, poder ser utilizado o seguinte comando para desinstalar o Java6, usando tambm o apt-get:
sudo apt-get autoremove sun-java6-jdk
A instalao do sun-java6-jdk compreende trs subpacotes, que so sun-java6-bin, sunjava6-jdk e sun-java6-jre. A utilizao do comando autoremove garante a remoo dos
31
trs subpacotes e, se voc utilizar o comando remove, apenas o pacote declarado no comando ser removido.
32
Instalao tradicional
Para a instalao em Linux preciso selecionar a plataforma Linux correspondente no site de download do Java (http://java.sun.com/javase/downloads/). Na pgina seguinte, clique sobre o nome do arquivo para realizar o download e o salve em /usr/java (sugesto). Em nosso caso, o arquivo o jdk-6u18-linux-i586.bin, conforme a figura 1.10. Observe que no estamos obtendo o arquivo RPM, mas o binrio simples.
Depois de realizado o download, abra o terminal e se posicione na pasta na qual voc direcionou o download do arquivo. Para iniciar a instalao, execute o seguinte comando.
./jdk-6u18-linux-i586.bin Se voc fez o download no Linux usando o Firefox, provavelmente o arquivo foi salvo na pasta /home/<usuario>/Desktop. Via console, faa a cpia do arquivo para a pasta /usr/java usando o comando cp /home/<usuario>/Desktop/jdk*.bin /usr/java.
Assim que a instalao iniciar, deve ser feita a leitura e aceitao do contrato de instalao. Pressione ENTER at que todo o texto seja percorrido (ou pressione q para ir at o final) e digite yes para continuar. Terminada a instalao, o programa sugere que voc se registre no site da Sun (opcional). Basta pressionar ENTER para finalizar a instalao.
33
Configurao
Caso voc tenha feito a instalao tradicional necessrio configurar o Java. Continuando na pasta /usr/java, observe que foi criada a pasta jdk<verso>. Em nosso caso, jdk1.6.0_18, de modo que o diretrio de instalao do Java ficou como /usr/java/ jdk1.6.0_18. Agora ser necessrio configurar o Java. Para isso, edite o arquivo /etc/profile e adicione as novas variveis de ambiente com o seguinte contedo no final do arquivo:
export JAVA_HOME=/usr/java/jdk1.6.0_18 export CLASSPATH=.:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH Para editar o arquivo /etc/profile no Linux voc pode utilizar qualquer editor de texto. O mais utilizado o vi ou o editor visual gedit.
vi /etc/profile ou gedit /etc/profile
Depois de salvar, abra um novo terminal e digite java version para testar o funcionamento do Java. O resultado dever ser semelhante ao exemplo a seguir.
java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
Se seu sistema no exibir um contedo semelhante a esse, reinicie o sistema operacional para forar a aceitao das novas variveis de ambiente.
34
Nessa pgina existe tambm a opo do pacote Windows Service Installer, que permite a instalao do Tomcat por meio de um assistente no Windows. No caso, optaremos pelo pacote ZIP, pois no Windows s necessrio descompact-lo.
No Linux e em modo texto voc pode usar o comando wget para fazer o download de qualquer arquivo da internet. No caso do download do Apache Tomcat, voc pode executar o seguinte comando:
wget http://caminho/para.o/arquivo.tar.gz
Para garantir a existncia desse endereo, o melhor copiar a URL de download do arquivo no site e utilizar o wget para fazer o download.
35
Na instalao do Apache Tomcat obrigatrio definirmos uma nova varivel de ambiente. Para isso, crie a varivel CATALINA_HOME tendo como valor o caminho de instalao do Tomcat, no caso, C:\apache-tomcat-6.0.26. Agora voc pode fazer um teste para se certificar de que a instalao ocorreu normalmente. Entre na pasta bin do diretrio de instalao do Tomcat e execute o arquivo startup.bat: o resultado da execuo dever se parecer com o da figura 1.13.
Figura 1.13 Console do Apache Tomcat, depois de ser inicializado com sucesso.
Abra seu navegador e digite http://localhost:8080. Dever aparecer uma pgina como a da figura 1.14.
36
Nesse modo de instalao, a varivel de ambiente padro do Apache Tomcat fica com os valores seguintes. Essas variveis de ambiente j foram configuradas na instalao via apt-get, sendo mostradas aqui apenas para conhecimento.
CATALINA_HOME=/usr/share/tomcat6 CATALINA_BASE=/var/lib/tomcat6
37
Esse tipo de instalao utiliza no apenas a varivel CATALINA_HOME, mas tambm CATALINA_
BASE. CATALINA_HOME aponta para o local de instalao do Apache Tomcat. J CATALINA_BASE
aponta para o local dos arquivos especficos de uma instncia do Apache Tomcat, nesse caso, os aplicativos, bibliotecas, arquivos de configurao e temporrios.
Instalao tradicional
Uma das vantagens de utilizar a instalao tradicional que os arquivos ficam todos em um nico lugar, tornando mais simples sua manipulao no Apache Tomcat. Dessa forma, a varivel CATALINA_BASE nem necessria. Depois de realizar o download do arquivo, copie-o para a pasta /usr/java e, utilizando o comando tar, extraia o arquivo nesse diretrio, conforme a seguir.
tar xvfz apache-tomcat-6.0.26.tar.gz Se voc fez o download no Linux usando o Firefox, provavelmente o arquivo foi salvo na pasta /home/<usuario>/Desktop. Via console, faa a cpia do arquivo para a pasta /usr/java usando o comando cp /home/<usuario>/Desktop/apache-*tar.gz /usr/java.
Esse comando gera uma pasta apache-tomcat-6.0.26 com o contedo da instalao do Apache Tomcat. Observe que, no Linux, estamos adotando a pasta /usr/java como padro para todas as instalaes de ferramentas Java. Tambm obrigatrio definir uma nova varivel de ambiente CATALINA_HOME. Para isso edite novamente o arquivo /etc/profile para adicionar a linha seguinte no final do arquivo. A varivel indica o local de instalao do Apache Tomcat:
export CATALINA_HOME=/usr/java/apache-tomcat-6.0.26
Para iniciar ou finalizar o Apache Tomcat 6 execute os seguintes comando a partir da pasta CATALINA_HOME\bin.
shell> sh startup.sh
e
shell> sh shutdown.sh
38
Teste da instalao
Depois de inicializar o Apache Tomcat conforme o tipo de instalao, abra seu navegador e digite http://localhost:8080. Dever aparecer uma pgina como a da figura 1.16. No caso da instalao via apt-get, essa pgina poder ser um pouco diferente, mas tambm trar informaes sobre o Apache Tomcat.
Descrio do servio
Servio de HTTP Servio de shutdown Conector AJP/1.3 Porta de HTTPS
39
O primeiro indicativo de que voc est tendo problemas com a numerao de portas do Tomcat se a pgina principal acessada por http://localhost:8080 no abre. Para confirmar o problema, o melhor a ser feito abrir o arquivo de log do Tomcat, localizado no diretrio CATALINA_HOME\logs. Localize o arquivo mais recente com o nome catalina.AAAA-MM-DD.log (Exemplo: catalina.2008-10-04.log). Localizar nesse arquivo o texto a seguir um indicativo que ser necessrio alterar algumas portas.
java.net.BindException: Address already in use: JVM_Bind
Para substituir essas portas basta alterar o arquivo CATALINA_HOME\conf\server.xml, localizar no arquivo o nmero correspondente porta em questo e fazer a alterao. Esses nmeros podem aparecem em vrios locais ao mesmo tempo. Tome o cuidado para que nesse arquivo alguns desses nmeros de portas apaream dentro de comentrios. Isso pode causar alguma confuso, e a alterao pode ocorrer em um lugar que no ter efeito.
Lembramos que valores muito altos podem prejudicar o servidor, pois ele poder estar consumindo uma quantidade de memria desnecessria por um tempo muito grande.
40
Alm disso, permite provocar um timeout em todas as sesses para cada aplicativo para um tempo de vida determinado pelo acionamento do boto Expire Sessions. Esse um recurso muito interessante para forar a liberao de memria em servidor de produo. Na figura 1.17 voc pode observar a tela do manager.
Abaixo da relao dos aplicativos, existem mais duas reas nas quais possvel fazer a instalao remota de aplicativos Java e visualizar as informaes do servidor. Existe tambm o link Server Status, que permite visualizar todos os processos em execuo no servidor que esto atendendo a requisies de usurios. Isso pode ser muito til caso voc esteja tendo algum problema de desempenho no aplicativo. No link possvel identificar se existe algum processo muito pesado em execuo, por quanto tempo e qual IP fez a requisio. Porm, por padro a instalao do Tomcat no define qualquer usurio com permisso de acesso ao aplicativo manager, por questes de segurana. Para incluir um usurio com acesso ao aplicativo de gerenciamento voc deve alterar o arquivo CATALINA_HOME\ conf\tomcat-users.xml. possvel que ele esteja totalmente vazio, de modo que voc deve incluir duas linhas para deix-lo como a seguir.
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/>
41
O nome manager a chave para definir o acesso ao aplicativo. Voc s poder alterar o username e password ou definir novos usurios.
Descrio
Mximo de memria a ser reservado ao aplicativo. Exemplo: -Xmx1024m ou Xmx1g Quantidade inicial de memria a ser disponibilizada ao aplicativo. Exemplo: -Xms256m
Para o valor de -Xmx voc deve levar em considerao a quantidade de memria livre no computador ou servidor. Para o valor de Xms voc deve considerar aquela quantidade de memria que certamente ser consumida pelo aplicativo. Um valor muito baixo de Xms far com que o Java tenha que fazer muitas operao de realocao de memria, o que consome muitos recursos da mquina e prejudica o desempenho. Para definir estes parmetros voc deve criar a varivel de ambiente CATALINA_OPTS, como na figura 1.18.
42
Windows:
set CATALINA_OPTS=-Xms256m Xmx1024m
Linux:
export CATALINA_OPTS="-Xms256m Xmx1024m"
Quando estivermos utilizando e executando o Apache Tomcat por dentro do Eclipse, essa configurao deve ser feita em outro local, o que ser explicado no tpico 1.4.3.1.
O Windows sensvel a espaos na definio de variveis de ambiente, ou seja, a varivel CATALINA_OPTS="123" tem um nome diferente de CATALINA_OPTS = "123". Se voc defini-la com espao entre o nome e o = ela no ser reconhecida pelo Tomcat.
O segundo a execuo do JConsole, que est localizado em JAVA_HOME\bin\jconsole.exe. Antes de execut-lo necessrio que o Tomcat j tenha sido inicializado depois de ter definido esse novo parmetro em CATALINA_OPTS. Assim, ao ser executado, o JConsole mostrar a lista de todos os processos Java possveis de serem monitorados, como mostra a figura 1.19. Deve ser selecionado o processo com o nome org.apache.catalina.startup.Bootstrap start, que exatamente o Tomcat. Assim que voc clicar em Connect, o JConsole mostrar um quadro com vrios monitoramentos, conforme a figura 1.20. O mais interessante do JConsole com certeza o monitoramento de memria. Claro que voc no vai precisar ficar monitorando o servidor o tempo todo, pois no h motivo para isso se tudo estiver executando sem problemas. Entretanto, imagine o caso de um consumo exagerado pelo seu aplicativo: se voc aliar a observao do
43
painel de memria do JConsole ao uso do aplicativo poder identificar os pontos nos quais ocorre o maior consumo de memria. Com esse paralelo poder fazer a devida correo ou reconfigurao dos parmetros Xmx e Xms.
Figura 1.20 Tela principal do JConsole, exibindo vrios grficos com estatsticas do processo monitorado.
44
Instalao no Windows
Para instalar o Apache Tomcat como servio, primeiro v at a pasta \bin da instalao do Apache Tomcat via linha de comando. Nessa pasta dever existir o arquivo service. bat. A sintaxe de utilizao ser:
service.bat install/remove [service_name]
Sada do comando:
Installing the service 'Tomcat6' ... Using CATALINA_HOME: C:\apache-tomcat-6.0.26 Using CATALINA_BASE: C:\apache-tomcat-6.0.26 Using JAVA_HOME: C:\Arquivos de Programas\Java\jdk1.6.0_18 Using JVM: C:\Arquivos de Programas\Java\jdk1.6.0_18\jre\bin\server\jvm.dll The service 'Tomcat6' has been installed.
Para desinstalar o servio utilize o comando service remove. Observe que na sintaxe do comando existe o parmetro opcional service_name. Isso significa que voc poder definir um nome para o servio a ser instalado, caso contrrio, ser utilizado o nome Tomcat6. importante salientar que existem vrias mudanas na forma de configurar o Apache Tomcat ao utiliz-lo como servio, principalmente quanto aos parmetros de inicializao, que foram expostos no tpico 1.3.2.4, com relao ao uso da varivel CATALINA_OPTS. Em resumo, essa varivel no considerada quando se utiliza o Tomcat como servio. A alternativa para continuar realizando esse tipo de configurao no Tomcat como servio utilizar o aplicativo [CATALINA_HOME]\BIN\tomcat6w.exe. Porm, esse aplicativo s funcionar para o servio instalado caso o nome do servio seja Tomcat6.
Muito provavelmente podero ser executados vrios servios do Apache Tomcat em um mesmo servidor. Para poder configurar esses servios utilizando o aplicativo tomcat6w.exe basta duplic-lo e renome-lo considerando o padro [service_name]w.exe. Por exemplo, se voc quiser um novo servio do Tomcat com o nome tomcatTeste, dever instalar o servio usando o comando service install tomcatTeste, duplicar o tomcat6w.exe e renomear para tomcatTestew.exe.
45
Na figura 1.21 podemos observar a aba General do tomcat6w.exe, na qual possvel, em Startup type, configurar se o servio ter inicializao Manual, Automtica ou Desabilitada. Tambm possvel iniciar e parar o servio nos botes Start e Stop.
Como posteriormente controlaremos a inicializao do Apache Tomcat por dentro do Eclipse IDE, recomenda-se deixar o servio como Startup type: Manual, no ambiente de desenvolvimento.
Na figura 1.22 podemos visualizar a aba Java do tomcat6w.exe, que a aba mais til na configurao do Tomcat. Os principais campos a serem utilizados nessa tela sero o Java Options, no qual ser possvel incluir parmetros de inicializao, e Initial memory pool e Maximum memory pool, que correspondem aos parmetros Xms e Xms, respectivamente. Tambm possvel controlar o servio Tomcat6 ou qualquer outro criado por meio do Gerenciador de Servios do Windows em Painel de Controle Ferramentas Administrativas Servios. Este ser exibido com o nome amigvel Apache Tomcat, conforme a figura 1.23. Se voc clicar com o boto direito no servio e em propriedades, ver o nome fsico atribudo (ex: tomcat6) e outras informaes. Tambm ser possvel iniciar e parar o servio, mas no ser possvel fazer as mesmas configuraes disponveis no tomcat6w.exe. Mais informaes sobre a configurao do Apache Tomcat como servio podem ser obtidas em http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html.
46
47
Para voc ter uma ideia, utilizando o Eclipse, hoje possvel programar em C/C++, COBOL, PHP e Progress entre outras. Alm disso, ele oferece todos os recursos para que voc mesmo crie novos plug-ins para a ferramenta. A seguir, faremos a instalao da ferramenta e a configurao e veremos dicas de utilizao.
Como voc pode perceber, existem vrias opes de pacotes de download: so diversas combinaes diferentes de plug-ins e recursos, cada uma com um objetivo especfico. Em nosso caso, a melhor opo a Eclipse IDE for Java EE Developers. Nesse item, clique no sistema operacional desejado direita e veja que existem opes para Windows, Mac OS e Linux 32 e 64 bits. Na pgina seguinte ser oferecido um local no qual voc far o download do Eclipse, ou voc pode percorrer a lista logo abaixo na mesma pgina e fazer o download de um local mais prximo do Brasil, por exemplo. Clique no link de um local, conforme a figura 1.25.
48
O arquivo para executar o Eclipse o eclipse.exe. O mais prtico voc criar um atalho para esse arquivo e posicion-lo em sua rea de trabalho do Windows. Na primeira vez que voc executar o Eclipse, aparecer uma tela perguntando qual workspace voc deseja trabalhar. O workspace uma pasta do disco no qual sero
49
criados todos os projetos do Eclipse. Nesse caso, voc tem duas opes: pode sempre informar esse caminho manualmente ou configurar qual workspace deseja trabalhar por meio do parmetro data no atalho. Isso permite ter apenas uma instalao do Eclipse e vrios atalhos apontando para workspaces diferentes. O parmetro data deve ser informado em um atalho criado para o eclipse.exe, conforme a figura 1.27. Isso principalmente til quando voc estiver utilizando o Eclipse para diversos fins, por exemplo, Eclipse Faculdade, Eclipse JME, Eclipse Estudo Livro.
50
Esse comando gera uma pasta eclipse com o contedo da instalao do Eclipse IDE. Observe que, no Linux, estamos adotando a pasta /usr/java como padro para todas as instalaes de ferramentas Java. Depois de extrado, entre na pasta eclipse e execute o comando ./eclipse para executar o Eclipse IDE, conforme a figura 1.28.
Assim como no Windows, o mais prtico criar um atalho para o Eclipse em sua rea de trabalho do Linux. Para criar o atalho no Linux Ubuntu, clique com o boto direito do mouse na rea de trabalho e selecione Criar Lanador, conforme a figura 1.29.
Existem dois tipos bsicos de atalhos que podem ser criados para o Eclipse, um genrico e outro apontando para um workspace (pasta de projetos). O atalho genrico, quando aberto, sempre perguntar qual o workspace voc quer trabalhar ou abrir no workspace padro. O segundo atalho permite que voc especifique no atalho qual pasta deve ser considerada para o workspace, utilizando o parmetro data. Isso interessante, pois voc pode ter uma instalao do Eclipse trabalhando com vrias pastas de projeto. Para o primeiro atalho mantenha o campo Tipo como Aplicativo. No campo Nome informe Eclipse e, no Comando, informe /usr/java/eclipse/eclipse, conforme a figura 1.30.
51
Para o segundo atalho informe Nome como Eclipse Java para a Web (ou como quiser) e, no campo Comando, informe /usr/java/eclipse/eclipse data /home/<usurio>/projetos/. Observe que o parmetro data configura a pasta /home/<usurio>/projetos/ como a pasta de projetos para esse atalho do Eclipse. Essa pasta no precisa existir imediatamente: o Eclipse ir cri-la assim que necessrio. Se voc quiser criar um novo atalho para projetos da Faculdade, por exemplo, utilize o caminho /home/<usurio>/projetos_faculdade. Dessa forma, criar atalhos do Eclipse e usar o parmetro -data para cada necessidade mantm tudo organizado, conforme a figura 1.31.
52
Outro conceito de organizao muito importante utilizado pelo Eclipse o das perspectivas, que podemos entender como formas diferentes de ver algo, e o Eclipse trabalha dessa forma para organizar as views. Existem diversas perspectivas disponveis no Eclipse. Na figura 1.33 podemos ver algumas delas.
Cada perspectiva disponibiliza as views mais interessantes para cada necessidade de uso. Por exemplo, a primeira perspectiva exibida quando abrimos o Eclipse a perspectiva Java EE.
53
Descrio
Exibe todos os projetos do workspace em questo. Em cada projeto so exibidos todos os arquivos envolvidos (arquivos Java, XML etc.). Problems Exibe os erros de compilao encontrados nas fontes dos projetos. Tasks Exibe uma lista de tarefas pendentes. Servers Exibe uma lista dos servidores configurados para executar os projetos. Data Source Explorer Exibe e permite configurar as fontes de dados que possam estar sendo utilizadas nos projetos. A partir dessas fontes voc conseguir executar consultas SQL nos bancos de dados, diretamente no Eclipse. Snippets Exibe botes que auxiliam na incluso de blocos de cdigo-fonte no arquivo aberto. Por exemplo: incluso de comentrio, bloco de script, diretivas de pgina. Outline Exibe a relao de propriedades e mtodos da classe Java que estiveram em execuo, sendo muito til para localizar mais facilmente no programa.
A disposio das views dentro da perspectiva pode ser alterada livremente, excluindo ou adicionando novas views que possam ser interessantes.
Descrio
Exibe a lista dos processos Java em execuo. Mostra as variveis envolvidas na execuo atual e seu respectivo valor. possvel tambm alterar o valor de alguns tipos de variveis manualmente, no meio da execuo.
54 View
Breakpoints Console
Geralmente, quando voc executar algum servidor ou classe Java em modo Debug, o Eclipse sugere automaticamente que essa perspectiva seja ativada.
Descrio
Realiza o code completion, ou seja, sugere opes para qualquer coisa que voc tenha digitado, com base em nomes de classes, mtodos, propriedades etc. Localiza no arquivo aberto outras ocorrncias do texto selecionado. Localiza uma linha determinada. Localizao rpida de classes Java, apenas digitando partes do nome. Localizao rpida de quaisquer arquivos, apenas digitando partes do nome. Exibe a lista de propriedades e mtodos da classe atual. Permite busca rpida pelo nome. Organiza a lista dos imports da classe. Formata o cdigo-fonte. Adiciona um comentrio de linha. Adiciona um comentrio de bloco. Renomeia a propriedade ou o mtodo selecionado, realizando o refactory de todo o cdigo. Ou seja, ser modificado o nome do elemento em todos os lugares nos quais ele era referenciado. Mostra a documentao da classe, mtodo ou propriedade que estiver com o foco. Abre a declarao da classe, mtodo ou propriedade que estiver com o foco. Lista todas as teclas de atalhos disponveis na IDE.
Ctrl+K Ctrl+L Ctrl+Shift+T Ctrl+Shift+R Ctrl+O Ctrl+Shift+O Ctrl+Shift+F Ctrl+/ Ctrl+Shift+/ Alt+Shift+R
F2 F3 Ctrl+Shift+L
55
No manual do Eclipse, existe uma relao completa de todas as dicas de utilizao e recursos das ferramentas, em Help Tips and Tricks, alm da tecla de atalho Ctrl+Shift+L, que mostra uma relao de todas as teclas de atalho do Eclipse.
Isso iniciar o assistente de criao de servidores dentro do Eclipse. Selecione Tomcat v6.0 Server e clique em Next, conforme a figura 1.35. Na tela seguinte, informe o local em que foi instalado o Apache Tomcat, e clique em Finish. O caminho definido nessa ltima tela o mesmo que j foi definido para a varivel CATALINA_HOME. Pronto: agora o servidor que executar nossos projetos web j est criado, como mostra a figura 1.36.
Outra forma de alterar a configurao do local no qual o servidor est instalado pelo menu Window Preferences: selecione a opo Servers Runtime Environment.
56
Para testar o funcionamento do Apache Tomcat por dentro do Eclipse, clique no boto que realiza a execuo em modo Normal, na view Servers. Nesse mesmo instante, na view Servers, a coluna State mostrar o texto Starting, e a view Console ser exibida, mostrando as mensagens de sada do servidor, indicando que ele est em processo de inicializao. Na figura 1.37 voc pode observar as mensagens do Console, indicando que o servidor foi inicializado com sucesso.
57
Figura 1.37 View Console exibindo as mensagens de sada do servidor, durante o processo de inicializao.
nesse momento que tambm podero ocorrer os erros de conflito de portas, como foi comentado na seo 1.3.2.1. Nesse caso o Eclipse tambm fornece um meio de alterar essa configurao. Para isso basta dar um duplo clique no nome do servidor na view Servers, e ser exibida uma tela de configuraes, conforme a figura 1.38. Voc poder alterar os nmeros de portas pela aba Ports.
Figura 1.38 Tela de configurao do servidor, na qual possvel alterar os nmeros de portas, entre outras configuraes.
58
Na tela que ser exibida, informe um nome para o projeto, preferencialmente sem espaos nem caracteres especiais. No campo Server Runtime, selecione Apache Tomcat v6 que foi o servidor que configuramos. No quadro Configuration, clique no boto Modify e marque a opo JavaServer Faces clique em OK. Na tela de criao do projeto, clique em Next at chegar em JSF Capabilities. Nessa tela selecione o Type igual a Disable Library Configuration e troque o URL Mapping Patterns de /faces/* para *.jsf. Clique em Finish. A tela de configurao dever ter ficado como na figura 1.40.
59
Depois de criado o projeto, este deve aparecer na view Project Explorer, conforme a figura 1.41.
60
Essa a estrutura-padro do projeto web dentro do Eclipse. A seguir sero descritos os principais itens dessa estrutura de projeto.
Item Descrio
Deployment Descriptor Fornece um atalho para o arquivo web.xml, que fica por padro armazenado em /WEB-INF/web.xml. Nesse atalho, o Eclipse oferecer vrios assistentes para incluir novos elementos no arquivo web.xml. Java Resources Fornece acesso aos arquivos Java do projeto. nesse elemento que aparecero todos os packages de seu aplicativo. WebContent Representa o contedo raiz do aplicativo web. Nessa pasta voc dever colocar a pgina index.html e todas as outras pginas, jsp, css, imagens etc. Nela voc pode criar a estrutura de pastas que quiser. WebContent/WEB-INF A pasta WEB-INF faz parte da especificao Java para projetos web. Todo projeto web Java tem que ter essa pasta. Ela inacessvel via web, somente internamente. Isso garante que nenhum arquivo presente nela possa ser visualizado por algum usurio. Por esse motivo, os arquivos de configurao, bibliotecas (jar) e classes ficam seguros nessa pasta. WebContent/WEB-INF/lib Nessa pasta devem ser mantidos todos os arquivos Jar necessrios ao funcionamento do projeto.
Agora que j estamos com o projeto criado e conhecemos sua estrutura, vamos criar um arquivo JSP e testar sua execuo no servidor. Como acabamos de ver, o local correto para criar um arquivo JSP na pasta WebContent. Dessa forma, clique com o boto direito do mouse na pasta WebContent e v at New JSP. Ser aberto um assistente para a criao de arquivos JSP. Informe o nome index.jsp para o arquivo no campo File Name e clique em Finish. Depois disso, o arquivo index.jsp estar criado, e seu Eclipse ir exibi-lo para edio, conforme a figura 1.42.
Se voc observar a figura 1.42, perceber que o texto Ola Mundo e Agora so: ficou sublinhado por uma linha ondulada, igual ao MS-Word quando faz a correo de uma palavra. E exatamente isso que aconteceu, mas no momento esse no um recurso interessante e podemos deslig-lo. Para desligar o Spell Checking, abra a janela Windows Preferences, selecione a opo General Editors Text Editors Spelling e desmarque a opo Enable spell checking.
A figura 1.42 exibe uma alterao no arquivo, com a inteno de mostrar a seguinte mensagem na tela:
Ol Mundo Agora so: 13:55 (hora atual)
61
Figura 1.42 Eclipse exibindo o arquivo index.jsp que acabou de ser criado.
Voc pode perceber, na figura, a presena de uma janela mostrando o nome de classe SimpleDateFormat. Isso foi consequncia do uso da tecla de atalho Ctrl+Espao, que realizou o code-completion. Observe que digitamos apenas o texto simpledatef no arquivo e pressionamos Ctrl+Espao. O que o Eclipse fez foi sugerir um nome de classe que iniciasse com simpledatef. Se voc selecionar o nome SimpleDateFormat sugerido pelo Eclipse, ele completar a palavra que voc digitou e adicionar automaticamente o import para essa classe, no topo do arquivo. Em arquivo JSP, o import realizado na diretiva de pgina (<%page%>), no parmetro import. O arquivo final ficar igual ao texto a seguir.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.util.Date"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Teste inicial</title> </head> <body> Ol Mundo. Agora so:
62
<%=new SimpleDateFormat("hh:mm:ss").format(new Date()) %> </body> </html>
Agora que o arquivo index.jsp est completo, vamos testar o projeto em ambiente web. Para isso, v at a view Server e clique com o boto direito do mouse no servidor configurado e acione a opo Add and Remove Projects. A opo permite definir quais dos projetos do Eclipse sero executados nesse servidor quando ele for colocado no ar. A tela que ser exibida pode ser vista na figura 1.43. Ali, voc deve selecionar o projeto olamundo e clicar em Add >> para adicion-lo para execuo no servidor, clicando depois em Finish.
Voc dever repetir esse mesmo procedimento para qualquer outro projeto que queira executar no servidor. Nessa tela tambm possvel remover projetos. Se voc deixar no servidor somente os projetos que realmente est utilizando, o servidor subir mais rapidamente e consumir menos memria.
Agora basta colocar o servidor configurado no ar para fazer o teste. Para isso, acione o boto Start the Server na view Servers, conforme a figura 1.44.
63
Quando a coluna State da view Servers aparecer como Started quer dizer que o servidor j est no ar: isso acontecer muito rpido. Agora, se voc abrir um navegador e digitar o endereo http://localhost:8080/olamundo ser exibida a pgina index.jsp que acabamos de criar, sendo uma pgina igual da figura 1.45.
O aparecimento dessa pgina conforme a figura 1.45 confirma que todo o nosso ambiente de desenvolvimento est configurado e funcionando. Estamos prontos para seguir adiante e conhecer cada etapa do projeto que ser desenvolvido e aprender todas as tecnologias necessrias para que ele se concretize.
1.5 MySQL
O MySQL o banco de dados de cdigo-fonte aberto mais popular do mundo, tendo mais de 70 milhes de instalaes no mundo todo. utilizado por empresas como Amazon.com, Google, Motorola, MP3.com, NASA, Silicon Graphics, Texas Instruments e Yahoo! Finance. O fato de ser de cdigo-fonte aberto no significa que ele seja gratuito: isso depender de como voc utilizar o banco de dados. Para que o MySQL possa ser utilizado gratuitamente, o aplicativo que o utiliza tem que seguir a licena GPL. Isso basicamente significa que, se voc no obtiver lucro com o seu aplicativo, no precisar pagar pelo MySQL e que sempre dever distribuir os cdigos-fonte do MySQL junto com seu aplicativo ou pelo menos indicar onde obt-los.
64
Depois de clicar em Download voc ser direcionado para uma pgina na qual inicialmente ser solicitado que voc se cadastre, o que no necessrio: apenas clique no link No thanks, just take me to the downloads! abaixo da tela de cadastro para escolher um dos espelhos para o download. Nesse caso, espelho se refere aos vrios locais do mundo nos quais os arquivos da instalao esto replicados (espelhados).
MySQL Workbench
Alm do prprio servidor, o MySQL tambm oferece outras ferramentas que facilitaro bastante a administrao do banco de dados. Essas ferramentas tambm esto disponveis no site http://www.mysql.com/downloads, no link MySQL Workbench, ou diretamente no endereo http://dev.mysql.com/downloads/workbench/.
65
Descrio
Ferramenta de administrao, utilizada para a criao dos bancos de dados, administrao de usurios e rotinas de backup/restore. Ferramenta para realizao de consultas e atualizaes nas bases de dados. Ferramenta para desenho e modelagem de bancos de dados.
Principalmente a SQL Development ser utilizada para a execuo de SQLs no decorrer do projeto
Clicando em Next a instalao ser iniciada. Concluda a instalao, sero exibidas algumas telas com informaes comerciais: basta clicar em Next at chegar ao final. A ltima tela do assistente traz uma caixa de seleo perguntando se voc deseja configurar o MySQL Server: mantenha-a marcada e clique em Finish. Depois, o assistente ser iniciado para configurao do MySQL.
66
Configurao do MySQL
A configurao do MySQL pode ocorrer imediatamente aps a instalao ou a qualquer momento pelo menu no qual o MySQL estiver instalado, em MySQL MySQL Server 5.1 MySQL Server Instance Config Wizard. Na primeira tela, clique em Next. Na segunda, voc poder escolher Detailed Configuration (Configurao detalhada) ou Standard Configuration (Configurao padro). Neste captulo vamos abordar a configurao padro, por isso, selecione a opo Standard Configuration e clique em Next. Na tela seguinte, ser configurado o nome do servio do MySQL Server e diretrio as configuraes conforme a figura 1.48. Essas configuraes instalam o MySQL como um servio do Windows e colocam seu diretrio BIN em PATH, o que ser bastante til na execuo de comandos do MySQL no DOS. Clique em Next.
PATH. Deixe
Figura 1.48 Tela do assistente de configurao do MySQL no qual se instala o servio e configura-se o diretrio PATH.
Nesse ponto, caso o MySQL j tenha sido instalado em sua mquina em alguma ocasio talvez seja necessrio trocar o nome do servio, pois se j existir um com o respectivo Service Name ocorrer erro no final da configurao. Para garantir que j no haja um servio com o nome MySQL, v em Painel de Controle Ferramentas Administrativas Servios e procure o nome em questo na lista.
67
Na prxima tela sero definidas as configuraes de segurana, conforme a figura 1.49. Escolha Modify Security Settings para definir uma senha principal para o MySQL e mantenha desmarcadas as opes Enable root access from remote machines e Create An Anonymous Account. A primeira opo permite o acesso administrativo de uma mquina remota, e a segunda permite o acesso sem senha ao MySQL; nenhuma dessas opes recomendvel para o mnimo de segurana. Informe a senha de sua preferncia para ser a senha principal do MySQL. No livro estamos considerando a senha root como a senha principal do MySQL: nesse caso, preencha root nos dois campos.
68
O arquivo do MySQL Workbench (5.2 ou maior) pode ser obtido em http://www.mysql. com/downloads/workbench/, onde voc deve indicar o sistema operacional Windows e selecionar a arquitetura correta, entre 32 ou 64 bits. A instalao segue normalmente por meio de um assistente at a concluso. Depois de instalado, ele estar disponvel no menu MySQL do Windows. Veja como utilizar o MySQL Workbench no tpico 1.5.2.
No final da instalao do mysql-server voc ser questionado sobre a senha root do MySQL:guarde bem essa senha. Para iniciar o MySQL execute:
shell> /etc/init.d/./mysql start
Instalao tradicional
Para a instalao do MySQL Server em Linux voc deve ter feito o download do pacote Generic Linux (glibc 2.3) (x86, 32-bit), Compressed TAR Archive, na qual o nome do arquivo mysql-5.1.45-linux-i686-glibc23.tar.gz. Tome bastante cuidado ao fazer o download, pois o site bastante confuso quanto a isso. Existem diversos pacotes disponveis, mudando somente o nome do arquivo no site. Existem pacotes mysql-client, mysql-debug, mysql-shared-compat e embedded, entre outros. Porm, apenas o pacote mysql-<verso> ou mysql-server-<verso> deve ser obtido para nosso objetivo. Depois de realizado o download do arquivo, execute os comandos a seguir:
shell> sudo groupadd mysql shell> sudo useradd -g mysql mysql
69
Nas linhas e so criados o grupo mysql e usurio mysql, que sempre ser utilizado nos comandos das linhas e . Na linha feita a extrao do arquivo tar.gz obtido do site do MySQL. Essa extrao gera uma pasta com o mesmo nome do arquivo. Na linha criado um atalho com o nome mysql apontando para a pasta extrada, para facilitar o acesso. Para alterar a senha do MySQL execute o comando a seguir, pois como padro o usurio root do MySQL vem com a senha em branco.
shell> sudo ./mysqladmin u root password nova_senha
Para incluir os executveis do MySQL no PATH, execute o comando gedit /etc/profile ou vi /etc/profile e acrescente a seguinte linha:
export PATH=$PATH:/usr/local/mysql/bin
O arquivo do MySQL Workbench (5.2 ou posterior) pode ser obtido em http://www. mysql.com/downloads/workbench/, onde voc deve indicar o sistema operacional Ubuntu Linux e selecionar a arquitetura correta, entre 32 ou 64 bits. A instalao deve ser feita com o comando a seguir, considerando o nome do arquivo .deb que voc obteve.
sudo dpkg -i mysql-workbench-oss-5.1.18a-1ubu804-i386.deb
70
Informe um nome para a conexo em Connection Name e confirme as informaes de Hostname, Port e Username. Se desejar guardar a senha do banco nesse aplicativo, clique em Store in Vault. Depois de configurada, abra a conexo que estar listada na tela principal. Ser exibida a tela em que possvel executar os comandos SQL, conforme a figura 1.52.
71
1.6 Concluso
Finalizamos a instalao de todas as ferramentas que sero necessrias para o desenvolvimento do projeto proposto no livro. No decorrer da obra sero necessrios novos downloads, apenas para instalao de componentes necessrios aos projetos em construo.