2010-04-06 9 views
5

मेरे पास एक साधारण जेएसपी/सर्वलेट एप्लिकेशन है और मैं इस ऐप में AJAX सुविधा जोड़ना चाहता हूं। मैं JQuery का उपयोग करता हूं, लेकिन इससे कोई फ़र्क नहीं पड़ता कि मैं किस जावास्क्रिप्ट ढांचे का उपयोग करता हूं। यह मेरा कोड है:एक अजाक्स एप्लिकेशन में सर्वलेट से जावास्क्रिप्ट कोड में डेटा पास कर रहा है?

<script type="text/javascript"> 

     function callbackFunction(data){ 
      $('#content').html(data); 
     } 
     $('document').ready(function(){ 

      $('#x').click(function() { 
       $.post('/ajax_2/servlet',callbackFunction) 

      }); 
     }); 
    </script> 
    <body> 
     <a href="#" id="x">Increase it</a> 
     <div id="content"></div> 

    </body> 
</html> 

सर्वलेट

HttpSession session = request.getSession(); 
    Integer myInteger = (Integer)session.getAttribute("myInteger"); 
    if(myInteger == null) 
     myInteger = new Integer(0); 
    else 
     myInteger = new Integer(myInteger+1); 
    session.setAttribute("myInteger", myInteger); 
    response.getWriter().println(myInteger); 

प्रश्न:

मैं जावास्क्रिप्ट कोड को एक सर्वलेट से डेटा स्थानांतरित करने के (ajax कोड) out.print उपयोग करते हैं, लेकिन अगर मेरे पास एक जटिल संरचना है जैसे ऑब्जेक्ट्स वेक्टर या ऐसा कुछ, डेटा स्थानांतरित करने का सबसे अच्छा तरीका क्या है? एक्सएमएल फ़ाइल, JSON के बारे में क्या? क्या कोई विशेष jsp/servlets लाइब्रेरी को सर्वलेट से AJAX एप्लिकेशन में डेटा स्थानांतरित करने के लिए है? मैं इस डेटा को कॉलबैक फ़ंक्शन में कैसे पार्स कर सकता हूं?

उत्तर

5

सबसे अच्छा तरीका JSON का उपयोग कर रहा है। कई जावा पुस्तकालय हैं जो पूर्ण जावा जावा ऑब्जेक्ट्स को JSON स्ट्रिंग में परिवर्तित कर सकते हैं और इसके विपरीत। आगे जेएसओएन को जावास्क्रिप्ट में पूरी तरह से प्राकृतिक तरीके से डेटा को परिवर्तित/मालिश किए बिना किसी अन्य प्रारूप में वापस पहुंचाया जा सकता है।

सर्वर पक्ष भाग के रूप में, मैं दृढ़ता से Google Gson को JSON serializer के रूप में लेने की सलाह देता हूं। जीसन पसंदीदा विकल्प है क्योंकि यह जटिल जेवाबीन्स और सरणी, संग्रह और उनके बारे में जेएसओएन में परिवर्तित करने और कोड के एक पंक्ति में दर्द के बिना इसके विपरीत रूपांतरित करने का समर्थन करता है। यह जेनरिक का भी समर्थन करता है। असल में तुम सब करने की जरूरत है निम्नलिखित है:

चेक user guide Gson की शक्तियों के बारे में अधिक जानने के लिए।

सभी के साथ सभी, सर्वर साइड में निम्नलिखित के लिए पर्याप्त है:

public static void writeJson(HttpServletResponse response, Object object) throws IOException { 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(new Gson().toJson(object)); 
} 
संबंधित मुद्दे