2009-12-01 15 views
8

में सर्वलेट परिणाम प्रदर्शन jsp पेज पर servlet आउटपुट को अग्रेषित करने के लिए कैसे करें?जेएसपी पेज

इसका मतलब है कि परिणाम जेएसपी पृष्ठ में प्रदर्शित किया जाएगा।

उत्तर

2
यह शायद की तरह

:

<jsp:include page="/path/to/servlet" /> 

अधिक यहाँ: jsp docs

+0

ओपी पूछ रहा है इसके विपरीत यह ठीक है। – schlingel

+0

यह नहीं देख सकता कि यह कैसे सच है ... – inkredibl

+0

समस्या: आप एक सर्वलेट में हैं और एक विशिष्ट जेएसपी प्रस्तुत करना चाहते हैं। समाधान: जेएसपी में सर्वलेट परिणाम शामिल करें। (क्या?) लेकिन यह वही नहीं है जो मैं चाहता हूं। मैं एक विशिष्ट कार्रवाई के बाद उपयोगकर्ता को एक विशिष्ट जेएसपी में भेजना चाहता हूं। यह वही हो सकता है या वे पैरामीटर (त्रुटि पृष्ठ, सफलता पृष्ठ, आदि) के संबंध में भिन्न हो सकते हैं – schlingel

0

कुछ और (JSP जैसे) के लिए एक सर्वलेट से से एक अनुरोध/प्रतिक्रिया अग्रेषित करने के लिए आप RequestDispatcher वर्ग को देखने के लिए चाहता हूँ । ServletContext क्लास में एक प्रेषक प्राप्त करने का एक तरीका है, जिसे सर्वलेट के भीतर से बुलाया जा सकता है।

उदाहरण के लिए (एक सर्वलेट का doPost/doGet विधि के भीतर):

RequestDispatcher rd = getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 
23

आप आम तौर पर एक सर्वलेट का उपयोग नहीं करते HTML आउटपुट उत्पन्न करने के लिए। आप इसके लिए सामान्य रूप से जेएसपी/ईएल का उपयोग करते हैं। out.write का उपयोग करना और HTML सामग्री स्ट्रीम करने के लिए वाणिज्य को खराब अभ्यास माना जाता है। अनुरोध attribtues का बेहतर उपयोग करें।

उदाहरण के लिए: उदाहरण के लिए /page के <url-pattern> पर web.xml में

protected void doGet(HttpServletRequest request, HttpServletResponse response) { 
    Object data = "Some data, can be a String or a Javabean"; 
    request.setAttribute("data", data); 
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); 
} 

मानचित्र इस। सीधी पहुंच को रोकने के लिए जेएसपी को /WEB-INF में रखें। http://example.com/context/page द्वारा

<p>The data from servlet: ${data}</p> 

कॉल सर्वलेट: फिर JSP में आप दायरे वाला गुण का उपयोग करने के ईएल (Expression Language) का उपयोग कर सकते हैं। इतना ही आसान। इस तरह आप एक स्थान, जेएसपी पर आउटपुट और प्रस्तुति को नियंत्रित करते हैं।

+0

क्यू क्यू के काम से – pavan

0
getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 

, VOID प्रकार है यह RequestDispatcher वां वापस नहीं लौट सकते।

+0

क्या आप किसी अन्य प्रश्न का उत्तर दे रहे हैं? – SiKing

+0

@SiKing यह ऊपर http://stackoverflow.com/a/1824967/188107 का उत्तर देने के लिए एक टिप्पणी है। एफडब्ल्यूआईडब्ल्यू यह भी मामूली उपयोगी टिप्पणी है हालांकि एक संपादन अधिक उपयुक्त होगा। मैंने इसकी रिपोर्ट करने की कोशिश की लेकिन यह विवादित हो गया ... – musiKk