-
คำอธิบาย: ปัญหาเล็กๆ น้อยๆ ที่คุณต้องใส่ใจเมื่อใช้ออบเจ็กต์ ASP Request ผู้แต่ง: Ci Qinqiang
อีเมล์: [email protected]
**/
ใน ASP ออบเจ็กต์ Request เป็นออบเจ็กต์ที่สำคัญมากในการรับข้อมูลที่ส่งโดยไคลเอ็นต์ และทุกคนก็คุ้นเคยกับมันเป็นอย่างดี
ถึงกระนั้นก็มีคนมักถามฉันว่าวิธีการเขียนต่อไปนี้แตกต่างกันอย่างไร และควรเขียนอย่างไร?
strMessage = คำขอ("ข้อความ")
strMessage = Request.Form("msg")
ยิ่งไปกว่านั้น ฉันเคยเห็นโค้ดที่เขียนโดยคนจำนวนมาก และโค้ดทั้งหมดก็เขียนในรูปแบบ Request("") แน่นอนว่าการเขียนแบบนี้ไม่มีอะไรผิด
แต่ทุกคนควรให้ความสนใจ
วัตถุคำขอมีหลายคอลเลกชันเพื่อรับข้อมูลที่ส่งโดยไคลเอนต์ คอลเลกชันที่ใช้กันทั่วไปคือ QueryString, Form และ ServerVariables
ไม่ว่าคอลเลกชันประเภทใดสามารถรับได้โดยตรงผ่าน Request("") มีปัญหาที่นี่
Get method และ Post method ส่งตัวแปรเดียวกัน เช่น username=cqq จากนั้นคุณใช้ Request("username")
ข้อมูลถูกนำออกจาก Get หรือข้อมูลจาก Post หรือไม่?
ดังนั้น เมื่อคำถามมาถึงจุดนี้ ทุกคนควรคิดถึงมัน Request จะนำข้อมูลจากคอลเลกชันเหล่านี้ตามลำดับ ออบเจ็กต์ Request จะค้นหาตัวแปรในคอลเลกชันเหล่านี้ตามลำดับนี้ หากมีการจับคู่กัน ตัวแปรจะหยุดและส่วนที่เหลือจะถูกละเว้น ดังนั้นตัวอย่างข้างต้น Request("username")
สิ่งที่ได้รับจริงคือข้อมูลที่ส่งโดยวิธี Get
ดังนั้น เพื่อปรับปรุงประสิทธิภาพ ลดเวลาในการค้นหาที่ไม่จำเป็น และเพื่อสร้างมาตรฐานของโปรแกรม ขอแนะนำให้คุณใช้วิธีการรวบรวม เช่น Request.Form("username")
ต่อไปนี้เป็นตัวอย่างการทดสอบ หลังจากส่ง คุณสามารถเพิ่ม ?username=aaa หลังที่อยู่ที่จะทดสอบได้โดยตรง:
<%
หาก request("submit")<>"" แล้ว
การตอบกลับเขียน "รับโดยตรง:"& คำขอ ("ชื่อผู้ใช้") & "<br>"
Response.Write "รับ:" & Request.QueryString ("ชื่อผู้ใช้") & "<br>"
Response.Write "รับโพสต์:" & Request.Form("ชื่อผู้ใช้") & "<br>"
จบถ้า
-
<ชื่อแบบฟอร์ม=การกระทำ form1="" วิธีการ=โพสต์>
<ประเภทอินพุต=ชื่อการทดสอบ = "ชื่อผู้ใช้" ค่า = "postuser">
<ประเภทอินพุต=ชื่อส่ง =ค่า "ส่ง" = "ทดสอบ">
</แบบฟอร์ม>