8-modul · 4-dars: Spring MVC

Daraja: Ilg'or

Spring MVC. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Spring MVC tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Spring MVC Servlet API ustiga qurilgan model-view-controller frameworkidir. DispatcherServlet front controller sifatida requestni qabul qiladi. HandlerMapping mos handlerni topadi, HandlerAdapter chaqiradi, controller Model va view nomini yoki response body qaytaradi. ViewResolver nomni viewga aylantiradi, template engine HTMLni hosil qiladi. @Controller ko'pincha server-rendered view uchun, @RestController esa body qaytaradigan API uchun ishlatiladi. @PathVariable URL segmentini, @RequestParam query/form parametrini, @RequestBody converter orqali bodyni oladi. HTTP method, content type va validationni aniq belgilang; har bir narsani GETga joylamang. Controller transport bilan ishlasin, biznes qoida servicega o'tsin. Shu ajratish web test bilan service unit testini mustaqil qiladi. DispatcherServlet barcha xavfsizlikni o'zi bajarmaydi: filter chain undan oldin ishlaydi. Natija yuborilishida HttpMessageConverter JSON kabi formatga serializatsiya qilishi yoki view HTMLni render qilishi mumkin; ikki oqimni farqlang.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@org.springframework.stereotype.Controller
class HomeController {
  @org.springframework.web.bind.annotation.GetMapping("/home")
  String home(org.springframework.ui.Model model) {
    model.addAttribute("message", "Bugun Java o'rganamiz");
    return "home";
  }
}

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-08

Interaktiv ko'rinish (viktorina, izohlar, tarix)