MVC Flow: Form to Servlet to Model to JSP to Response
MVC Flow: Form to Servlet to Model to JSP to Response
Introduction to MVC Flow
दोस्तों, जब हम Java Web Applications बनाते हैं, तो सबसे ज़रूरी होता है कि हमारा code structured और maintainable रहे। इसी purpose के लिए MVC (Model-View-Controller) architecture use किया जाता है। यह architecture application को तीन अलग-अलग parts में divide करता है ताकि logic और presentation अलग-अलग handle किए जा सकें।
इस blog में हम step by step समझेंगे कि एक Form से Servlet तक, फिर Model और JSP तक data कैसे flow करता है और आखिर में browser को response कैसे मिलता है।
What is MVC Architecture?
MVC का मतलब है — Model-View-Controller। ये तीनों मिलकर web application का पूरा flow control करते हैं।
- Model: यह part business logic और database interaction संभालता है।
- View: यह user interface है जो data को display करता है।
- Controller: यह middle layer होती है जो user request को process करती है और Model और View के बीच communication करती है।
Example Understanding
सोचिए आपने login form भरा — username और password डाला — अब ये data कहाँ जाता है? यही से शुरू होता है हमारा MVC Flow।
1. Form to Servlet (User Request to Controller)
सबसे पहले user एक form भरता है और submit करता है। यह form data HTTP request के रूप में Servlet को भेजता है। Servlet Controller का काम करता है।
Example Form (login.html)
<form action="LoginServlet" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
यहाँ action="LoginServlet" बताता है कि form data LoginServlet को भेजा जाएगा। जब user “Login” button दबाता है, तो servlet इस request को receive करता है।
2. Servlet to Model (Controller to Business Logic)
अब servlet इस data को process करने के लिए Model को भेजता है। Model class database से connect होकर actual verification करती है — जैसे username और password सही हैं या नहीं।
Servlet Example (LoginServlet.java)
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uname = request.getParameter("username");
String pass = request.getParameter("password");
LoginModel model = new LoginModel();
boolean result = model.checkLogin(uname, pass);
if(result){
request.setAttribute("user", uname);
RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
} else {
response.sendRedirect("error.jsp");
}
}
}
ऊपर के code में servlet user input ले रहा है, उसे LoginModel को भेज रहा है और फिर result के आधार पर JSP page पर redirect कर रहा है।
3. Model Layer (Business Logic and Database Interaction)
Model layer में वो logic होता है जो actual computation या database query चलाता है। इसका काम होता है data को validate करना, process करना और वापस Servlet को result देना।
Model Example (LoginModel.java)
public class LoginModel {
public boolean checkLogin(String uname, String pass){
if(uname.equals("admin") && pass.equals("1234")){
return true;
} else {
return false;
}
}
}
यहाँ simple logic use किया गया है, लेकिन real-world application में यहाँ database queries होती हैं जो user authentication check करती हैं।
4. Model to JSP (Data to Presentation Layer)
जब servlet को result मिलता है, तो वह data को JSP (View layer) में forward करता है। JSP का काम है user को readable format में output दिखाना।
Example JSP (welcome.jsp)
<html>
<body>
<h2>Welcome, <% out.print(request.getAttribute("user")); %></h2>
</body>
</html>
यहाँ JSP dynamic content दिखाता है — यानी user का नाम सीधे page पर print होता है। JSP में presentation होती है, logic नहीं।
5. JSP to Response (Final Output to Browser)
अब JSP HTML में convert होकर browser को भेजा जाता है। यही final response होता है जो user के screen पर दिखाई देता है।
इस तरह complete MVC flow चलता है — user से लेकर browser तक।
MVC Flow Summary Table
| Step | Flow Direction | Component | Responsibility |
|---|---|---|---|
| 1 | Form → Servlet | Controller | Request receive करता है |
| 2 | Servlet → Model | Model | Business logic execute करता है |
| 3 | Model → Servlet | Controller | Result को process करता है |
| 4 | Servlet → JSP | View | Result को display करता है |
| 5 | JSP → Browser | Response | User को final output दिखाता है |
Advantages of MVC Flow
- Separation of Concerns: Presentation, Logic और Data clearly अलग रहते हैं।
- Code Reusability: Model और View बार-बार use किए जा सकते हैं।
- Maintainability: Changes करने में आसानी होती है क्योंकि हर layer independent होती है।
- Scalability: Application को बढ़ाना और manage करना आसान होता है।
- Testing Friendly: Controller और Model को अलग-अलग test किया जा सकता है।
Real World Example (Bank Login System)
मान लीजिए आपने Bank की website खोली। आपने username और password डाला और login किया। अब यह data Servlet को गया, जहाँ Controller ने इसे Model को भेजा। Model database में check करता है कि login details सही हैं या नहीं। अगर सही हैं तो Controller “Dashboard.jsp” को forward करता है, जहाँ आपका account data दिखता है। यही पूरा MVC flow है।
MVC Flow in Short
- User fills the form → Servlet को request जाती है।
- Servlet request को Model को देता है।
- Model logic या database से data fetch करता है।
- Servlet result को JSP को forward करता है।
- JSP final output browser को भेजता है।
Best Practices for MVC Implementation
- Servlet में सिर्फ control logic रखें, business logic नहीं।
- Model में database connection और logic handle करें।
- JSP में केवल presentation logic रखें — कोई business logic नहीं।
- Data को forward करने के लिए
RequestDispatcheruse करें। - Error handling के लिए try-catch blocks और error pages use करें।
MVC Flow Diagram (Text Representation)
[Form] → [Servlet (Controller)] → [Model (Business Logic)]
↓
[JSP (View)]
↓
[Browser Response]
Important Points for Exams
- MVC का full form है Model-View-Controller।
- Servlet controller का काम करता है।
- Model business logic handle करता है।
- JSP presentation layer होती है।
- Flow हमेशा uni-directional होता है: Request → Process → Response।
- Forward करने के लिए
RequestDispatcherयाsendRedirect()use होता है।
Keywords & LSI Terms Used
MVC Flow, Servlet, JSP, Model, Controller, RequestDispatcher, Response, Login example, Data flow, Business logic, Presentation layer, Web application architecture, MVC pattern, Java web development, JSP servlet integration.
Summary Notes
- Model: Data और business logic handle करता है।
- View: Data को user-friendly format में दिखाता है।
- Controller: Request को process करता है और Model और View को connect करता है।
- Flow: Form → Servlet → Model → JSP → Response।
- Purpose: Code separation और maintainability बढ़ाना।