คลาส 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" method = "โพสต์" action = "authenticate.jsp">
กรุณากรอกชื่อผู้ใช้:<input type="text" name="username">
<input type="submit" name="Submit" value="Submit">
</แบบฟอร์ม>
รับชื่อผู้ใช้พารามิเตอร์คำขอผ่านเมธอด request.getParameter("username") ใน Authenticate.jsp:
<% สตริงชื่อผู้ใช้=request.getParameter("ชื่อผู้ใช้"); %>
3. เมื่อมีความสัมพันธ์การส่งต่อระหว่างคอมโพเนนต์ของเว็บสองคอมโพเนนต์ องค์ประกอบเป้าหมายการส่งต่อจะแชร์ข้อมูลภายในช่วงคำขอกับคอมโพเนนต์แหล่งที่มาของการส่งต่อผ่านเมธอด getAttribute()
สันนิษฐานว่ามีความสัมพันธ์การส่งต่อระหว่าง Authenticate.jsp และ hello.jsp Authenticate.jsp หวังที่จะส่งชื่อผู้ใช้ปัจจุบันไปที่ hello.jsp จะส่งข้อมูลนี้ได้อย่างไร ขั้นแรกให้เรียกเมธอด setAttribute() ใน Authenticate.jsp:
คัดลอกรหัสรหัส ดังต่อไปนี้:
-
สตริงชื่อผู้ใช้=request.getParameter("ชื่อผู้ใช้");
request.setAttribute("ชื่อผู้ใช้",ชื่อผู้ใช้);
-
<jsp: ส่งต่อหน้า = "hello.jsp" />
รับชื่อผู้ใช้ผ่านเมธอด getAttribute() ใน hello.jsp:
คัดลอกรหัสรหัส ดังต่อไปนี้:
<% ชื่อผู้ใช้สตริง=(สตริง)request.getAttribute("ชื่อผู้ใช้"); %>
สวัสดี: <%=ชื่อผู้ใช้ %>
4. request.getAttribute ส่งคืน Object และ request.getParameter ส่งคืน String