Você está na página 1de 50

Programao Java para a Web

Dcio Heinzelmann Luckow Alexandre Altair de Melo

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: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Dados

Internacionais de Catalogao na Publicao (Cmara Brasileira do Livro, SP, Brasil)


Luckow, Dcio Heinzelmann Programao Java para a Web / Dcio Heinzelmann Luckow e Alexandre Altair de Melo. -- So Paulo : Novatec Editora, 2010. Bibliografia. ISBN 978-85-7522-238-6 1. Internet (Rede de computadores) 2. Java (Linguagem de programao para computadores) 3. Web sites I. Melo, Alexandre Altair de. II. Ttulo.

(CIP)

10-08728

CDD-005.133 ndices para catlogo sistemtico: 1. Java : Linguagem de programao : Computadores : Processamento de dados 005.133

CRM20100922

captulo 1

Preparao do ambiente de desenvolvimento

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.

1.1 Seleo das ferramentas


Os critrios que mais contriburam para selecionar as ferramentas que utilizaremos ao longo do livro so simples: popularidade e experincia. Alm das ferramentas selecionadas estarem entre as mais populares, elas fazem parte do dia-a-dia dos autores. Isso com certeza possibilita criar um texto ao mesmo tempo tcnico e composto de dicas, que so baseadas na experincia adquirida pelo uso de tais ferramentas. Comentar sobre a escolha de quais ferramentas empregar em um projeto de software envolve vrios aspectos. Entretanto, um ponto que sempre deve ser levado em considerao o envolvimento da comunidade de desenvolvedores em determinado projeto. Nisso o Java tem um dos seus pontos fortes, pois alm de instituies privadas que criam IDEs, por exemplo, existe uma comunidade muito forte e atuante nos projetos criados para a plataforma. As ferramentas Eclipse, Apache Tomcat e MySQL so exemplos que tm comunidades altamente atuantes, que muito contribuem para sua evoluo. Alm disso, se voc desenvolver seu projeto usando o Apache Tomcat e o MySQL, encontrar com mais facilidade algum servio de hospedagem que tenha exatamente essa configurao. No basta ter uma excelente ideia de um novo produto para a internet e execut-lo somente em seu computador domstico. preciso pensar no futuro: seu produto pode ser o prximo a ser comprado por alguns milhes de dlares por alguma megaempresa da internet!
24

Captulo 1 Preparao do ambiente de desenvolvimento

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/).

Servidor web Java


Jetty JBossWeb Servidor web Java concorrente do Apache Tomcat (http://www.mortbay. org/jetty/). Servidor web Java, uma verso personalizada do Apache Tomcat, pela JBoss (http://jboss.org/jbossweb).

A seguir, vamos instalar e configurar cada uma das ferramentas que compem nosso ambiente de desenvolvimento.

1.2 Linguagem Java


A linguagem Java comeou a surgir em 1991 na Sun Microsystems. Inicialmente era parte de outro projeto, chamado Green Project, que tinha como objetivo possibilitar a convergncia entre computador, equipamentos eletrnicos e eletrodomsticos. Na poca a linguagem era chamada de Oak (em portugus, carvalho), pois era essa rvore que James Gosling avistava da janela da sede do projeto. O resultado do projeto foi um controle remoto chamado *7 (StarSeven), que tinha uma interface grfica sensvel ao toque e era capaz de interagir com diversos equipamentos. A linguagem Oak, na poca, surgiu justamente para controlar internamente esse equipamento.

26

Programao Java para a Web

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 , .

1.2.1 Instalao do Java


A verso do Java a ser instalada pode ser qualquer uma a partir da 5. No momento em que este livro estava sendo escrito a verso mais recente era Java 6. O arquivo para instalao do Java pode ser obtido em http://java.sun.com, acionando a opo Java SE no menu Downloads, ou diretamente em http://java.sun.com/javase/downloads/. Nessas pginas sero listados todos os tipos de pacotes de instalao do Java disponveis. As duas principais verses disponveis so Java SE (ou JRE) e JDK, conforme a figura 1.1. O pacote JRE (sigla de Java Runtime Environment) o pacote mnimo necessrio para a execuo de aplicativos Java. J o pacote JDK (sigla de Java Development Kit) o pacote necessrio para o desenvolvimento de aplicativos Java.

Figura 1.1 Opo de pacotes para instalao do Java.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

1.2.1.1 Instalao no Windows


Depois de realizado o download, acione o arquivo obtido e a instalao se iniciar. Na primeira tela exibida, que contm os termos da licena de uso do Java, clique em Accept. A tela seguinte permite configurar as opes que sero instaladas, conforme a figura 1.2. Mantenha todas as opes. Voc pode perceber a presena dos itens Development Tools, Demos and Samples e Source Code, que so especificamente para o desenvolvimento de aplicativos Java. O item Public JRE a instalao do Java Runtime Environment que j havamos comentado e ser instalado junto com o Java JDK. O ltimo item, Java DB, o projeto Apache Derby, o banco de dados que comentamos ter sido incorporado distribuio do Java. Se preferir, mude o local de instalao do Java, mas recomendamos manter o padro.

Figura 1.2 Itens do Java a serem instalados.

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

Programao Java para a Web

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.

Figura 1.3 Tela de acesso s variveis de ambiente.

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;.

Captulo 1 Preparao do ambiente de desenvolvimento

29

Figura 1.4 Tela de manuteno das variveis de ambiente.


A varivel PATH serve para que os programas possam ser executados por linha de comando (DOS) em qualquer diretrio, e no apenas naquele em que se encontra. Por isso o caminho definido nessa varivel aponta para o \bin do JAVA_HOME, que onde os executveis do Java se encontram.

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.

Figura 1.5 Teste da instalao do Java.

1.2.1.2 Instalao no Linux


Para o processo de instalao em Linux (em nosso caso utilizamos a distribuio Ubuntu), existem duas maneiras de proceder: no Linux Debian/Ubuntu, via apt-get, ou pela maneira tradicional, executando o arquivo de instalao obtido do site da Sun.

30

Programao Java para a Web

Instalao via apt-get


A apt-get o gerenciador de pacotes usado no Linux Debian e em todas as suas verses derivadas, como Ubuntu ou Kurumin. Se seu Linux Debian/Ubuntu tem acesso internet, execute os comandos em um terminal:
sudo apt-get update sudo apt-get install sun-java6-jdk

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.

Figura 1.6 Aceitao do incio da instalao do Java 6 JDK.

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

Captulo 1 Preparao do ambiente de desenvolvimento

31

trs subpacotes e, se voc utilizar o comando remove, apenas o pacote declarado no comando ser removido.

Figura 1.7 Tela de leitura do contrato de instalao do Java 6 JDK.

Figura 1.8 Tela de aceitao do contrato de instalao do Java 6 JDK.

Figura 1.9 Teste da instalao.

32

Programao Java para a Web

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.

Figura 1.10 Obteno o arquivo para instalao do Java no Linux.

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.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

1.3 Apache Tomcat


O Apache Tomcat um continer Java e um servidor web ao mesmo tempo. Ele suporta a execuo das tecnologias Java Servlet e JavaServer Pages (JSP), o que permite que o Java funcione para um ambiente web. Embora o Apache Tomcat seja robusto o suficiente para ser utilizado em ambiente de produo, ele permite integrao com servidores como Apache HTTP e IIS da Microsoft, para fornecer uma capacidade ainda maior de trabalho. Utilizaremos o Apache Tomcat verso 6 para este livro, pois ele implementa as especificaes Servlet 2.5 e JSP 2.1 necessrias ao funcionamento do JavaServer Faces a partir da verso 1.2.

34

Programao Java para a Web

1.3.1 Instalao do Tomcat


O primeiro passo para instalar o Apache Tomcat obter o pacote de instalao do site http://tomcat.apache.org/. Acesse o link Tomcat 6.x no menu Downloads e voc ser direcionado para a pgina http://tomcat.apache.org/download-60.cgi. A pgina apresentar sempre a ltima verso liberada para download do Apache Tomcat. Voc deve fazer o download do pacote em Binary Distributions\Core, conforme a figura 1.11, sendo que voc deve escolher o pacote ZIP para Windows e o TAR.GZ para Linux.
Para a instalao em Linux at poderia ser utilizado o pacote ZIP, porm, a desvantagem dele que o arquivo ZIP, quando extrado, no traz as permisses dos arquivos. Dessa forma voc teria que aplicar manualmente as permisses de execuo nos arquivos de script.

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.

Figura 1.11 Obteno do pacote de instalao do Apache Tomcat.

Captulo 1 Preparao do ambiente de desenvolvimento

35

1.3.1.1 Instalao no Windows


Depois de descompactar o arquivo no disco, a estrutura de pasta deve se parecer com a da figura 1.12.

Figura 1.12 Estrutura de pastas da instalao do Apache Tomcat.

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

Programao Java para a Web

Figura 1.14 Pgina inicial padro do Apache Tomcat.

Para desligar o servidor, execute o arquivo shutdown.bat.

1.3.1.2 Instalao no Linux


A instalao em Linux poder ser feita da forma tradicional, por arquivo tar.gz ou via apt-get.

Instalao via apt-get


Estes comandos do apt-get instalaro a verso 6.0 do Apache Tomcat, seus aplicativos administrativos e a documentao:
shell> shell> shell> shell> shell> sudo sudo sudo sudo sudo apt-get apt-get apt-get apt-get apt-get update install install install install tomcat6 tomcat6-admin tomcat6-docs tomcat6-examples

Para iniciar o Apache Tomcat 6 execute:


shell> /etc/init.d/./tomcat6 start

Para finalizar o Apache Tomcat 6 execute:


shell> /etc/init.d/./tomcat6 stop

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

Captulo 1 Preparao do ambiente de desenvolvimento

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

A execuo do startup.sh vai gerar uma sada, conforme a figura 1.15.

Figura 1.15 Terminal aps inicializao com sucesso do Apache Tomcat.

38

Programao Java para a Web

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.

Figura 1.16 Pgina inicial padro do Apache Tomcat.

1.3.2 Configurao e gerenciamento


Neste tpico vamos passar algumas dicas de configurao e gerenciamento do Tomcat.

1.3.2.1 Alterao das portas padro do Tomcat


Por padro, o Tomcat vem com algumas portas configuradas. Como foi possvel observar no tpico anterior, entramos no endereo http://localhost:8080. Isso quer dizer que a porta HTTP padro do Tomcat a 8080. Veja na tabela a seguir quais so as portas padro do Tomcat. Essa informao importante, pois as portas podem entrar em conflito com alguma que voc j esteja utilizando: pode ser um jogo em rede, um aplicativo ou outro servidor que j esteja em funcionamento
Porta
8080 8005 8009 8443

Descrio do servio
Servio de HTTP Servio de shutdown Conector AJP/1.3 Porta de HTTPS

Captulo 1 Preparao do ambiente de desenvolvimento

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.

1.3.2.2 Alterao do timeout da sesso


Em aplicativos web Java, a sesso uma rea de memria disponvel ao usurio. Essa rea de utilizada pelos aplicativos para guardar informaes entre as vrias requisies de pginas realizadas. O problema que o servidor web s sabe que o usurio existe quando ele acessa alguma pgina: ele no sabe se o usurio continua vendo o mesmo site ou se j fechou o navegador ou at desligou o computador. Para que essa rea de memria no fique eternamente disponvel ao usurio determinado um tempo de vida para ela. Esse tempo de vida denominado session timeout e configurvel no arquivo CATALINA_HOME\conf\web.xml. O valor informado corresponde quantidade de minutos pela qual o servidor manter a sesso ativa, sem qualquer novo acesso do usurio. Para configurar o timeout da sesso, localize o texto a seguir no arquivo web.xml e altere-o para o valor desejado.
<session-config> <session-timeout>30</session-timeout> </session-config>

Lembramos que valores muito altos podem prejudicar o servidor, pois ele poder estar consumindo uma quantidade de memria desnecessria por um tempo muito grande.

1.3.2.3 Uso do Manager do Tomcat


O Manager o aplicativo do Tomcat que permite gerenciar os aplicativos instalados, sendo acessvel pelo endereo http://localhost:8080/manager/HTML. Permite realizar as seguintes operaes remotamente com os aplicativos:

Start Inicia Stop Finaliza

40

Programao Java para a Web

Reload Reinicia Undeploy Desinstala

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.

Figura 1.17 Tela principal do Tomcat 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"/>

Captulo 1 Preparao do ambiente de desenvolvimento


<user username="tomcat" password="123456" roles="manager"/> </tomcat-users>

41

O nome manager a chave para definir o acesso ao aplicativo. Voc s poder alterar o username e password ou definir novos usurios.

1.3.2.4 Aumento da quantidade de memria disponvel para o Apache Tomcat


Por padro, todo aplicativo Java em execuo tem uma rea de memria reservada de 64 MB, porm, essa quantidade pode no ser suficiente em muitos casos. Se no uso de seu aplicativo comearem a ocorrer erros do tipo java.lang.OutOfMemoryError, a quantidade de memria disponvel no mais suficiente. Para contornar essa situao necessrio utilizar dois parmetros de configurao:
Parmetro
-Xmx -Xms

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.

Figura 1.18 Configurao da varivel CATALINA_OPTS.


O Apache Tomcat tem um arquivo padro para atribuir variveis de ambiente especficas para uma determinada instalao. Sempre que o Tomcat for inicializado, ele executar (caso exista) o arquivo setenv.bat ou setenv.sh. Nesse arquivo podem ser definidas variveis de ambiente como CATALINA_OPTS, JAVA_HOME ou qualquer outra que seja necessria.

42

Programao Java para a Web

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.

1.3.2.5 Monitoramento do consumo de memria e desempenho do Apache Tomcat


Essa dica ser apresentada para ser utilizada junto ao Apache Tomcat, porm, pode ser utilizada por qualquer aplicativo Java. O Java JDK tem um aplicativo de monitoramento JConsole, que permite realizar o monitoramento de aplicativos Java quanto a consumo de memria, processos (threads), carga de classes e consumo de processamento, entre outros. Existem dois passos necessrios para que seja possvel utiliz-lo. O primeiro que o aplicativo a ser monitorado precisa ter definido em sua linha de execuo o parmetro -Dcom.sun.management.jmxremote. Para o Tomcat, esse pode ser definido junto com a varivel CATALINA_OPTS; para qualquer outro aplicativo, deve ser colocado junto com a linha de execuo do Java (isso vale tambm para Xmx e Xms). Exemplo:
set CATALINA_OPTS=-Xms256m Xmx1024m -Dcom.sun.management.jmxremote

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

Captulo 1 Preparao do ambiente de desenvolvimento

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.19 Tela de entrada do JConsole.

Figura 1.20 Tela principal do JConsole, exibindo vrios grficos com estatsticas do processo monitorado.

44

Programao Java para a Web

1.3.2.6 Instalao do Apache Tomcat como servio


A instalao do Apache Tomcat como servio permite que ele seja iniciado automaticamente quando o computador for iniciado, sendo um recurso muito requisitado nas empresas.

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]

