• 0

كيف أحصل على بيانات JSON المُرسلة من طرف Servlet نحو صفحة JSP؟

أحاول استعمال تقنية Json للحصول على response انطلاقا من Servlet و صفحة JSP.

صفحة JSP:

<script>
$(document).ready(function(){
     $("#submitBut").click(function(){
         var formData=getFormData();
         var strUrl="rwcntrlr.do?action=loginForm";
         $.post(strUrl, {jsonData: JSON.stringify(formData)},function(response){
                response = jQuery.parseJSON( response);
                if(response.message=='not ok')
                {
                    alert("not ok");
                }
                else{
                    alert('OK');
                }
            });
    }); 
});
</script>

كود Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String formName=request.getParameter("action");
        if(formName.equalsIgnoreCase("loginForm")){
            String strJSONData = request.getParameter("jsonData");
            System.out.println(strJSONData);// data received correctly...
            JSONObject jsonResponse = new JSONObject();

            try{
                JSONObject requestedJSONObject = new JSONObject(strJSONData);
                String login_name = requestedJSONObject.getString("login_name");
                String password = requestedJSONObject.getString("password");
                if(login_name.equalsIgnoreCase("mark")){
                    response.setContentType("application/json");
                    jsonResponse.put("status", "OK");
                    response.getWriter().write(jsonResponse.toString());
                    }
                    else{
                        response.setContentType("application/json");
                        jsonResponse.put("status", "NOT OK");                       
                        response.getWriter().write(jsonResponse.toString());
                    }
            }
            catch(Exception ex){
                ex.printStackTrace();
            }           
        }
    }

النتيجة هي أني أستطيع الحصول على Form المُرسلة، لكن لا أستطيع إظهار البيانات، ولا أدري كيف أحل هذا المشكل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

لإظهار نتيجة البيانات المُرسلة من قبل Json على صفحة Jsp، عليك بكتابة الكود التالي:

response.setContentType("application/json");
response.setHeader("cache-control", "no-cache");
PrintWriter out = response.getWriter();

out.println(jsonResponse.toString());
out.flush();

ملاحظة مهمة: في غالب الأحيان يقوم المتصفح بالاحتفاظ بالبيانات السابقة عبر مايسمى بـ cache لذا من الجيد إفراغ هذا الأخير عند كل تغيير  في كود Json المُرسل.

وللتأكد من وصول البيانات المُرسلة، يمكنك استعمال هذا الكود من أجل ذلك:

$.post(strUrl, {jsonData: JSON.stringify(formData)},
  function(response){
    if(response.status=='NOT OK') {
      alert("not ok");
    } else {
      alert('OK');
    }
  }, 'json');

 

تمّ تعديل بواسطة E.Nourddine

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن