2010-08-31 15 views

उत्तर

10

मेरे लिए काम नहीं किया आप jsp करने के लिए अनुरोध forwaring से पहले प्रतिक्रिया वस्तु में सभी मूल्यों को निर्धारित कर सकते हैं। या फिर आप एक सत्र सेम और में यह पहुँच में अपने मूल्यों डाल सकते हैं jsp

+0

धन्यवाद दोस्त मदद मिलेगी में नीचे दिखाया गया है इन चरणों का पालन। मैंने वही किया और यह मेरे लिए काम किया। :-) – Developer

14

उपयोग

request.setAttribute ("AttributeName");।

और फिर

getServletContext()। GetRequestDispatcher ("/ file.jsp")। आगे();

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

एक साइड नोट के रूप में - अपने जेएसपी में जावा कोड का उपयोग करने से बचें। जेएसटीएल का प्रयोग करें।

+0

धन्यवाद Bozho! मैं अभी जेएसटीएल के बारे में ज्यादा नहीं जानता। लेकिन निश्चित रूप से मैं इसे सीखने जा रहा हूं। – Developer

+0

क्यों 'getServletContext() 'प्राप्त करें और अनुरोध नहीं है? – CodyBugstein

74

यह जब काम करने के लिए असफल हो जायेगी:

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

    request.setAttribute("name", "value"); 
    request.getRequestDispatcher("page.jsp").forward(request, response); 
    
  2. आप इसे गलत तरीके से एक्सेस करने या गलत नाम उपयोग कर रहे हैं।

    ${name} 
    
+0

उदाहरण के लिए, पोस्टिंग फॉर्म को खराब अभ्यास के रूप में माना जाता है, आपको असली रीडायरेक्ट (301) का उपयोग करना चाहिए। फिर आपको सत्रों से राज्य पास करना होगा या पैरामीटर प्राप्त करना होगा। – lukyer

+0

हाँ सही उत्तर @ बाल्लूसी – Binay

+0

@ बाल्लूसी, आपका क्या मतलब है "आप इसे अग्रेषित जेएसपी पृष्ठ में निम्न तक पहुंचने में सक्षम होना चाहिए: $ {name}" ?? मैंने <% out.println ($ {name}) लिखने की कोशिश की;%> और यह काम नहीं किया। लेकिन <% out.println (request.getAttribute ("name"));%> किया। – Pavel

12

एक विशेषता का उपयोग कर एक से जानकारी पारित करने के लिए इसके अलावा: मान लें कि आप नाम "name" का उपयोग कर इसे निर्धारित किया कि, तो आप इस प्रकार अग्रेषित JSP पेज में इसे उपयोग करने में सक्षम होना चाहिए एक जेएसपी पृष्ठ पर सर्वलेट, कोई भी पैरामीटर पास कर सकता है। यह केवल एक यूआरएल पर रीडायरेक्ट करके किया जाता है जो प्रश्न में जेएसपी पेज निर्दिष्ट करता है, और सामान्य पैरामीटर-पास-थ्रू-यूआरएल तंत्र जोड़ता है।

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

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"); 
} 

और JSP पेज 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> 
<% 
    } 
%> 
17

सरल तरीका मैं पाया जो,

सर्वलेट में:

आप मूल्य निर्धारित कर सकते हैं और उसे

जैसे जेएसपी पर अग्रेषित कर सकते हैं
req.setAttribute("myname",login); 
req.getRequestDispatcher("welcome.jsp").forward(req, resp); 

Welcome.jsp में आप द्वारा

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

(या) मान प्राप्त कर सकते सीधे यू

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

सभी उत्तरों मान्य हैं लेकिन यह एक आसान दिखता है .. – Siva

1

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

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

यह एक सर्वलेट कोड है जो एक स्ट्रिंग चर एक शामिल है। एक एचटीएमएल पेज से फॉर्म के साथ मूल्य प्राप्त हो रहा है। फिर वैरिएबल को अनुरोध ऑब्जेक्ट में सेट करें। फिर इसे forward और requestdispatcher विधियों का उपयोग करके jsp पर पास करें।

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

में jsp कार्यक्रम

<%String name=(String)request.getAttribute("name"); 
out.print("your name"+name);%> 
संबंधित मुद्दे