Use o código e tenha 10% de desconto!

Play Framework Java para web sem Servlets e com diversão

Fernando Boaglio
Capa

Play Framework

Agradecimentos

Agradeço a você por querer aprender mais, à minha esposa por sempre estar ao meu lado, aos meus pais e a Deus por tudo.

E segue o jogo!

Sobre o autor

Formado pela UNESP em BCC, foi instrutor oficial da Sun Microsystems e da Oracle Education. Atualmente contribui para alguns projetos open source, como KDE, Jenkins entre outros.

Prefácio

O melhor presente que se dá é aquele que você gostaria de ganhar.

Esse é o livro que eu gostaria de ler quando estava começando a usar o Play Framework, ele é o meu presente para você, aproveite!

 

Público alvo

 

Esse livro foi feito para programadores Java (iniciantes e veteranos) que buscam pelo desenvolvimento rápido e divertido de aplicações web.

 

Quickstart – a primeira parte do livro

 

Para rapidamente configurar o seu ambiente de desenvolvimento, disponibilizar a sua aplicação bonita, acessando banco de dados e publicando na nuvem não será preciso ler todos os capítulos, apenas os quatro primeiros.

 

Melhorando sua aplicação – a segunda parte do livro

 

Os capítulos restantes complementam a sua aplicação com a criação de serviços, autenticação e o uso de alguns plugins imperdíveis para o seu sistema.

 

Código fonte

 

O código fonte desse livro está disponível no endereço https://github.com/boaglio/play2-casadocodigo, onde foram criadas tags para cada um dos capítulos, para facilitar a compreensão da evolução do nosso sistema de filmes cult.

