Junior
Como criar uma aplicação web em Java?
sobes.tech IA
Resposta da IA
Criar uma aplicação web em Java pode ser feito usando frameworks e tecnologias do ecossistema Java Enterprise Edition (Java EE) ou Spring.
Principais passos e componentes:
-
Escolha da tecnologia/framework:
- Java EE: Usa especificações como Servlet/JSP, JSF, JAX-RS (RESTful), JPA. Requer um servidor de aplicações (Tomcat, Jetty, WildFly, GlassFish).
- Spring Framework: Framework popular com um amplo conjunto de módulos (Spring MVC, Spring Boot, Spring Data). Spring Boot permite criar aplicações autónomas (standalone) com servidor embutido.
-
Estrutura do projeto:
- Usa um sistema de build, por exemplo, Maven ou Gradle.
- Estrutura típica para uma aplicação web (arquivo WAR):
├── src │ ├── main │ │ ├── java // Código Java (servlets, controladores, serviços) │ │ ├── resources // Recursos (ficheiros de configuração, propriedades) │ │ └── webapp // Recursos web (HTML, CSS, JS, JSP, WEB-INF) │ └── test // Testes └── pom.xml ou build.gradle // Ficheiro de build WEB-INFcontémweb.xml(descriptor de implantação para Java EE) e classes/bibliotecas.
-
Frontend:
- HTML, CSS, JavaScript.
- Tecnologias de rendering no servidor (Server-Side Rendering - SSR): JSP, Thymeleaf, Freemarker.
- Frameworks para frontend (Client-Side Rendering - CSR): React, Angular, Vue.js (neste caso, backend em Java fornece API REST).
-
Backend:
- Servlets: Tecnologia fundamental do Java EE para processar pedidos HTTP. Processam pedidos e geram respostas.
- JSP (JavaServer Pages): Permitem inserir código Java em HTML para conteúdo dinâmico. Frequentemente usados com servlets (servlet como controlador, JSP como visualização).
- Frameworks:
- Spring MVC: Permite implementar o padrão Model-View-Controller (MVC). Usa controladores para processar pedidos, modelos para dados e visualizações para exibição.
- Spring Boot: Simplifica a configuração e implantação de aplicações Spring. Inclui servidor embutido, autoconfiguração.
- JSF (JavaServer Faces): Framework UI baseado em componentes para Java EE.
- JAX-RS: Especificação Java EE para criar serviços web RESTful.
-
Acesso a dados:
- JDBC (Java Database Connectivity): API de baixo nível para trabalhar com bases de dados.
- Frameworks ORM (Object-Relational Mapping): JPA (Hibernate, EclipseLink), Spring Data JDBC/JPA. Permitem trabalhar com bases de dados usando objetos Java.
-
Desdobramento:
- Ficheiro WAR: Empacota e desdobra num servidor de aplicações Java EE (Tomcat, Jetty, etc.).
- JAR autónomo (Spring Boot): Contém um servidor embutido e pode ser iniciado como um JAR normal.
Exemplo de criação de uma aplicação web simples usando Spring Boot (API REST):
- Uso do Spring Initializr (start.spring.io) para gerar um projeto base com dependências
Spring WebeSpring Data JPA(para exemplo com base de dados). - Criar uma classe controladora para tratar pedidos HTTP:
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController // Anotação que indica que é um controlador REST public class HelloWorldController { @GetMapping("/hello") // Trata pedidos GET na rota /hello public String sayHello(@RequestParam(value = "name", defaultValue = "World") String name) { // Aceita parâmetro opcional name return String.format("Hello, %s!", name); // Forma a string de resposta } } - Criar uma classe de entidade e um repositório usando Spring Data JPA (se necessário trabalhar com base de dados).
- Configurar a fonte de dados em
application.propertiesouapplication.yml. - Executar a classe principal da aplicação Spring Boot.
Este método permite criar rapidamente uma aplicação web funcional, concentrando-se na lógica de negócio.