🚦
Spring MVC

DispatcherServlet

The Front Controller
💡 DispatcherServlet ek OFFICE RECEPTIONIST hai — HAR visitor (request) pehle RECEPTIONIST (DispatcherServlet) se milta hai, jo phir DECIDE karta hai KIS DEPARTMENT (controller) ko bhejna hai — visitor khud DIRECTLY department mein nahi ghus sakta.

DispatcherServlet Spring MVC ka CENTRAL component hai — HAR incoming HTTP request YAHI SE hoke guzarта hai. Ye "Front Controller" design pattern hai — EK SINGLE entry point, jo request ko ANALYZE karके, SAHI controller method ko ROUTE karta hai.

DispatcherServlet ke process mein KAI steps hain: HandlerMapping se PUCHNA (kaun sa controller method?), HandlerAdapter se method INVOKE karvaна, aur agar view-based response hai to ViewResolver se ACTUAL view (HTML) resolve karvaна. REST APIs mein, view resolution SKIP ho jaati hai (@ResponseBody ki wajah se).

// Application flow (conceptually):
// 1. HTTP request aata hai → DispatcherServlet
// 2. DispatcherServlet → HandlerMapping ("kaun sa method?")
// 3. HandlerMapping → UserController.getUser() milta hai
// 4. Method execute hota hai, result return karta hai
// 5. @RestController mein: result JSON mein convert hoke response ban jaata hai
🚦
DispatcherServlet ek OFFICE RECEPTIONIST hai — HAR visitor (request) pehle RECEPTIONIST (DispatcherServlet) se milta hai, jo phir DECIDE karta hai KIS DEPARTMENT (controller) ko bhejna hai — visitor khud DIRECTLY department mein nahi ghus sakta.
1 / 6
⚡ झट से Recap
  • Front Controller pattern — EK entry point saari requests ke liye
  • HandlerMapping URL ko controller method se JODता hai
  • Spring Boot mein AUTOMATICALLY configured
इस page में (2 subtopics)

DispatcherServlet "FRONT CONTROLLER" design pattern IMPLEMENT karta hai — EK SINGLE entry point SAARI requests ke liye, jo phir unhe APPROPRIATE handler ko route karta hai. Isse cross-cutting concerns (logging, security checks) EK JAGAH handle ho sakte hain, HAR controller mein duplicate karne ke bajaye.

💡Tip: DispatcherServlet KHUD ek Servlet hai (Java EE ka standard concept) — Spring ise WRAP karके, apni SMART routing logic add karta hai.

Request aane par, DispatcherServlet HandlerMapping se PUCHTA hai "is URL ke liye KAUN SA controller method chalाना hai?" — @RequestMapping/@GetMapping annotations SCAN karके, ye mapping PEHLE SE build kar li jaati hai application startup par, taaki HAR request par lookup FAST ho.

  • DispatcherServlet = single entry point, saari requests ke liye
  • HandlerMapping = URL → controller method ka mapping
  • HandlerAdapter = actual method ko invoke karta hai