สิ่งที่สำคัญที่สุดในการเรียนรู้ ASP คือการเรียนรู้ออบเจ็กต์ในตัวทั้ง 6 รายการของ ASP หากคุณไม่เคยสัมผัสมันมาก่อน คุณฉลาดพอที่จะเพิกเฉยต่อแนวคิดเหล่านี้ และเพียงรู้วิธีใช้มุมมองเหล่านั้น กุญแจสำคัญในการเรียนรู้ ASP ตั้งแต่เริ่มต้นคือการคัดลอกมัน สิ่งที่สำคัญที่สุดคือการฝึกฝนออบเจ็กต์ในตัวทั้งหกของ ASP ในความเป็นจริง ในการบรรยายครั้งก่อน เราได้เรียนรู้เกี่ยวกับออบเจ็กต์ Response และวิธีการเขียนที่ใช้บ่อยที่สุด วิธีการเปลี่ยนเส้นทาง และคุณสมบัติ Expires ในออบเจ็กต์ Response เมื่อคุณเห็นแนวคิดของวัตถุ วิธีการ คุณสมบัติ คอลเลกชัน และเหตุการณ์ (ฉันไม่รู้เลย!) หากคุณไม่เคยสัมผัสมาก่อน แสดงว่าคุณฉลาดและไม่สนใจแนวคิดเหล่านี้ แค่รู้ว่าจะใช้มันอย่างไร มุมมองของฉันคือมันเป็นเพียงจุดเริ่มต้นเท่านั้น สิ่งสำคัญคือการคัดลอก มาเรียนรู้ออบเจ็กต์ Request กันต่อผ่านตัวอย่าง เพื่อทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น โปรดรันโปรแกรมเหล่านี้เพื่อดูผลลัพธ์ที่ได้
1. ใช้ Request.ServerVariables เพื่อรับตัวแปรสภาพแวดล้อม ส่วนนี้ง่ายมาก แต่เนื้อหาที่ได้รับมีความสำคัญมากได้อย่างไร โปรดดูตัวอย่างต่อไปนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ ภาษา=VBScript %>
<HTML><BODY>
<% 'wuf8.asp
Response.Write Path เพื่อเรียกใช้ไฟล์ ASP: &_
Request.ServerVariables (Script_Name) & <Br>
Response.Write ส่งกลับความยาวของข้อมูลของเนื้อหา: &_
Request.ServerVariables (Content_Length) & <Br>
Response.Write ส่งกลับที่อยู่ IP ของลูกค้า: &_
คำขอ ServerVariables (Remote_Addr) & <Br>
การตอบสนองเขียนชื่อเบราว์เซอร์: &_
คำขอ ServerVariables (HTTP_USER_AGENT) & <Br>
Response.Write ส่งคืนเส้นทางทางกายภาพจริงไปยังโฮมเพจ: &_
คำขอ ServerVariables (APPL_PHYSICAL_PATH) & <Br>
-
<ตาราง colspan=8 เซลล์แพดดิ้ง=5 เส้นขอบ=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>ชื่อตัวแปรสภาพแวดล้อม</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>เนื้อหา</font></td>
</tr>
<tr>
<td bgcolor=f7efde align=CENTER> <รูปแบบแบบอักษร=ขนาด ARIAL แคบ=2>
ผลลัพธ์1
</font></td>
<td bgcolor=f7efde align=CENTER> <รูปแบบแบบอักษร=ขนาด ARIAL แคบ=2>
ผลลัพธ์2
</font></td></tr>
</ตาราง>
</BODY></HTML>
ตอนนี้ คุณน่าจะพบว่ารูทีน wuf2.asp ในการบรรยายครั้งก่อนนั้นง่ายแค่ไหน!
หมายเหตุ: มาร์กอัป HTML ในส่วนหลังของโปรแกรมนี้จัดทำขึ้นเพื่อเป็นตัวอย่างต่อไปนี้เท่านั้น ดังนั้นอย่าแปลกใจเลย แล้วมีตัวแปรสภาพแวดล้อมอะไรอีกบ้าง? คุณจะรู้ได้ด้วยการรันตัวอย่างต่อไปนี้ (โปรแกรมนี้ได้ลบโค้ดบางส่วนไปแล้ว วิธีที่ดีที่สุดคือดาวน์โหลดโปรแกรมต้นฉบับจากเว็บไซต์ของฉันเพื่อให้เข้าใจได้ง่ายขึ้น)
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ ภาษา=VBScript %>
<% 'wuf9.asp
ตัวเลือกที่ชัดเจน
ดิม สวี
-
<HTML><BODY>
<ตาราง colspan=8 เซลล์แพดดิ้ง=5 เส้นขอบ=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>ชื่อตัวแปรสภาพแวดล้อม</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>ผลลัพธ์</font></td>
</tr>
-
สำหรับแต่ละ Sv In Request.ServerVariables
การตอบสนองเขียน<tr>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
การตอบสนองเขียน Sv
การตอบกลับ เขียน </font></td>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
การตอบสนอง เขียนคำขอ ServerVariables (Sv)
การตอบสนองเขียน </font></td></tr>
ต่อไป
-
</ตาราง>
</BODY></HTML>
A For...แต่ละวงถูกใช้ที่นี่เพื่อแสดงรายการองค์ประกอบทั้งหมดในคอลเลกชัน หากคุณไม่เข้าใจครึ่งหลัง กรุณาเปรียบเทียบ wuf8.asp ดูผลการวิ่ง และทำความเข้าใจให้ละเอียด (คุณมีทัศนคติอย่างไร)
2. ส่งข้อมูลไปยังเซิร์ฟเวอร์ผ่านแบบฟอร์ม (ซึ่งสามารถเข้าใจได้ว่าเซิร์ฟเวอร์อ่านข้อมูลที่ลูกค้าส่งอย่างไร)
หากคุณเคยทำงานในหน้าแรก คุณควรทราบว่าหน้าแรกหลายแห่งมักจะใช้แบบฟอร์มแบบฟอร์มเพื่อให้ผู้ใช้สามารถป้อนข้อมูลได้ จากนั้นจึงส่งข้อมูลผ่านปุ่มส่ง มีสองวิธีหลักในรูปแบบ From: POST และ GET โดยปกติแล้ว หลังจากดำเนินการแล้ว ไฟล์ .cgi, .pl หรือ .asp จะถูกระบุ สิ่งที่เราจะเรียนรู้ในวันนี้คือวิธีเขียนไฟล์ .asp
(1) หากคุณใช้วิธี POST ในการส่งข้อมูล ให้ใช้ Request.Form เพื่ออ่านข้อมูล
ขั้นแรกให้แก้ไขไฟล์ wuf10.htm ต่อไปนี้เพื่อให้ผู้ใช้ป้อนข้อมูล:
คัดลอกรหัสรหัสดังต่อไปนี้:
<html>
<body bgcolor=#FFFFFF>
<รูปแบบวิธีการ=ลงรายการบัญชีการกระทำ=wuf11.asp>
ชื่อ: <input type=text name=yourname><br>
เพศ: <เลือกชื่อ=เพศ>
<option>ชาย</option>
<option>เพศหญิง</option>
</เลือก> <br>
ข้อความ: <textarea name=message>สวัสดี!
ให้ความสนใจกับการประมวลผลข้อความหลายบรรทัด</textarea> <br>
งานอดิเรก (กดปุ่ม Ctrl ค้างไว้เพื่อเลือกหลายรายการ):
<เลือกชื่อ=งานอดิเรกหลายขนาด=4>
<option>คอมพิวเตอร์</option>
<option>ช็อปปิ้ง</option>
<option>ภาพยนตร์</option>
<option>การอ่าน</option>
</เลือก> <br>
<ประเภทอินพุต=ชื่อส่ง=ค่าส่ง=ส่ง>
<ประเภทอินพุต=รีเซ็ตชื่อ=ค่า Submit2=รีเซ็ต>
</แบบฟอร์ม>
</ร่างกาย>
</html>
จากนั้นเขียนไฟล์ wuf11.asp ที่ wuf10.htm จำเป็นต้องใช้ในการรวบรวมข้อมูล:
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ ภาษา=VBScript %>
<% 'wuf11.asp
ตัวเลือกที่ชัดเจน
การตอบกลับหมดอายุ=0
StrName จาง, StrGender, StrM, StrMsg
StrName = Trim(Request.Form(yourname)) 'ฟังก์ชัน Trim ใช้เพื่อลบช่องว่างนำหน้าและต่อท้าย
StrGender = Trim(Request.Form(gender))
StrM = Trim (คำขอแบบฟอร์ม (ข้อความ))
StrMsg = แทนที่(StrM,vbcrlf,<Br> & vbcrlf)
' vbcrlf เทียบเท่ากับการรวมกันของการขึ้นบรรทัดใหม่และการป้อนบรรทัด สำหรับฟังก์ชันแทนที่นั้น ฟังก์ชันคือการแทนที่ vbcrlf ในสตริง StrM ด้วย <Br> & vbcrlf (โปรดคิดถึงการใช้ vbcrlf นี้หรือไม่ คุณจะเข้าใจโดยดูที่ซอร์สโค้ด HTML ของไฟล์เอาต์พุต โปรดดู ไปที่วิธีใช้ VBScript เพื่อดูรายละเอียด
-
<HTML><BODY>
ชื่อ: <%= StrName%><Br><Br>
เพศ: <%= StrGender%><Br><Br>
ข้อความ: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
จริงๆ แล้ว ค่าของปุ่มส่งก็ถูกส่งเช่นกัน: <Br>
<%= แบบฟอร์มคำขอ(ส่ง)%><Br><Br>
<% 'ขั้นแรกให้ทำความเข้าใจข้างต้น จากนั้นดูวิธีอ่านหลายตัวเลือกหากคุณสนใจ
Response.Write จำนวนงานอดิเรกที่เลือกทั้งหมด: & Request.Form(hobby).Count & <Br>
ดิม ไอ
สำหรับ I = 1 ถึง Request.Form(hobby).Count
Response.เขียนคำขอแบบฟอร์ม(งานอดิเรก)(I) & <Br>
ต่อไป
-
</BODY></HTML>
ในตัวอย่างนี้ เพื่อความสะดวกในการทำความเข้าใจ เราใช้สองโปรแกรม จริงๆ แล้ว คุณสามารถใช้เพียงโปรแกรมเดียวก็ได้ หากคุณสนใจ โปรดดูรูทีน wuf12.asp ต่อไปนี้ ซึ่งจะช่วยให้คุณเข้าใจตัวแปรสภาพแวดล้อมได้ลึกซึ้งยิ่งขึ้น
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ ภาษา=VBScript %>
<% 'wuf12.asp
ตัวเลือกที่ชัดเจน
การตอบกลับหมดอายุ=0
StrName จาง, StrGender, StrM, StrMsg
ถ้า Request.ServerVariables(Content_Length) <> 0 แล้ว
'หลังจากส่งข้อมูลแล้ว ความยาวจะไม่เป็น 0 ดังนั้นให้ดำเนินการคำสั่งต่อไปนี้เพื่อแสดงผลลัพธ์
'ส่วนต่อไปนี้คัดลอกมาจาก wuf11.asp จริงๆ
StrName = Trim(Request.Form(ชื่อของคุณ))
StrGender = Trim(Request.Form(gender))
StrM = Trim (คำขอแบบฟอร์ม (ข้อความ))
StrMsg = แทนที่(StrM,vbcrlf,<Br> & vbcrlf)
-
<HTML><BODY>
ชื่อ: <%= StrName%><Br><Br>
เพศ: <%= StrGender%><Br><Br>
ข้อความ: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
-
Response.Write จำนวนงานอดิเรกที่เลือกทั้งหมด: & Request.Form(hobby).Count & <Br>
ดิม ไอ
สำหรับ I = 1 ถึง Request.Form(hobby).Count
Response.เขียนคำขอแบบฟอร์ม(งานอดิเรก)(I) & <Br>
ต่อไป
-
</BODY></HTML>
-
อื่น
'เมื่อโหลดเพจครั้งแรก จะไม่มีการส่งข้อมูล ดังนั้นส่วนก่อนหน้าจึงไม่ได้ดำเนินการ แต่เริ่มต้นจากที่นี่
'นี่คือเหตุผลว่าทำไมจึงมี <HTML></HTML> สองคู่
'เพียงคัดลอก wuf10.htm ด้านล่าง
'<form method=post action=wuf11.asp> ถูกแทนที่ด้วยตัวแปรสภาพแวดล้อม แต่ก็เหมือนกันทุกประการ
Response.Write เพื่อดูผลลัพธ์: & Request.ServerVariables(Script_name) & <Br>
-
<HTML><BODY>
<form method=post action=<%= Request.ServerVariables(Script_name)%>>
ชื่อ: <input type=text name=yourname><br>
เพศ: <เลือกชื่อ=เพศ>
<option>ชาย</option>
<option>เพศหญิง</option>
</เลือก> <br>
ข้อความ: <textarea name=message>สวัสดี!
ให้ความสนใจกับการประมวลผลข้อความหลายบรรทัด</textarea> <br>
งานอดิเรก (กดปุ่ม Ctrl ค้างไว้เพื่อเลือกหลายรายการ):
<เลือกชื่อ=งานอดิเรกหลายขนาด=4>
<option>คอมพิวเตอร์</option>
<option>ช็อปปิ้ง</option>
<option>ภาพยนตร์</option>
<option>การอ่าน</option>
</เลือก> <br>
<ประเภทอินพุต=ชื่อส่ง=ค่าส่ง=ส่ง>
<ประเภทอินพุต=รีเซ็ตชื่อ=ค่า Submit2=รีเซ็ต>
</แบบฟอร์ม>
</BODY></HTML>
<%สิ้นสุดถ้า%>
(2) หากคุณใช้วิธี GET เพื่อส่งข้อมูล ให้ใช้ Request.Querystring เพื่ออ่านข้อมูล
ขั้นแรกให้แก้ไขไฟล์ wuf13.htm ต่อไปนี้เพื่อให้ผู้ใช้ป้อนข้อมูล:
<html>
<body bgcolor=#FFFFFF>
<รูปแบบวิธีการ=รับการกระทำ=wuf14.asp>
ชื่อภาษาอังกฤษ: <input type=text name=Ename> <br>
ชื่อภาษาจีน: <input type=text name=Cname><br>
เพศ: <เลือกชื่อ=เพศ>
<option>ชาย</option>
<option>เพศหญิง</option>
</เลือก> <br>
<ประเภทอินพุต=ชื่อส่ง=ค่าส่ง=ส่ง>
<ประเภทอินพุต=รีเซ็ตชื่อ=ค่า Submit2=รีเซ็ต>
</แบบฟอร์ม>
</ร่างกาย>
</html>
จากนั้นเขียนไฟล์ wuf14.asp ที่ wuf13.htm จำเป็นต้องใช้ในการรวบรวมข้อมูล:
<%@ ภาษา=VBScript %>
<% 'wuf14.asp
ตัวเลือกที่ชัดเจน
การตอบกลับหมดอายุ=0
Dim StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString(Ename)) 'ฟังก์ชัน Trim ใช้เพื่อลบช่องว่างนำหน้าและต่อท้าย
StrCname = Trim (Request.QueryString (Cname))
StrGender = Trim (Request.QueryString (เพศ))
-
<HTML><BODY>
ชื่อภาษาอังกฤษ: <%= StrEname%><Br><Br>
ชื่อภาษาจีน: <%= StrCname%><Br><Br>
เพศ: <%= StrGender%><Br><Br>
ดูสตริงที่ส่ง: <Br>
<%= Request.ServerVariables(Query_String)%>
</BODY></HTML>
เพื่อให้เข้าใจโปรแกรมนี้ได้ดีขึ้น คุณควรลองใช้เอฟเฟ็กต์ของรูทีน wuf13.htm ในเบราว์เซอร์ก่อน และดูผลลัพธ์ที่ได้ คุณจะพบว่าสตริงแบบยาวในแถบที่อยู่ดูคุ้นเคย เช่นเดียวกับเมื่อก่อน ค้นหาใน Yahoo เห็นค่อนข้างเหมือนกัน ในขณะนี้ คุณพยายามป้อน http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女 โดยตรงในแถบที่อยู่ และคุณจะได้รับผลลัพธ์เดียวกัน ดังนั้นคุณจะเห็นได้ด้วยวิธีนี้ ผลลัพธ์ของ wuf13.htm คือการได้รับลิงก์ที่มีพารามิเตอร์เช่นนี้ Request.QueryString อ่านข้อมูลแต่ละรายการจากพารามิเตอร์เพิ่มเติมของที่อยู่ http://
ในความเป็นจริง เมื่อกดปุ่มส่ง สตริงการสืบค้น (ข้อมูลที่ป้อน) จะถูกต่อท้ายที่อยู่ URL ในรูปแบบของพารามิเตอร์ (แต่ละพารามิเตอร์จะถูกคั่นด้วย &) เพื่อให้บรรลุวัตถุประสงค์ในการถ่ายโอนข้อมูล ในเวลาเดียวกัน โปรดทราบว่าไม่มีภาษาจีนในสตริงการสืบค้นที่แสดงในเบราว์เซอร์ มีแต่อักขระที่อ่านไม่ออกซึ่งจำไม่ได้ซึ่งมีเครื่องหมายเปอร์เซ็นต์อยู่ด้วย เนื่องจากมันถูกเข้ารหัส สุดท้ายเหมือนเมื่อก่อน ทั้งสองโปรแกรมนี้สามารถรวมเป็นโปรแกรมเดียวได้ (ตามปกติ wuf15.asp คุณต้องดาวน์โหลดจากเว็บไซต์ของฉัน)
หมายเหตุบางประการ :
1. หากคุณใช้วิธี POST เพื่อส่งข้อมูล Request.ServerVariables(Content_Length)>0
หากคุณใช้วิธี GET เพื่อส่งข้อมูล Request.ServerVariables(Query_String) <>
2. หลังจากทำความเข้าใจหลักการแล้ว คุณสามารถผสม Request.Form และ Request.QueryString ในไฟล์ ASP เดียวกันได้
3. หากมีหลายปุ่มในแบบฟอร์ม คุณจะทราบได้อย่างไรว่าผู้ใช้กดปุ่มใด หากคุณให้ความสนใจ คุณจะพบว่ามีประโยคหนึ่งในรูทีน wuf11.asp ที่มีการส่งสัญญาณค่าของปุ่มส่งด้วย และค่าที่คล้ายกันสามารถพบได้ในสตริงการสืบค้นที่สร้างขึ้นใน wuf13.htm โปรดทราบ: เฉพาะค่าของปุ่มกดเท่านั้นที่ถูกส่ง และค่าของปุ่มอื่น ๆ ที่เป็นพื้นฐานสำหรับการตัดสิน (เว็บไซต์ InfoWeb "China Planning News" มีบทความที่คล้ายกัน)