जेएसपी में एमवीसी (Archiटेक्चर)
MVC क्या है?
MVC एक आर्किटेक्चर है जो व्यावसायिक तर्क, प्रस्तुति और डेटा को अलग करता है।
- M का मतलब है मॉडल
- V का मतलब है व्यू
- C का तात्पर्य नियंत्रक है।
एमवीसी अनुप्रयोग का उपयोग करने का एक व्यवस्थित तरीका है जहां प्रवाह दृश्य परत से शुरू होता है, जहां अनुरोध उठाया जाता है और नियंत्रक परत में संसाधित किया जाता है और डेटा डालने और सफलता या विफलता संदेश वापस पाने के लिए मॉडल परत को भेजा जाता है। एमवीसी Archiटेक्चर आरेख नीचे दर्शाया गया है:

मॉडल परत
- यह डेटा परत है जिसमें सिस्टम का व्यावसायिक तर्क शामिल होता है।
- इसमें एप्लिकेशन का सारा डेटा शामिल होता है
- यह एप्लिकेशन की स्थिति को भी दर्शाता है।
- इसमें वे वर्ग शामिल हैं जिनका संबंध डेटाबेस.
- नियंत्रक मॉडल से जुड़ता है और डेटा प्राप्त करता है तथा उसे दृश्य परत पर भेजता है।
- मॉडल डेटाबेस से भी जुड़ता है और डेटा को डेटाबेस में संग्रहीत करता है जो इससे जुड़ा होता है।
परत देखें
- यह एक प्रस्तुति परत है.
- इसमें HTML, JSP आदि शामिल हैं।
- यह सामान्यतः एप्लीकेशन का UI प्रस्तुत करता है।
- इसका उपयोग नियंत्रक से प्राप्त डेटा को प्रदर्शित करने के लिए किया जाता है जो बदले में मॉडल परत वर्गों से डेटा प्राप्त करता है।
- यह दृश्य परत एप्लिकेशन के UI पर डेटा दिखाती है।
नियंत्रक परत
- यह दृश्य और मॉडल के बीच इंटरफेस के रूप में कार्य करता है।
- यह दृश्य परत से आने वाले सभी अनुरोधों को रोक लेता है।
- यह दृश्य परत से अनुरोध प्राप्त करता है और अनुरोधों को संसाधित करता है तथा अनुरोध के लिए आवश्यक सत्यापन करता है।
- यह अनुरोध आगे डेटा प्रसंस्करण के लिए मॉडल परत को भेजा जाता है, और एक बार अनुरोध संसाधित हो जाने पर, यह आवश्यक जानकारी के साथ नियंत्रक को वापस भेज दिया जाता है और दृश्य द्वारा तदनुसार प्रदर्शित किया जाता है।
एमवीसी के लाभ Archiटेक्चर
एमवीसी के लाभ हैं:
- बनाए रखने के लिए आसान
- विस्तार करना आसान है
- परीक्षण करने में आसान
- नेविगेशन नियंत्रण केंद्रीकृत है
MVC के साथ JSP अनुप्रयोग डिज़ाइन का उदाहरण Archiटेक्चर
इस उदाहरण में, हम दिखाएंगे कि JSP में MVC आर्किटेक्चर का उपयोग कैसे किया जाए।
- हम दो चरों “ईमेल” और “पासवर्ड” वाले फॉर्म का उदाहरण ले रहे हैं, जो हमारी दृश्य परत है।
- एक बार जब उपयोगकर्ता ईमेल और पासवर्ड दर्ज करता है और सबमिट पर क्लिक करता है तो यह क्रिया mvc_servlet में चली जाती है जहां ईमेल और पासवर्ड पास किए जाते हैं।
- यह mvc_servlet नियंत्रक परत है। यहाँ mvc_servlet में अनुरोध बीन ऑब्जेक्ट को भेजा जाता है जो मॉडल परत के रूप में कार्य करता है।
- ईमेल और पासवर्ड मान बीन में सेट कर दिए जाते हैं और आगे के प्रयोजन के लिए संग्रहीत कर दिए जाते हैं।
- बीन से मान प्राप्त किया जाता है और दृश्य परत में दिखाया जाता है।
Mvc_example.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
कोड का स्पष्टीकरण:
परत देखें:
कोड लाइन 10-15: यहाँ हम एक फॉर्म ले रहे हैं जिसमें पैरामीटर के रूप में दो फ़ील्ड हैं “ईमेल” और “पासवर्ड” और इस अनुरोध को एक नियंत्रक Mvc_servlet.java को अग्रेषित करने की आवश्यकता है, जिसे कार्रवाई में पारित किया जाता है। जिस विधि से इसे पारित किया जाता है वह POST विधि है।
Mvc_सर्वलेट.जावा
package demotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
कोड का स्पष्टीकरण:
नियंत्रक परत
कोड लाइन 14:mvc_servlet, HttpServlet का विस्तार कर रहा है।
कोड लाइन 26: चूंकि प्रयुक्त विधि POST है, इसलिए अनुरोध सर्वलेट की doPost विधि में आता है जो अनुरोधों को संसाधित करता है और testobj के रूप में बीन ऑब्जेक्ट में सहेजता है।
कोड लाइन 34: अनुरोध ऑब्जेक्ट का उपयोग करके हम विशेषता को गुरुबीन के रूप में सेट कर रहे हैं जिसे testobj का मान दिया गया है।
कोड लाइन 35: यहाँ हम सफलता संदेश को mvc_success.jsp तक भेजने के लिए अनुरोध डिस्पैचर ऑब्जेक्ट का उपयोग कर रहे हैं
टेस्टबीन.जावा
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
कोड का स्पष्टीकरण:
मॉडल परत:
कोड लाइन 7-17: इसमें ईमेल और पासवर्ड के गेटर्स और सेटर्स शामिल हैं जो टेस्ट बीन क्लास के सदस्य हैं
कोड लाइन 19-20: यह बीन क्लास में स्ट्रिंग प्रकार के सदस्यों के ईमेल और पासवर्ड को परिभाषित करता है।
Mvc_सफलता.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
कोड का स्पष्टीकरण:
कोड लाइन 12: हम अनुरोध ऑब्जेक्ट का उपयोग करके विशेषता प्राप्त कर रहे हैं जिसे सर्वलेट की doPost विधि में सेट किया गया है।
कोड लाइन 13: हम स्वागत संदेश और ईमेल आईडी प्रिंट कर रहे हैं जो बीन ऑब्जेक्ट में सहेजे गए हैं
आउटपुट:
जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्नलिखित आउटपुट मिलता है:
जब आप mvc_example.jsp पर क्लिक करते हैं तो आपको सबमिट बटन के साथ ईमेल और पासवर्ड वाला फॉर्म मिलता है।
एक बार जब आप फॉर्म में ईमेल और पासवर्ड दर्ज कर लें और फिर सबमिट पर क्लिक करें
सबमिट पर क्लिक करने के बाद आउटपुट नीचे दिखाया गया है
आउटपुट:
जब आप स्क्रीन में ईमेल और पासवर्ड दर्ज करते हैं और सबमिट पर क्लिक करते हैं, तो विवरण टेस्टबीन में सहेजे जाते हैं और टेस्टबीन से उन्हें सफलता संदेश प्राप्त करने के लिए अगली स्क्रीन पर लाया जाता है।
सारांश
इस लेख में हमने MVC यानि मॉडल व्यू कंट्रोलर आर्किटेक्चर के बारे में जाना।
JSP डेटा और नियंत्रक की प्रस्तुति की भूमिका निभाता है। यह मॉडल और दृश्य के बीच एक इंटरफ़ेस है जबकि मॉडल नियंत्रक और डेटाबेस दोनों से जुड़ता है। मुख्य व्यवसाय तर्क मॉडल परत में मौजूद है।