Para instalar, execute o comando service install, como a seguir:


C:\apache-tomcat-6.0.26\bin>service install

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.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

Figura 1.21 Aba General do configurador de servio do Apache Tomcat.

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

Programao Java para a Web

Figura 1.22 Aba Java do configurador de servio do Apache Tomcat.

Figura 1.23 Tela de servios do Windows, exibindo o servio do Apache Tomcat.

1.4 Eclipse IDE


A ferramenta Eclipse foi inicialmente desenvolvida pela IBM e depois doada para a comunidade. Hoje o Eclipse no apenas uma IDE de desenvolvimento Java, mas uma plataforma de desenvolvimento de cdigo aberto. Por padro, sempre que voc fizer um download do Eclipse ele estar preparado para o desenvolvimento Java, mas cada vez mais as empresas e a comunidade tm usado a plataforma Eclipse para criar plug-ins para as mais diversas linguagens de programao.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

1.4.1 Instalao do Eclipse


O primeiro passo para instalar o Eclipse obter seu pacote na internet. Acesse o site http://www.eclipse.org/downloads/ e ser exibida uma pgina como a da figura 1.24.

Figura 1.24 Tela da sesso de downloads do site do Eclipse.

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

Programao Java para a Web

Figura 1.25 Seleo do local de origem do download do Eclipse.

