request.getParameter("companyName"); هو الحصول على البيانات المقدمة من النموذج (الاسم هو اسم الشركة في نموذج الصفحة الأولى)
request.getAttribute("cc") هو الحصول على بيانات setAttribute الخاصة بك (القيمة التي تم الحصول عليها هي قيمة المعلمة cc التي حفظتها بنفسك.)
تستخدم للمعلمات في الارتباطات التشعبية. . request.getParameter(اسم المعلمة)
تحتوي فئة HttpServletRequest على كل من أسلوب getAttribute() وأسلوب getParameter()، والطريقتان لهما الاختلافات التالية:
(1) تحتوي فئة HttpServletRequest على طريقة setAttribute() ولكن لا تحتوي على طريقة setParameter()
(2) عندما تكون هناك علاقة ارتباط بين مكوني ويب، يحصل المكون المرتبط على معلمات الطلب من خلال طريقة getParameter() على سبيل المثال، بافتراض وجود علاقة ارتباط بين Welcome.jsp وauthenticate.jsp، Welcome.jsp. لديه الكود التالي:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
أو:
<اسم النموذج = "form1" طريقة = "post" action = "authenticate.jsp">
الرجاء إدخال اسم المستخدم: <input type="text" name="username">
<نوع الإدخال = "إرسال" الاسم = "إرسال" القيمة = "إرسال">
</النموذج>
احصل على اسم مستخدم معلمة الطلب من خلال طريقة request.getParameter("username") في Authenticate.jsp:
<% String username=request.getParameter("username" %>
(3) عندما تكون هناك علاقة إعادة توجيه بين مكوني ويب، يشارك المكون المستهدف لإعادة التوجيه البيانات ضمن نطاق الطلب مع مكون مصدر إعادة التوجيه من خلال طريقة getAttribute(). من المفترض أن هناك علاقة إعادة توجيه بين Authenticate.jsp وhello.jsp. يأمل Authenticate.jsp في تمرير اسم المستخدم الحالي إلى hello.jsp. كيف يتم تمرير هذه البيانات؟ قم أولاً باستدعاء الأسلوب setAttribute() في Authenticate.jsp:
<%
String username=request.getParameter("username");
request.setAttribute("username", username);
%>
<jsp:forward page="hello.jsp" />
احصل على اسم المستخدم من خلال طريقة getAttribute() في hello.jsp:
<% String username=(String)request.getAttribute("username" %>
مرحبًا: <%=اسم المستخدم %>
على مستوى أعمق، سيتم تمرير البيانات التي تم تمريرها بواسطة طريقة request.getParameter() من عميل الويب إلى خادم الويب، مما يمثل بيانات طلب HTTP. يقوم الأسلوب request.getParameter() بإرجاع بيانات نوع السلسلة.
البيانات التي تم تمريرها بواسطة طريقتي request.setAttribute() وgetAttribute() ستكون موجودة فقط داخل حاوية الويب وستتم مشاركتها بين مكونات الويب ذات علاقة إعادة التوجيه. يمكن لهاتين الطريقتين تعيين البيانات المشتركة من النوع Object
لتبسيط الأمر، يستخدم الأسلوب request.getParamenter() بروتوكول HTTP لنقل البيانات ويمكنه فقط نقل معلومات نوع السلسلة، بينما ينقل الأسلوب request.setAttribtute() البيانات في حاوية WEB ويمكنه إعادة توجيه أي نوع من معلومات الكائن. على سبيل المثال، إذا أراد servlet listAction تمرير مجموعة LIST إلى list.jsp، فيجب عليه استخدام setAttribute.