Sumário

  • 1 - Hello Play Java e Hello Play Scala
    • 1.1 - O que é o Play
    • 1.2 - O que não é o Play
    • 1.3 - Instalação do Play
    • 1.4 - Sua primeira aplicação Java
    • 1.5 - A estrutura da aplicação Play
    • 1.6 - Subindo sua aplicação Play
    • 1.7 - Olá Scala
    • 1.8 - Preciso saber Scala?
    • 1.9 - Próximos passos
  • 2 - Navegando com estilo
    • 2.1 - Bem-vindo ao Eclipse
    • 2.2 - Navegação
    • 2.3 - Adicionando estilo
    • 2.4 - Organizando as páginas
    • 2.5 - Próximos passos
  • 3 - Persistindo seus dados
    • 3.1 - Próximos passos
  • 4 - Publicando em qualquer lugar
    • 4.1 - Rede local
    • 4.2 - Servidor Java EE
    • 4.3 - Deploy na nuvem
    • 4.4 - Próximos passos
  • 5 - Melhorando o input do usuário
    • 5.1 - Isolando mensagens
    • 5.2 - Tratando erros
    • 5.3 - Páginas customizadas
    • 5.4 - Próximos passos
  • 6 - Criando serviços
    • 6.1 - Acessando serviço via web
    • 6.2 - Debugando pelo Eclipse
    • 6.3 - Acessando serviço via mobile
    • 6.4 - Próximos passos
  • 7 - Integrando nas redes sociais
    • 7.1 - Criando uma aplicação no Facebook
    • 7.2 - Integração via JavaScript
    • 7.3 - Integração via SecureSocial
    • 7.4 - Próximos passos
  • 8 - Melhorias na aplicação
    • 8.1 - Configurando HTTPS
    • 8.2 - Lendo constantes globais
    • 8.3 - Upload de imagem
    • 8.4 - Testando sua aplicação
    • 8.5 - Próximos passos
  • 9 - Continue seus estudos
    • 9.1 - Para saber mais
  • 10 - Apêndice A - Play console em detalhes
    • 11 - Apêndice B - Instalação e configuração do PostgreSQL
      • 12 - Apêndice C - Instalação e configuração do Android
        Capítulo1

        Hello Play Java e Hello Play Scala

        1.1 - O que é o Play

        O Play é um framework que redefine o desenvolvimento web em Java. O seu foco é o divertido desenvolvimento no qual a interface HTTP é algo simples, flexível e poderoso, sendo uma alternativa limpa para as opções Enterprise Java infladas. Ele foca na produtividade do desenvolvedor para as arquiteturas RESTful, e sua vantagem em relação às linguagens e frameworks não Java, como Rails e PHP, é que ele usufriu de todo o poder da Java Virtual Machine (JVM).

        1.2 - O que não é o Play

        O Play não é um framework padrão Java EE, como Spring, Struts ou VRaptor – ele usa uma arquitetura extremamente simples.

        Uma aplicação JSF roda sobre a API de Servlet, que por sua vez roda em um container Java EE, que fica dentro de um HTTP Server.

        Perceba que todo desenvolvedor é obrigado a trabalhar com essas quatro camadas. Já com o Play, temos apenas duas: o próprio Play framework e o seu HTTP server embutido (Netty).

        Além disso, ele não é apenas um framework web, ele é uma solução completa que envolve persistência e muito mais recursos, como:

        • Servidor HTTP integrado;
        • Acesso completo à interface HTTP;
        • API de serviços REST;
        • Código cujas mudanças é possível testar com um simples reload de página;
        • Engine de template de alta performance;
        • Permitir que sua aplicação funcione para vários idiomas;
        • Compilação dos arquivos estáticos de sua aplicação;
        • Suporte a I/O assíncrono;
        • Validação HTML do input do usuário;
        • Cache integrado;
        • Sistema de build próprio e integrado (sbt);
        • Plataforma akka criada para ambiente distribuído e à prova de falhas;
        • Persistência de dados.

        Confira a visão geral do Play na figura *

        Play framework stack
        Figura 1.1: Play framework stack


        1.3 - Instalação do Play

        A instalação do Play é bem simples e feita em apenas dois passos. O primeiro deles é fazer o download do site http://www.playframework.org. Depois disso, faça o ajuste conforme o seu sistema operacional.

         

        Instalação no Windows

         

        Descompacte o pacote na raiz e renomeie o diretório compactado para play. Exemplo: o arquivo play-2.2.1.zip criará o diretório C:\play-2.2.1\. Renomeie-o para C:\play\.

        Variável de ambiente no Windows
        Figura 1.2: Variável de ambiente no Windows


        Edite a variável PATH conforme a figura *, adicionando no final do PATH o valor de ;C:\play\.

        Atrás de um proxy

        Se sua internet estiver atrás de um proxy, altere o arquivo C:\play\framework\build.bat na linha de comando Java e adicione os parâmetros:

        -Dhttp.proxyUser=<meu-usuario> 
        -Dhttp.proxyPassword=<minha-senha> 
        -Dhttp.proxyHost=<servidor> 
        -Dhttp.proxyPort=<porta>
        

        Caso seja lançada uma atualização do Play, e você queira atualizar, renomeie o diretório C:\play\ para C:\play-old\ e descompacte a nova versão em C:\play\.

         

        Instalação em Linux

         

        Descompacte o pacote na raiz, por exemplo: /home/fb/play-2.2.1/, e crie um link simbólico para esse diretório chamado play, como:

        ln -s /home/fb/play-2.2.1/  /home/fb/play
        

        Caso haja uma atualização, descompacte a nova versão e atualize o link simbólico para o novo diretório.

        Adicione no arquivo $HOME/.bashrc ou em $HOME/.bash_profile o comando: export PATH=$PATH:$HOME/play/.

         

        Instalação em Mac OSX

         

        Descompacte o pacote na raiz, por exemplo: /home/fb/play-2.2.1/, e crie um link simbólico para esse diretório chamado play, como:

        ln -s /home/fb/play-2.2.1/  /home/fb/play
        

        Adicione no arquivo /etc/paths o diretório $HOME/play/.

        Em uma eventual atualização, descompacte a nova versão e atualize o link simbólico para o novo diretório.

        Se preferir usar o Homebrew, apenas rode o comando brew install play.

         

        Testando sua instalação

         

        Depois de configurado, abra o console do seu sistema operacional e digite play help. O resultado esperado está na figura *.

        Instalação do Play com sucesso no Windows
        Figura 1.3: Instalação do Play com sucesso no Windows


        Pronto! Agora que o Play está instalado, podemos começar a nossa primeira aplicação!

        1.4 - Sua primeira aplicação Java

        Para criar a nossa primeira aplicação, é só digitar play new <nome-da-aplicação>:

        fb@cascao ~/workspace-play > play new play-java
               _
         _ __ | | __ _ _  _
        | '_ \| |/ _' | || |
        |  __/|_|\____|\__ /
        |_|            |__/
        
        play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51), 
        http://www.playframework.com
        
        The new application will be created in /home/fb/workspace-play/
        play-java
        
        What is the application name? [play-java]
        >
        

        Depois escolha a opção 2, que vai criar uma aplicação Play Java:

        Which template do you want to use for this new application? 
        
          1             - Create a simple Scala application
          2             - Create a simple Java application
        
        > 2
        OK, application play-java is created.
        
        Have fun!
        
        fb@cascao ~/workspace-play >
        

        E pronto, sua aplicação está criada!

        1.5 - A estrutura da aplicação Play

        Vamos apenas olhar o que foi criado, sem muitos detalhes:

        .
        |-- app                            (arquivos Java da aplicação)
        |   |-- controllers
        |   |   `-- Application.java   
        |   `-- views
        |       |-- index.scala.html
        |       `-- main.scala.html
        |-- build.sbt
        |-- conf                           (arquivos de configuração)
        |   |-- application.conf
        |   `-- routes
        |-- project
        |   |-- build.properties
        |   `-- plugins.sbt
        |-- public                         (arquivos estáticos)
        |   |-- images
        |   |   `-- favicon.png
        |   |-- javascripts
        |   |   `-- jquery-1.9.0.min.js
        |   `-- stylesheets
        |       `-- main.css
        |-- README
        `-- test                           (arquivos para testes)
            |-- ApplicationTest.java
            `-- IntegrationTest.java
        

        1.6 - Subindo sua aplicação Play

        A administração de sua aplicação é feita pelo play console, que possui diversos comandos de gerenciamento.

        Para chamar o console, dentro do diretório criado na sua aplicação digite play, e depois o comando run para subir.

        fb@cascao ~/workspace-play/play-java > play
        [info] Loading project definition from 
        /home/fb/workspace-play/play-java/project
        [info] Set current project to play-java (in build 
        file:/home/fb/workspace-play/play-java/)
               _
         _ __ | | __ _ _  _
        | '_ \| |/ _' | || |
        |  __/|_|\____|\__ /
        |_|            |__/
        
        play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51), 
        http://www.playframework.com
        
        > Type "help play" or "license" for more information.
        > Type "exit" or use Ctrl+D to leave this console.
        
        [play-java] $ run
        [info] Updating {file:/home/fb/workspace-play/play-java/
        }play-java...
        [info] Resolving org.fusesource.jansi#jansi;1.4 ...
        [info] Done updating.
        
        --- (Running the application from SBT, auto-reloading is 
        enabled) ---
        
        [info] play - Listening for HTTP on /0.0.0.0:9000
        
        (Server started, use Ctrl+D to stop and go back to the 
        console...)
        

        Em seguida, é possível acessar a aplicação através do browser pelo endereço http://localhost:9000/, obtendo um resultado semelhante à figura *.

        Rodando Play
        Figura 1.4: Rodando Play


        Para derrubar o servidor, tecle Control+D e, para sair do play console, digite exit.

        1.7 - Olá Scala

        Durante o livro, vamos focar no Java, mas criar e rodar uma aplicação em Scala é parecido:

        fb@cascao ~/workspace-play > play new play-scala
               _
         _ __ | | __ _ _  _
        | '_ \| |/ _' | || |
        |  __/|_|\____|\__ /
        |_|            |__/
        
        play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51), 
        http://www.playframework.com
        
        The new application will be created in /home/fb/workspace-play/
        play-scala
        
        What is the application name? [play-scala]
        >
        

        Depois selecione a opção 1, que vai criar uma aplicação Play Scala:

        Which template do you want to use for this new application? 
        
          1             - Create a simple Scala application
          2             - Create a simple Java application
        
        > 1
        OK, application play-scala is created.
        
        Have fun!
        
        fb@cascao ~/workspace-play > cd play-scala/
        fb@cascao ~/workspace-play/play-scala > play
        [info] Loading project definition from 
        /home/fb/workspace-play/play-scala/project
        [info] Set current project to play-scala 
        (in build file:/home/fb/workspace-play/play-scala/)
               _
         _ __ | | __ _ _  _
        | '_ \| |/ _' | || |
        |  __/|_|\____|\__ /
        |_|            |__/
        
        play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51), 
        http://www.playframework.com
        
        > Type "help play" or "license" for more information.
        > Type "exit" or use Ctrl+D to leave this console.
        
        [play-scala] $ run
        [info] Updating {file:/home/fb/workspace-play/play-scala/
        }play-scala...
        [info] Resolving org.fusesource.jansi#jansi;1.4 ...
        [info] Done updating.
        
        --- (Running the application from SBT, auto-reloading is 
        enabled) ---
        
        [info] play - Listening for HTTP on /0.0.0.0:9000
        
        (Server started, use Ctrl+D to stop and go back to the 
        console...)
        
        [info] Compiling 5 Scala sources and 1 Java source to
         /home/fb/workspace-play/play-scala/target/scala-2.10/classes...
        [info] play - Application started (Dev)
        

        O resultado também é semelhante à figura *.

        Rodando Play
        Figura 1.5: Rodando Play


        1.8 - Preciso saber Scala?

        Felizmente não. O core do Play 2 é feito em Scala, mas ele é perfeito para Java, pois podemos trabalhar com ele sem aprender uma nova linguagem e ambos usam a nossa querida JVM.

        1.9 - Próximos passos

        Certifique-se de que aprendeu:

        • visão geral do Play Framework;
        • como instalar o Play;
        • como criar sua primeira aplicação em Java e Scala.

        Agora que já molhamos os pés, nos próximos capítulos vamos aprender a nadar criando o primeiro CRUD.

        Dados do produto

        Número de páginas:
        155
        ISBN:
        978-85-66250-42-8
        Data publicação:
        02/2014

        Compartilhe!

        Compartilhe no Facebook Compartilhe no Twitter