تحتوي فئة HttpServletRequest على كل من أسلوب getAttribute() وأسلوب getParameter()، والطريقتان لهما الاختلافات التالية:
1. تحتوي فئة HttpServletRequest على طريقة setAttribute() ولكن لا تحتوي على طريقة setParameter()؛
2. عندما تكون هناك علاقة ارتباط بين مكوني ويب، يحصل المكون المرتبط على معلمات الطلب من خلال طريقة getParameter()؛
على سبيل المثال، بافتراض وجود علاقة ارتباط بين Welcome.jsp وauthenticate.jsp، يوجد الكود التالي في Welcome.jsp:
انسخ رمز الكود كما يلي:
<a href="authenticate.jsp?username=qianyunlai.com">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" %>
مرحبًا: <%=اسم المستخدم %>
4. request.getAttribute يُرجع كائنًا، ويُرجع request.getParameter سلسلة.