การส่งข้อมูลแบบ GET จะต่อพารามิเตอร์ไว้ท้าย URL คั่นด้วย ? และคั่นแต่ละคู่ด้วย &
1. ไฟล์ HTML ฟอร์ม (Hello.htm)
<html>
<body>
<form action="main.jsp" method="GET">
First Name: <input type="text" name="first_name"><br/>
Last Name: <input type="text" name="last_name" /><br/>
<input type="submit" value="Submit" />
</form>
</body>
</html>
2. ไฟล์ JSP รับข้อมูล (main.jsp)
ใช้ request.getParameter() เหมือนกับ POST ทุกประการ
<html>
<head><title>อ่านข้อมูล GET</title></head>
<body>
<h1>อ่านข้อมูลฟอร์มด้วย GET</h1>
<ul>
<li><b>First Name:</b> <%= request.getParameter("first_name") %></li>
<li><b>Last Name:</b> <%= request.getParameter("last_name") %></li>
</ul>
</body>
</html>
3. วิธีทดสอบ
- วางไฟล์ทั้งสองใน
<Tomcat>/webapps/ROOT/ - เปิด
https://localhost:8080/Hello.htm - กรอกข้อมูล กด Submit
- URL จะกลายเป็น:
https://localhost:8080/main.jsp?first_name=xxx&last_name=yyy - main.jsp แสดงผลข้อมูลที่ส่งมา
4. ส่งผ่าน URL โดยตรง (ไม่ต้องฟอร์ม)
พิมพ์ในแถบที่อยู่:
https://localhost:8080/main.jsp?first_name=Somchai&last_name=Jaidee
จะได้ผลลัพธ์เหมือนกัน JSP ไม่แยกว่าข้อมูลมาจากฟอร์มหรือพิมพ์ URL โดยตรง
ข้อควรระวัง GET
- ข้อมูลมองเห็นใน URL (ไม่ปลอดภัยสำหรับรหัสผ่าน)
- มีข้อจำกัดความยาว URL (~2000 ตัวอักษร ขึ้นอยู่กับเบราว์เซอร์/เซิร์ฟเวอร์)
- เหมาะสำหรับค้นหา, filter, pagination ที่ต้องการ bookmark/share URL ได้