1.4.1.1 Instalao no Windows


Assim como no caso do Apache Tomcat, o Eclipse tambm no tem um instalador. Basta descompactar o arquivo no local que desejar. Vamos descompactar esse arquivo em sua unidade C:\, conforme a figura 1.26.

Figura 1.26 Estrutura de pastas depois de instalar o Eclipse.

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

Captulo 1 Preparao do ambiente de desenvolvimento

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.

Figura 1.27 Atalho do Eclipse configurando um determinado workspace.

1.4.1.2 Instalao no Linux


Depois de realizar o download do arquivo, copie-o para a pasta /usr/java.
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/eclipse-*tar.gz /usr/java.

Com o comando tar, extraia o arquivo nesse diretrio, conforme a seguir.


tar xvfz eclipse-jee-galileo-SR2-linux-gtk.tar.gz

50

Programao Java para a Web

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.

Figura 1.28 Estrutura de pastas depois de instalar o Eclipse.

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.

Figura 1.29 Criao de um atalho no Linux.

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.

Captulo 1 Preparao do ambiente de desenvolvimento

51

Figura 1.30 Configurao do atalho no Linux.

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.

Figura 1.31 Atalhos para o Eclipse criados na rea de trabalho do Linux.

1.4.2 Dicas de utilizao


Na figura 1.32 temos uma viso geral do Eclipse, na primeira vez em que ele aberto. Nele voc pode perceber a organizao geral da ferramenta. A primeira coisa que chama a ateno a organizao interna. Existem vrias subjanelas internas, que so conhecidas como views.

52

Programao Java para a Web

Figura 1.32 Viso da tela do Eclipse na primeira fez em que aberto.

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.

Figura 1.33 Viso das perspectivas inicialmente disponveis no Eclipse.

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.

Captulo 1 Preparao do ambiente de desenvolvimento

53

1.4.2.1 Perspectiva Java EE


Essa perspectiva mostra as views teis quando se est programando em Java, utilizando a plataforma Java EE. Elas so descritas a seguir.
View
Project Explorer

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.

1.4.2.2 Perspectiva Java


Essa perspectiva exibe as views teis quando se est desenvolvendo em Java, mas sem utilizar os recursos do Java EE. Ou seja, nessa perspectiva no exibida a view Server e, em vez da view Project Explorer, exibida a view Package Explorer, que facilita a visualizao dos packages dos projetos.

1.4.2.3 Perspectiva Debug


Essa perspectiva exibe as views teis quando se est realizando o debug de uma execuo em Java. O debug a execuo passo a passo de uma classe Java, permitindo visualizar as linhas que sero executadas. Nessa perspectiva existem, alm das views (Servers, Outline e Tasks) j apresentadas, as seguintes:
View
Debug Variables

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

Programao Java para a Web Descrio (cont.)


Exibe os pontos de parada obrigatria para a execuo da classe Java. Exibe as mensagens de sada da execuo do programa. Toda mensagem via System.out.println("Ol mundo") ser exibida no Console.

Geralmente, quando voc executar algum servidor ou classe Java em modo Debug, o Eclipse sugere automaticamente que essa perspectiva seja ativada.

1.4.2.4 Teclas de atalho


Um grande facilitador no uso do Eclipse e que dar muito mais velocidade a seu trabalho so as teclas de atalho. As teclas relacionadas a seguir esto entre as mais utilizadas.
Tecla de atalho
Ctrl+Espao

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

1.4.2.5 Configurao de fontes e cores


Uma configurao que muitas vezes fundamental para deixar a IDE mais ao gosto do usurio a configurao de fontes e cores. Alguns podem querer fontes maiores ou menores, ou uma cor de fundo diferente etc. Para alterar esse tipo de configurao no Eclipse, acesse Window Preferences. Na janela de preferncias, abra o item General Appearance Colors and Fonts. O item que altera as configuraes de fonte para o cdigofonte Java o Java Editor Text Font.

Captulo 1 Preparao do ambiente de desenvolvimento


