TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #2202 2.11K
🤔 Как на Java писать веб-приложение?

Веб-приложение на Java – это серверное приложение, которое обрабатывает HTTP-запросы и отправляет ответы клиенту.

🚩Написание веб-приложения на Spring Boot

Установка зависимостей (Maven)
Создайте pom.xml и добавьте
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.2</version> <!-- Используйте актуальную версию -->
</dependency>
</dependencies>


Создание основного класса (точка входа)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyWebApp {
public static void main(String[] args) {
SpringApplication.run(MyWebApp.class, args);
}
}


Создание контроллера (обработка HTTP-запросов)**
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class MyController {

@GetMapping("/hello")
public String sayHello() {
return "Привет, это веб-приложение на Java!";
}
}


Теперь при открытии http://localhost:8080/api/hello сервер вернёт:
Привет, это веб-приложение на Java!


🚩Разработка фронтенда (HTML + Thymeleaf)

Если приложение рендерит страницы на сервере, используйте Thymeleaf.
Добавьте зависимость в pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


Создайте HTML-шаблон (src/main/resources/templates/index.html)
<!DOCTYPE html>
<html>
<head>
<title>Главная страница</title>
</head>
<body>
<h1>Привет, <span th:text="${name}"></span>!</h1>
</body>
</html>


Создайте контроллер для отображения страницы
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class WebController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("name", "Гость");
return "index"; // Возвращает "index.html"
}
}


🚩Работа с базой данных (Spring Data JPA + PostgreSQL)

Добавьте зависимости в pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>


Настройте application.properties (подключение к БД)
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update


Создайте сущность (таблицу в БД)
import jakarta.persistence.*;

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;

// Геттеры и сеттеры
}


Создайте Repository для работы с БД
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}


Контроллер для работы с БД
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
private final UserRepository userRepository;

public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}

@GetMapping
public List<User> getUsers() {
return userRepository.findAll();
}

@PostMapping
public User addUser(@RequestBody User user) {
return userRepository.save(user);
}
}


Запустите приложение:
mvn spring-boot:run


Проверьте API через браузер или Postman
http://localhost:8080/users


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 5
  • 💊 3
  • 🤔 2
More from @easy_java_ru
  1. Oct 4, 2026Post #2940
  2. Oct 3, 2026🤔 В каких состояниях может находиться поток? Поток может находиться в следующих состояния…
  3. Oct 3, 2026Post #2938
  4. Oct 3, 2026🤔 Что такое Appender в log4j? Это компонент, который отвечает за отправку логов в различн…
  5. Oct 3, 2026Post #2936
  6. Oct 2, 2026🤔 Что такое временная сложность? Временная сложность — это оценка времени выполнения алго…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →