Olá, Mundo!
Ao aprender novas tecnologias, o primeiro programa que desenvolvemos é um "Olá Mundo". O propósito deste programa é validar a instalação de todas as ferramentas de nosso ambiente de trabalho, garantindo que está tudo funcionando corretamente.
Iniciando um novo projeto
O Google App Engine já possui arquétipos para começarmos. Os arquétipos são templates de projetos publicados nos repositórios do Maven.
Para isso, vamos executar o seguinte comando (quebras de linha foram inseridas para facilitar a leitura):
mvn archetype:generate -Dappengine-version=1.9.17 \
-Dapplication-id=appengine-ola-mundo \
-Dfilter=com.google.appengine.archetype:
Se for a primeira vez que você executa o maven, ele fará o download de vários arquivos e irá mantê-los em cache para novas execuções.
O Maven vai então listar os arquétipos encontrados
com o filtro do Google App Engine.
Utilize o número correspondente ao template
com.google.appengine.archetypes:appengine-skeleton-archetype
.
Este template configura a estrutura de diretórios necessária,
bem como os arquivos obrigatórios para o seu projeto.
Quando for pergutando sobre a versão do template, utilize o número correspondente à versão mais recente.
Em seguida, siga as etapas do prompt respondendo às perguntas:
- groupId: br.com.orangeinstitute
- artifactId: ola-mundo
- version: 1.0-SNAPSHOT
- package: br.com.orangeinstitute
Depois de preencher a todas as perguntas, pressione a tecla ENTER
para confirmar e criar o projeto.
Um novo diretório chamado ola-mundo
vai ser criado pelo maven,
contendo a seguinte estrutura:
ola-mundo/
|-- eclipse-launch-profiles/
| |-- DevAppServerLaunch.launch
| |-- UpdateApplication.launch
|-- nbactions.xml
|-- pom.xml
|-- README.md
|-- src/
|-- main/
| |-- java/
| |-- webapp/
| |-- WEB-INF/
| |-- appengine-web.xml
| |-- logging.properties
| |-- web.xml
|-- test/
Nesta estrutura, o Maven espera que:
src/main/java
contenha seu código Javasrc/main/webapp
contenha os assets e páginas JSP
Escrevendo o OlaMundoServlet.java
Vamos agora começar com o primeiro Servlet. Ao desenvolvermos uma aplicação Java para a Web, as requisições são processadas por Servlets, que são classes de código Java que produzem uma resposta para uma requisição HTTP.
Utilizando a sua IDE, crie um novo arquivo dentro da pasta
src/main/java/br/com/orangeinstitute/
,
com o nome OlaMundoServlet.java
,
e o seguinte conteúdo:
package br.com.orangeinstitute;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class OlaMundoServlet extends HttpServlet {
private static final long serialVersionUID = 1l;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.getWriter().println("Olá, mundo!");
}
}
- Dica: utilize o comando
mkdir -p src/main/java/br/com/orangeinstitute
para inicializar todos os diretórios de uma única vez.
Agora, vamos mapear este servlet para ser acessado em nossa aplicação.
Fazemos isso editando o arquivo web.xml
que está na pasta
src/main/webapp
, e incluindo as seguintes linhas:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ola</servlet-name>
<servlet-class>br.com.orangeinstitute.OlaMundoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ola</servlet-name>
<url-pattern>/ola</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>ola</welcome-file>
</welcome-file-list>
</web-app>
Iniciando o servidor de desenvolvimento
A SDK do Google App Engine possui um servidor para desenvolvimento, que pode ser utilizado para a emulação do ambiente de produção. Para iniciar o servidor de desenvolvimento, vamos utilizar novamente o Maven:
mvn appengine:devserver -Dappengine.address=0.0.0.0
Neste ponto, pode ser que o Maven faça o download de mais arquivos para complementar os plugins e demais recursos. Quando o servidor estiver iniciado você poderá visualizar uma mensagem no prompt indicando a porta na qual o servidor está executando (8080).
Para acessar o seu aplicativo localmente, navegue até o endereço
http://localhost:8080/. Você deverá visualizar a mensagem
Olá, mundo!
em seu navegador.