No topo da janela Preferences, existe um campo com o texto type filter text. Qualquer palavra que voc digitar nesse campo far com que o Eclipse s mostre as opes de configurao que contenham essa palavra. Como essa janela contm muitas opes de configurao, e esse nmero aumentar na medida em que voc instalar novos recursos ou plug-ins, esse recurso bastante interessante. Um exemplo de propriedade muitas vezes necessria e que difcil encontrar a configurao de Proxy. Digite proxy nesse campo e o Eclipse rapidamente mostrar a opo correta para configurao: General Network Connections.

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.

1.4.3 Configurao do Apache Tomcat para funcionar dentro do Eclipse


Agora que j instalamos e configuramos o Apache Tomcat e o Eclipse IDE de forma individual, vamos integrar os dois para que Tomcat possa ser executado a partir do Eclipse. Isso permitir que uma classe ou JSP que j executada por padro no servidor tambm possa ser executada por dentro do ambiente interno da IDE Eclipse. O primeiro passo a ser feito ir at a view Servers, clicar com o boto direito do mouse e escolher New Server, conforme a figura 1.34.

Figura 1.34 Criao de um novo servidor na view Server.

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

Programao Java para a Web

Figura 1.35 Seleo do servidor a ser criado.

Figura 1.36 View Server do Eclipse exibindo o servidor recm-criado.

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.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

1.4.3.1 Configurao da memria disponvel para o Tomcat


Ainda na tela da figura 1.38, clique em Open launch configuration. A tela que ser exibida contm as informaes de configurao de como o Apache Tomcat ser executado por dentro do Eclipse. Na aba Arguments, altere o campo VM Arguments e acrescente os parmetros Xmx e Xms com a quantidade de memria necessria.

58

Programao Java para a Web

1.4.4 Criao de um novo projeto para executar no servidor


Agora que temos um servidor integrado ao Eclipse IDE, podemos criar nosso primeiro projeto web. Para isso clique com o boto direito do mouse na view Project Explorer, como na figura 1.39. Selecione a opo New Dynamic Web Project.
A criao de projetos tambm pode ser feita pelo menu File New Dynamic Web Project. Dependendo da perspectiva ativa pode ser que essa opo de projeto no seja apresentada. Nesse caso, v para New Other e selecione o item Web Dynamic Web Project.

Figura 1.39 Seleo do tipo do projeto a ser criado.

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.

Captulo 1 Preparao do ambiente de desenvolvimento


Esta opo do quadro Configuration no obrigatria, mas recomendada caso voc queria trabalhar com JavaServer Faces. O interessante que ela habilita o assistente de cdigo (code completion) nos arquivos XHTML, auxiliando na utilizao de tags e atributos. Independentemente de voc ter feito ou no esta opo, vamos configurar e instalar completamente o JavaServer Faces de forma manual no projeto.

59

Figura 1.40 Criao do novo projeto web.

Depois de criado o projeto, este deve aparecer na view Project Explorer, conforme a figura 1.41.

Figura 1.41 Viso do novo projeto criado.

60

Programao Java para a Web

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)

Captulo 1 Preparao do ambiente de desenvolvimento

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>

Programao Java para a Web

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.

Figura 1.43 Incluso de projetos para serem executados no servidor configurado.

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.

Figura 1.44 Inicializao do servidor para testar o projeto.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

Figura 1.45 Pgina de teste do projeto olamundo sendo visualizada no navegador.

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

Programao Java para a Web

1.5.1 Instalao do MySQL


O primeiro passo para instalar o MySQL obter seu arquivo do site http://www.mysql. com/downloads. Ao entrar no site, clique no boto downloads abaixo do nome MySQL Community Server, que a verso que utilizaremos, ou diretamente no endereo http:// dev.mysql.com/downloads/mysql/5.1.html. Role a pgina para baixo at encontrar os links de download para cada sistema operacional, conforme a figura 1.46. Selecione o instalador que pretende utilizar. Caso esteja utilizando o Linux Ubuntu, pule diretamente para a seo 1.5.1.2, pois poderemos usar o instalador apt-get. Para fazer o download, sugerimos a verso Windows MSI Installer, e para o Linux, a verso Linux (x86), a no ser que seu computador seja 64 bits.
Para a instalao em Windows, no obtenha a verso MySQL Essentials, pois ela vem com vrias ferramentas a menos no pacote.

