Trabalho para a disciplina de Desenvolvimento WEB — 5º período (Ciência da Computação).
Três pequenas aplicações web em Jakarta EE (Servlets) que demonstram envio de formulários HTML, tratamento de parâmetros, separação de regras de negócio e resposta em HTML. Estilo via style.css e ícones via Font Awesome.
- Java 21
- NetBeans (ou IDE equivalente)
- WildFly (configurado no NetBeans)
- Maven (projeto Maven)
ExercicioServlets/
│
├─ src/main/java/io/github/vitorribe/joaobotelhoexercicioservlets/
│ │
│ ├─ servlets/
│ │ │
│ │ ├─ CalculadoraServlet.java (GET /calculadora)
│ │ ├─ DistanciaServlet.java (POST /distancia)
│ │ └─ IMCServlet.java (POST /imc)
│ │
│ └─ negocio/
│ │
│ ├─ Calculadora.java
│ ├─ Ponto.java
│ └─ IMC.java (com ResultadoIMC)
│
├─ src/main/webapp/
| |
│ ├─ index.html
│ ├─ aplicacao1.html
│ ├─ aplicacao2.html
│ ├─ aplicacao3.html
│ └─ style.css
|
└─ pom.xml
- Abra o NetBeans e importe/abra o projeto Maven.
- Configure WildFly em Tools → Servers (apontar para a pasta do WildFly).
- Build/Run pelo NetBeans:
Run→ deploy no WildFly. - Acesse
http://localhost:8080/<context>(o context é o nome do projeto — ver output do deploy).
- Página:
aplicacao1.html - Form:
method="get", camposnum1enum2 - Servlet:
CalculadoraServlet - Classe de negócio:
Calculadora.java
Fluxo
- Usuário envia dois números via GET.
- Servlet lê e converte os parâmetros (
num1,num2). - Chama
Calculadora.javaque retorna soma, subtração, multiplicação e divisão. - Resposta exibida em HTML.
Exemplo de saída
- Página:
aplicacao2.html - Form:
method="post", camposx1,y1,x2,y2 - Servlet:
DistanciaServlet - Classe de negócio:
Ponto.java
Fluxo
- Form envia POST para
/distancia. - Servlet cria objetos
Pontoe calcula a distância comp1.distancia(p2). - Resposta exibida em HTML.
Exemplo de saída
- Página:
aplicacao3.html - Form:
method="post", campospeso(kg),altura(m) - Servlet:
IMCServlet - Classe de negócio:
IMC.javacomResultadoIMC
Fluxo
- Servlet recebe peso e altura.
- Chama
IMC.calcular(peso, altura)→ retorna valor do IMC e classificação. - HTML exibe:
- Texto com resultado.
- Barra colorida (
div.imc-scale) proporcional ao IMC. - Legenda com faixas (
<18.5,18.5–24.9,25–29.9,>=30).
Exemplo de saída
- Estilos definidos em
style.css, aplicado a todas as páginas.






