दिलचस्प पोस्ट
आईओएस एप के लिए "ओपन इन …" विकल्प जोड़ना बाश की दूसरी बड़ी पाठ फ़ाइल से एक टेक्स्ट फ़ाइल की पंक्तियां ढूंढने का सबसे तेज़ तरीका <My code> में त्रुटि: प्रकार का 'क्लोजर' ऑब्जेक्ट सेनेटटेबल नहीं है एनजीएनएक्स किसी भी डोमेन नाम का जवाब क्यों दे रहा है? InitializeComponent () क्या करता है, और यह WPF में कैसे काम करता है? 'प्रथम श्रेणी वस्तु' का क्या मतलब है? फ़ंक्शन, एक अनबाउंड विधि और एक बाध्य विधि के बीच अंतर क्या है? प्रोग्रामेटिक रूप से आईपैड / आईफोन हार्डवेयर का पता लगाने का सर्वोत्तम तरीका एंड्रॉइड में एसिंककास को पूरी तरह से मारने / हटाने / हटाने / रोक कैसे करें I एसएमएस इनकमिंग और आउटगोइंग का पता लगा रहा है जावास्क्रिप्ट में MSIE और addEventListener समस्या? एक अजाक्स कॉल के साथ फ़ंक्शन से वापसी मूल्य क्या buildSessionFactory () हाइबरनेट 4 में पदावनत है? फायरबेज: अतिरिक्त उपयोगकर्ता गुणों की स्थापना सुपर कन्स्ट्रक्टर को कैसे खोलें?

सर्वलेट से जेएसपी तक चर को पास करें

मैं सर्बिल से जेएसपी को कैसे चर कर सकता हूं? setAttribute और getAttribute मेरे लिए काम नहीं किया 🙁

वेब के समाधान से एकत्रित समाधान "सर्वलेट से जेएसपी तक चर को पास करें"

जेएसपी को अनुरोध करने से पहले आप सभी मानों को प्रतिक्रिया वस्तु में सेट कर सकते हैं। या आप अपने मूल्यों को सत्र सेम में डाल सकते हैं और इसे जेएसपी में एक्सेस कर सकते हैं।

यह तब काम करने में विफल होगा जब:

  1. आप response.sendRedirect("page.jsp") द्वारा एक नए अनुरोध की प्रतिक्रिया को पुन: निर्देशित कर रहे हैं। नव निर्मित अनुरोध ऑब्जेक्ट के पाठ्यक्रम में अब विशेषताएँ शामिल नहीं होंगे और वे रीडायरेक्ट जेएसपी में उपलब्ध नहीं होंगे। आपको रीडायरेक्ट की बजाय अग्रेषित करने की आवश्यकता है उदाहरण के लिए

     request.setAttribute("name", "value"); request.getRequestDispatcher("page.jsp").forward(request, response); 
  2. आप इसे गलत तरीके से या गलत नाम का उपयोग कर रहे हैं । यह मानते हुए कि आपने इसे "name" नाम के जरिए सेट किया है, तो आपको इसे अग्रेषित जेएसपी पृष्ठ में निम्नानुसार एक्सेस करने में सक्षम होना चाहिए:

     ${name} 

जिस तरह से मैंने पाया है, वह है,

सर्वलेट में:

आप मूल्य निर्धारित कर सकते हैं और इसे नीचे की तरह JSP को अग्रेषित कर सकते हैं

 req.setAttribute("myname",login); req.getRequestDispatcher("welcome.jsp").forward(req, resp); 

Welcome.jsp में आप मूल्यों को प्राप्त कर सकते हैं

 .<%String name = (String)request.getAttribute("myname"); %> <%= name%> 

(या) सीधे आप कॉल कर सकते हैं

 <%= request.getAttribute("myname") %>. 

उपयोग

request.setAttribute ( "AttributeName");

और फिर

। GetServletContext () getRequestDispatcher ( "/ file.jsp") आगे ()।;

तो यह जेएसपी में पहुंच योग्य होगा।

एक साइड नोट के रूप में – अपने jsp में जावा कोड का उपयोग करने से बचें JSTL का उपयोग करें

एक सर्वलेट से जेएसपी पृष्ठ पर जानकारी देने के लिए एक विशेषता का उपयोग करने के अलावा, कोई भी पैरामीटर भी पास कर सकता है यह एक URL पर पुनः निर्देशित करके किया जाता है जो प्रश्न में जेएसपी पेज को निर्दिष्ट करता है, और सामान्य पैरामीटर-पास-टू-द-यूआरएल तंत्र को जोड़ता है।

एक उदाहरण। सर्वलेट कोड का प्रासंगिक हिस्सा:

 protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { response.setContentType( "text/html" ); // processing the request not shown... // // here we decide to send the value "bar" in parameter // "foo" to the JSP page example.jsp: response.sendRedirect( "example.jsp?foo=bar" ); } 

और जेएसपी पेज के संबंधित भाग example.jsp :

 <% String fooParameter = request.getParameter( "foo" ); if ( fooParameter == null ) { %> <p>No parameter foo given to this page.</p> <% } else { %> <p>The value of parameter foo is <%= fooParameter.toString() %>.</p> <% } %> 

यह एक सर्वोलेट कोड है जिसमें स्ट्रिंग वेरिएबल एक है। एक के लिए मूल्य फॉर्म के साथ एक html पृष्ठ से हो रहा है फिर वैरिएबल को ऑब्जेक्ट में सेट करें। तो इसे forward और requestdispatcher तरीकों का उपयोग कर jsp पास।

 String a=req.getParameter("username"); req.setAttribute("name", a); RequestDispatcher rd=req.getRequestDispatcher("/login.jsp"); rd.forward(req, resp); 

जेएसएस में कार्यक्रम में नीचे दिए गए चरणों का पालन करें

 <%String name=(String)request.getAttribute("name"); out.print("your name"+name);%> 

आप RequestDispacher का भी उपयोग कर सकते हैं और आप जिस jsp पेज को चाहते हैं उसके साथ डेटा पर पास कर सकते हैं।

 request.setAttribute("MyData", data); RequestDispatcher rd = request.getRequestDispatcher("page.jsp"); rd.forward(request, response);