Figura 1.46 Pgina de download do MySQL para diferentes sistemas operacionais.

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/.

Captulo 1 Preparao do ambiente de desenvolvimento

65

O MySQL Workbench inclui as seguintes ferramentas:


Ferramenta
Server Administration SQL Development Database Modeling

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

1.5.1.1 Instalao do MySQL Server no Windows


A instalao em Windows acontece com a ajuda de um assistente. Executando o arquivo de instalao, na segunda tela do assistente escolha o tipo de instalao Typical (Tpica), que disponibiliza as opes mais comuns do MySQL, conforme a figura 1.47.

Figura 1.47 Tela do assistente do MySQL na qual se escolhe o tipo de instalao.

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

Programao Java para a Web

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.

Captulo 1 Preparao do ambiente de desenvolvimento

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.

Figura 1.49 Tela de configurao de segurana.


Se voc j teve alguma vez instalado o MySQL em seu computador mesmo que tenha desinstalado-o corretamente a senha root definida continua valendo. Se voc fizer uma nova instalao do MySQL essa senha ser solicitada por meio do campo Current Password, que ser exibido.

1.5.1.2 Instalao do MySQL Workbench no Windows


Para a instalao do MySQL Workbench necessrio instalar antes o .Net Framework (caso j no esteja instalado). Este facilmente encontrado em qualquer site de downloads na internet, ou diretamente no site da Microsoft em http://www. microsoft.com/NET/.

68

Programao Java para a Web

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.

1.5.1.3 Instalao do MySQL Server no Linux


Se voc estiver utilizando o Linux Ubuntu, a instalao via apt-get ser muito mais fcil, pois ela far o download, instalao e configurao automticos das ferramentas. Se estiver utilizando outra distribuio, a instalao tradicional via tar.gz dever ser utilizada.

Instalao via apt-get


Esses comandos do apt-get instalaro a verso 5.0 do MySQL Server, pois essa a verso atualmente disponvel nessa forma de instalao.
shell> sudo apt-get update shell> sudo apt-get install mysql-server

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

Para finalizar o MySQL execute:


shell> /etc/init.d/./mysql stop

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

Captulo 1 Preparao do ambiente de desenvolvimento


shell> shell> shell> shell> shell> shell> shell> shell> shell> sudo sudo sudo sudo sudo sudo sudo sudo sudo cd /usr/local tar zxvf /caminho/para/o/arquivo/mysql-<verso>-<so>.tar.gz ln -s /mysql-<verso>-<so> mysql cd mysql chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data

69

Para iniciar o MySQL, execute:


shell> sudo bin/mysqld_safe --user=mysql &

Para finalizar o MySQL, execute:


shell> sudo bin/mysqladmin u root -p shutdown

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

1.5.1.4 Instalao do MySQL Workbench em Linux


Para a instalao do MySQL Workbench necessrio instalar antes alguns utilitrios, conforme a instruo a seguir.
sudo apt-get install liblua5.1-0 libzip1 libmysqlclient15off

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

Veja como utilizar o MySQL Workbench no tpico 1.5.2.

70

Programao Java para a Web

1.5.2 Uso do MySQL Workbench


Para acionar o MySQL Workbench no Windows, basta execut-lo no menu MySQL, enquanto no linux basta digitar mysql-workbench na linha de comando. Uma tela semelhante da figura 1.50 ser exibida. Nessa tela aparecem trs colunas, com os aplicativos disponveis, que so: SQL Development, Data Modeling e Server Administration. No decorrer deste livro vamos utilizar principalmente o SQL Development. O primeiro passo clicar em New Connection, (menu Database Manage Connection New) para criar uma nova conexo, abrindo uma tela conforme a da figura 1.51.

Figura 1.50 Tela do MySQL Workbench.

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.

Captulo 1 Preparao do ambiente de desenvolvimento

71

Figura 1.51 Tela de configurao de conexo no MySQL Workbench.

Figura 1.52 Tela para execuo de SQLs no MySQL Workbench.

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.