2013-01-08 15 views
5

जब मैं jsp पेज लोड करने से पहले सर्वलेट क्लास को फायर करके प्रारंभ करना चाहता हूं, क्योंकि मुझे jsp पेज में डेटाबेस से कुछ डेटा पॉप्युलेट करने की आवश्यकता है, तो सर्वलेट प्रारंभ करना। web.xml में सर्वलेट मानचित्रणएप्लिकेशन स्टार्टअप

<servlet> 
     <servlet-name>Index</servlet-name> 
     <servlet-class>com.Teklabz.Servlets.IndexServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Index</servlet-name> 
     <url-pattern>/index</url-pattern> 
    </servlet-mapping> 

लेकिन यह काम नहीं किया, जब कोड यह सर्वलेट वर्ग तक पहुंचने कभी नहीं रहा है पता लगाने। इसके अलावा मैं ServletContextListener का उपयोग इस link की तरह करने का प्रयास कर रहा था, लेकिन मुझे एक ही समस्या का सामना करना पड़ा।

श्रोता कोड:

public class ServletListener implements ServletContextListener{ 

    @Override 
    public void contextInitialized(ServletContextEvent sce) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent sce) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 
} 

web.xml कोड:

<listener> 
     <listener-class>com.techlabz.listener.ServletListener</listener-class> 
    </listener> 

मैं क्या गलत कर रहा हूँ पता नहीं है।

+0

आपका प्रश्न भ्रमित है। कृपया स्पष्ट रहें कि क्या काम नहीं कर रहा है? और आप क्या हासिल करना चाहते हैं। आपकी मदद करने के लिए खुश –

+0

सर्वलेट शुरू करके क्या मतलब है? कंटेनर स्टार्टअप पर सर्वलेट लोड कर सकता है इसका मतलब है कि 'init' विधि के अंदर कभी भी स्टार्टअप – amicngh

+1

पर निष्पादित किया जाएगा, ऐसा लगता है कि आप वास्तव में नेविगेट करना चाहते हैं या सर्वलेट को सबमिट करना चाहते हैं और फिर -एसपी- जेएसपी को। इस तरह सर्वलेट डेटाबेस सामान कर सकता है, अनुरोध दायरे में एक अच्छी ऑब्जेक्ट संरचना तैयार कर सकता है और फिर जेएसपी इस जानकारी को ले सकता है और इसे प्रदर्शित कर सकता है। – Gimby

उत्तर

3

आप इस लक्ष्य को हासिल करने के कई तरीके होते हैं ..

  1. या तो आप सेवा विधि में डेटा को पॉप्युलेट कर सकते हैं com.Teklabz.Servlets.IndexServlet और उसके बाद डेटा को request विशेषता में सेट करें और उसके बाद उस jsp पर अग्रेषित करें।
  2. आप कुछ सुलभ गुंजाइश (request,session,context) में और प्रत्यक्ष पहुँचने से loadonstartiup का उपयोग तो आप com.Teklabz.Servlets.IndexServlet सर्वलेट का init विधि में db से डेटा को पॉप्युलेट कर सकते हैं और फिर सेट करने के लिए यह चाहते हैं jsp कि गुंजाइश से डेटा प्राप्त।
  3. श्रोता में भी आप यह कर सकते हैं लेकिन उस स्थिति में आपको डेटा को कुछ दायरे में सेट करने की आवश्यकता है।
0

अपने कोड जोड़ें एनोटेशन @WebListener बिल्कुल right.you जरूरत है

@WebListener 
    public class ServletListener implements ServletContextListener{ 
    //your code 
    } 
+0

कृपया ध्यान दें कि एनोटेशन वेब.एक्सएमएल में परिभाषित करने से बचने का एक और तरीका है। –

संबंधित मुद्दे