दिलचस्प पोस्ट
मैं PHP में किसी भी अनुरोध हेडर को कैसे पढ़ सकता हूँ मैं Xcode प्रोजेक्ट में "बिल्ड सेटिंग्स" की एक सूची कैसे मुद्रित करूं? किसी दिए गए (संख्यात्मक) वितरण के साथ यादृच्छिक संख्या उत्पन्न करें मैं कैसे जांच सकता हूं कि पृष्ठभूमि छवि भरी हुई है या नहीं? पायथन के साथ एक ध्वनि चलायें चेतावनी – पथ का निर्माण निष्पादन पर्यावरण निर्दिष्ट करता है J2SE-1.4 अस्पष्टता है: 0 दृश्यता के रूप में एक ही प्रभाव पड़ता है: छिपा हुआ एसक्यूएल डाटा रीडर – नल स्तंभ मूल्यों को संभालना जावास्क्रिप्ट के साथ iframe src बदल रहा है पासवर्ड सत्यापन के लिए नियमित अभिव्यक्ति एनजी-एप और डेटा-एनजी-एप के बीच अंतर क्या है? एक्सप्रेस में एकाधिक फ़ाइलों में रूट हैंडलर को कैसे शामिल करें? JQuery में एक Div तत्व को घूर्णन करना पायथन: अपने ऑपरेटरों को परिभाषित? कैसे iphone पर एक छवि पर एक पिक्सेल के लिए आरजीबी मूल्यों को पाने के लिए

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

मैं सर्बिल से जेएसपी को कैसे चर कर सकता हूं? 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);