Ответ
После DispatcherServlet запрос передается на цепочку компонентов для поиска и выполнения контроллера.
Последовательность обработки:
- HandlerMapping: Определяет, какой контроллер (
@Controller) должен обработать запрос, основываясь на URL и HTTP-методе. - HandlerAdapter: Вызывает соответствующий метод найденного контроллера, разрешая параметры и обрабатывая аннотации (например,
@GetMapping).
Пример контроллера:
@Controller
public class GreetingController {
@GetMapping("/hello")
public String sayHello(Model model) {
model.addAttribute("message", "Hello, Spring MVC!");
return "greeting"; // Логическое имя представления (View)
}
}
- После выполнения метода контроллера результат передается в ViewResolver для преобразования логического имени представления (например,
"greeting") в конкретное (JSP, Thymeleaf шаблон). Затем происходит рендеринг и ответ отправляется клиенту.