سعاد نشر 8 فبراير 2016 أرسل تقرير نشر 8 فبراير 2016 أحاول استعمال تقنية 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 E.Nourddine نشر 9 فبراير 2016 أرسل تقرير نشر 9 فبراير 2016 (معدل) لإظهار نتيجة البيانات المُرسلة من قبل 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'); تم التعديل في 9 فبراير 2016 بواسطة E.Nourddine اقتباس
السؤال
سعاد
أحاول استعمال تقنية Json للحصول على response انطلاقا من Servlet و صفحة JSP.
صفحة JSP:
كود 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 المُرسلة، لكن لا أستطيع إظهار البيانات، ولا أدري كيف أحل هذا المشكل؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.