عندما نتصفح الويب، غالبًا ما نحتاج إلى إرسال المعلومات إلى الخادم والسماح لبرنامج الخلفية بمعالجتها. يستخدم المتصفح طريقتي GET وPOST لإرسال البيانات إلى الخادم.
تضيف طريقة GET معلومات التشفير المطلوبة بعد عنوان URL، ويتم فصل عنوان URL ومعلومات التشفير برمز "؟". كما هو موضح أدناه:
//www.w3cschool.cn/hello?key1=value1&key2=value2
طريقة GET هي الطريقة الافتراضية للمتصفحات لتمرير المعلمات. يوصى بعدم استخدام طريقة GET لبعض المعلومات الحساسة، مثل كلمات المرور.
عند استخدام get، يكون حجم البيانات المرسلة محدودًا (لاحظ أن عدد المعلمات غير محدود)، والحد الأقصى هو 1024 بايت.
يمكننا تمرير بعض المعلومات الحساسة، مثل كلمات المرور، من خلال طريقة POST، وتكون بيانات الإرسال ضمنية.
البيانات المقدمة بواسطة POST غير مرئية، ويتم تمرير GET في عنوان URL (يمكنك إلقاء نظرة على شريط العناوين في متصفحك).
يستخدم JSP getParameter() للحصول على المعلمات التي تم تمريرها، ويتم استخدام طريقة getInputStream() لمعالجة طلب دفق البيانات الثنائية للعميل.
getParameter(): استخدم طريقة request.getParameter() للحصول على قيمة معلمة النموذج.
getParameterValues(): احصل على بيانات مثل فئة خانة الاختيار (نفس الاسم، لكن بقيم متعددة). تلقي متغيرات المصفوفة، مثل نوع خانة الاختيار
getParameterNames(): يمكن لهذه الطريقة الحصول على أسماء جميع المتغيرات.
getInputStream(): استدعاء هذه الطريقة لقراءة دفق البيانات الثنائية من العميل.
ما يلي هو عنوان URL بسيط ويستخدم طريقة GET لتمرير المعلمات في عنوان URL:
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
فيما يلي برنامج JSP لملف main.jsp لمعالجة بيانات النموذج المرسلة من قبل العميل، نستخدم طريقة getParameter () للحصول على البيانات المقدمة:
<html><head><title>استخدام أسلوب GET لقراءة بيانات النموذج</title></head><body><center><h1>استخدام أسلوب GET لقراءة بيانات النموذج</h1><ul><li> <p><b>الاسم الأول:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>الاسم الأخير:</b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
بعد ذلك، نقوم بالوصول إلى http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI من خلال المتصفح، وتكون نتائج الإخراج كما يلي:
استخدام طريقة GET لقراءة بيانات النموذج الاسم الأول: ZARAL الاسم الأخير: ALI
فيما يلي نموذج HTML بسيط يرسل بيانات العميل إلى ملف main.jsp عبر طريقة GET:
<html><body><form action="main.jsp"method="GET">الاسم الأول: <input type="text" name="first_name"><br />الاسم الأخير: <input type="text" " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
احفظ تعليمات HTML البرمجية أعلاه في ملف Hello.htm. ضع هذا الملف في الدليل /webapps/ROOT. من خلال الوصول إلى http://localhost:8080/Hello.htm ، تكون واجهة الإخراج كما يلي:
املأ المعلومات في نموذجي "الاسم الأول" و"اسم العائلة" وانقر على زر "إرسال"، وسيتم إخراج النتائج.
بعد ذلك، دعونا نستخدم طريقة POST لنقل بيانات النموذج وتعديل رموز الملفات main.jsp وHello.htm كما يلي:
كود ملف main.jsp:
<html><head><title>استخدام أسلوب GET وPOST لقراءة بيانات النموذج</title></head><body><center><h1>استخدام أسلوب GET لقراءة بيانات النموذج</h1><ul>< li><p><b>الاسم الأول:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>الاسم الأخير:</ ب> <%= request.getParameter("last_name")%></p></li></ul></body></html>
فيما يلي الكود المعدل لـ Hello.htm:
<html><body><form action="main.jsp"method="POST">الاسم الأول: <input type="text" name="first_name"><br />الاسم الأخير: <input type="text" " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
قم بالوصول إلى http://localhost:8080/Hello.htm من خلال المتصفح، ويكون الإخراج كما يلي:
املأ المعلومات في نموذجي "الاسم الأول" و"اسم العائلة" وانقر على زر "إرسال"، وسيتم إخراج النتائج.
يمكن لمربع الاختيار أن يمرر بيانات واحدة أو حتى بيانات متعددة.
فيما يلي تعليمات HTML البرمجية البسيطة وحفظ التعليمات البرمجية في ملف CheckBox.htm:
<html><body><form action="main.jsp"method="POST" target="_blank"><input type="checkbox" name="maths" checked="checked" /> الرياضيات<input type= "مربع الاختيار" name="الفيزياء" /> الفيزياء<input type="checkbox" name="الكيمياء" محدد="checked" /> الكيمياء<input type="submit" value="اختر الموضوع" /></form> </body></html>
ما يلي هو رمز الملف main.jsp المستخدم لمعالجة بيانات خانة الاختيار:
<html><head><title>قراءة بيانات مربع الاختيار</title></head><body><center><h1>قراءة بيانات مربع الاختيار</h1><ul><li><p><b>علامة الرياضيات :</b> <%= request.getParameter("maths")%></p></li><li><p><b>علم الفيزياء:</b> <%= request.getParameter("physics")%></p></li><li><p><b>علم الكيمياء:</b> <%= request.getParameter("chemistry")%></p </li></ul></body></html>
نتيجة الإخراج للمثال أعلاه هي:
أدناه سوف نستخدم getParameterNames() الخاص بـ HttpServletRequest لقراءة جميع معلمات النموذج المتاحة. يمكن لهذه الطريقة الحصول على أسماء جميع المتغيرات.
بمجرد حصولنا على التعداد، يمكننا استدعاء الأسلوب hasMoreElements() لتحديد متى نتوقف عن استخدامه والأسلوب nextElement() للحصول على اسم كل معلمة.
<%@ page import="java.io.*,java.util.*" %><html><head><title>مثال لطلب رأس HTTP</title></head><body><center><h2 >مثال لطلب رأس HTTP</h2><table align="center"><tr bgcolor="#949494"><th>اسم المعلمة</th><th>قيمة (قيم) المعلمة</th></tr ><% أسماء معلمات التعداد = request.getParameterNames(); while(paramNames.hasMoreElements()) { String paramName = (String)paramNames.nextElement(); out.print("<tr><td>" + paramName + "</td>n "); String paramValue = request.getParameter(paramName); out.println("<td> " + paramValue + "</td></tr>n"); }%></table></center></body></html>
فيما يلي محتوى الملف Hello.htm:
<html><body><form action="main.jsp"method="POST" target="_blank"><input type="checkbox" name="maths" checked="checked" /> الرياضيات<input type= "مربع الاختيار" name="الفيزياء" /> الفيزياء<input type="checkbox" name="الكيمياء" محدد="checked" /> الكيمياء<input type="submit" value="اختر الموضوع" /></form> </body></html>
نقوم الآن بالوصول إلى ملف Hello.htm من خلال المتصفح وإرسال البيانات كما يلي:
يمكنك محاولة استخدام كود JSP أعلاه لقراءة كائنات أخرى، مثل مربعات النص أو أزرار الاختيار أو المربعات المنسدلة وأشكال البيانات الأخرى.