ASP การบรรยายที่ 4: ส่วนประกอบ ASP ในตัว
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-05-30 19:58:14
ในการบรรยายสามรายการแรก เราได้แนะนำออบเจ็กต์บิวท์อินสี่รายการที่ได้รับจาก ASP เป็นหลัก:
วัตถุตอบสนอง: ส่งข้อมูลไปยังเบราว์เซอร์
วัตถุคำขอ: เข้าถึงข้อมูลที่ส่งจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ (เช่นการรับข้อมูลแบบฟอร์ม)
วัตถุเซสชัน: จัดเก็บและอ่านข้อมูลการสนทนาของผู้ใช้เฉพาะ
วัตถุแอปพลิเคชัน: จัดเก็บและอ่านข้อมูลแอปพลิเคชันที่แชร์โดยผู้ใช้ทั้งหมด
นอกจากนี้ยังมีออบเจ็กต์เซิร์ฟเวอร์และออบเจ็กต์ ObjectContext ที่เราจะเรียนรู้ในตัวอย่างในอนาคต (คำแนะนำ: ที่จริงแล้ว คุณสามารถใช้ความรู้ที่ได้เรียนรู้มาเขียนห้องสนทนาออนไลน์โดยไม่รู้ตัวได้แล้ว) เนื้อหาการบรรยายนี้คือการใช้ ActiveX Server Components (ส่วนประกอบ) ของ ASP
1. องค์ประกอบความสามารถของเบราว์เซอร์:
เรารู้ว่าเบราว์เซอร์ที่แตกต่างกันอาจรองรับฟังก์ชันที่แตกต่างกัน ตัวอย่างเช่น เบราว์เซอร์บางตัวรองรับเฟรมและบางตัวไม่รองรับ เมื่อใช้ส่วนประกอบนี้ คุณสามารถตรวจสอบความสามารถของเบราว์เซอร์เพื่อให้หน้าเว็บของคุณสามารถแสดงหน้าต่างๆ สำหรับเบราว์เซอร์ที่แตกต่างกันได้ (เช่น การแสดงหน้าเว็บโดยไม่มี Frame สำหรับเบราว์เซอร์ที่ไม่รองรับ Frame) การใช้ส่วนประกอบนี้ง่ายมาก โปรดทราบว่าหากต้องการใช้ส่วนประกอบนี้อย่างถูกต้อง คุณต้องแน่ใจว่าไฟล์ Browscap.ini เป็นปัจจุบัน (อันที่จริง ทุกเบราว์เซอร์และฟีเจอร์ต่างๆ อยู่ในรายการในไฟล์นี้ คุณจะ เข้าใจหลังจากเปิดด้วยตัวเอง) ไม่เช่นนั้นผลลัพธ์อาจแตกต่างกันมาก เช่น IE5.0 ที่รวมอยู่ใน Win98 เวอร์ชันที่สองจะแสดงเป็น Netscape ในตัวอย่างต่อไปนี้ โดยทั่วไปไฟล์นี้จะอยู่ภายใต้ "WinntSystem32InetSrv" บนเว็บเซิร์ฟเวอร์ สามารถดาวน์โหลดเวอร์ชันล่าสุดได้จาก http://www.asptracker.com/ หรือ http://www.cyscape.com/browscap
ตัวอย่าง: wuf22.asp
<html>
<ร่างกาย>
'หมายเหตุ: การใช้ส่วนประกอบจะคล้ายกับของออบเจ็กต์ แต่ต้องสร้างส่วนประกอบก่อนใช้งาน และไม่จำเป็นต้องสร้างก่อนใช้ออบเจ็กต์บิวท์อิน
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
โปรดรอ......
<ป>
<เส้นขอบตาราง=1 การเพิ่มเซลล์=10>
<TR><TD>ประเภทเบราว์เซอร์</TD><TD><%=BrowsCap.Browser%></TD></TR>
<TR><TD>เวอร์ชันของเบราว์เซอร์</TD><TD><%=BrowsCap.version%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับตารางหรือไม่</TD><TD><%=BrowsCap.tables%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับการควบคุม ActiveX หรือไม่</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับ JavaApplets หรือไม่</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
<TR><TD>รองรับ JavaScript หรือไม่</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>รองรับคุกกี้หรือไม่</TD><TD><%=BrowsCap.Cookies%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับเฟรมหรือไม่</TD><TD><%=BrowsCap.Frames%></TD></TR>
<TR><TD>ระบบปฏิบัติการ</TD><TD><%=BrowsCap.Platform%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับ VBScript หรือไม่</TD><TD><%=BrowsCap.vbscript%></TD></TR>
</ตาราง>
<%Set BrowsCap = ไม่มีเลย%>
</ร่างกาย>
</HTML>
หมายเหตุ: ในตัวอย่างนี้ เรายังสัมผัสวิธีการ CreateObject ของวัตถุเซิร์ฟเวอร์ CreateObject ใช้เพื่อสร้างส่วนประกอบ ActiveX ที่ได้รับการลงทะเบียนบนเซิร์ฟเวอร์ (หมายเหตุ: มีวิธีอื่นในการสร้างส่วนประกอบ) แต่อย่าลืมใช้ "Set Object = Nothing" เพื่อปล่อยทรัพยากรให้ทันเวลา นี่ควรติดเป็นนิสัย
2. องค์ประกอบการเข้าถึงไฟล์
คอมโพเนนต์ File Access ประกอบด้วยออบเจ็กต์ FileSystemObject และออบเจ็กต์ TextStream คุณสามารถสร้าง ดึงข้อมูล และลบไดเร็กทอรีและไฟล์ได้โดยใช้ออบเจ็กต์ TextStream ในขณะที่ออบเจ็กต์ TextStream มีฟังก์ชันการอ่านและเขียนไฟล์
ตัวอย่าง wuf23.asp เน้น: ผ่านการฝึกฝนเท่านั้นที่สามารถทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น การฝึกฝนและการเปรียบเทียบผลการรันโปรแกรมเป็นวิธีที่ดีที่สุดในการฝึกฝนทักษะการเขียนโปรแกรมอย่างรวดเร็ว
<%@ ภาษา=VBScript %>
<% ตัวเลือกที่ชัดเจน
' สังเกตเส้นทางที่แน่นอน: C:Inetpubhomeaspwuf23.asp เส้นทางโฮมเพจ: C:Inetpubhome
Dim Path, ไฟล์, FSO, CTF, Str, StrHTML, StrNoHTML
'ใช้วิธีการ CreateObject เพื่อสร้างวัตถุ FileSystemObject FSO
ตั้งค่า FSO = Server.CreateObject("Scripting.FileSystemObject")
Path = Server.MapPath("test") 'ส่งคืนไดเร็กทอรีทางกายภาพของการทดสอบ (เส้นทางสัมบูรณ์)
'สำหรับตัวอย่างนี้ ประโยคต่อไปนี้จะส่งกลับ Path เดียวกันกับประโยคข้างต้นทุกประการ
'เส้นทาง = Server.MapPath("asptest")
การตอบกลับเขียนเส้นทาง & "<Br>"
ถ้า FSO.FolderExists(Path) = false ดังนั้น 'ตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่
FSO.CreateFolder(Path) 'สร้างโฟลเดอร์ใหม่'
สิ้นสุดถ้า
ไฟล์ = เส้นทาง & "asptest.txt"
'การดำเนินการเขียนไฟล์
ถ้า FSO.FileExists(File) = True จากนั้น 'ตรวจสอบว่ามีไฟล์อยู่หรือไม่
'สร้างวัตถุ TextStream CTF
ตั้งค่า CTF = FSO.OpenTextFile(File, 8, False, 0) 'เปิดไฟล์ ดูรายละเอียดในคำอธิบาย
อื่น
ตั้งค่า CTF = FSO.CreateTextFile(File,False, False) 'ไฟล์ใหม่
สิ้นสุดถ้า
CTF.Write "<P>The first string; " 'เขียน string
CTF.WriteLine "Second string; " 'เขียนสตริงและเพิ่มอักขระขึ้นบรรทัดใหม่
CTF.เขียน "The Third String; "
CTF.Close 'หมายเหตุเพื่อปิดไฟล์
'การดำเนินการอ่านไฟล์
ตั้งค่า CTF = FSO.OpenTextFile (ไฟล์, 1,,0)
Do While CTF.AtEndOfStream <> True 'ตรวจสอบว่าไฟล์สิ้นสุดหรือไม่ (คำสั่งวนซ้ำ)
Str = CTF.ReadLine 'อ่านหนึ่งบรรทัด (แต่ละครั้ง)
StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf
StrHTML = StrHTML & เซิร์ฟเวอร์ HTMLEncode(Str) & "<BR>" & VbCrLf
วนซ้ำ
การตอบสนองเขียน StrNoHTML
การตอบสนองเขียน StrHTML
CTF.ปิด
Set CTF = Nothing 'ปล่อยวัตถุ
ตั้งค่า FSO = ไม่มีเลย
-
CTF = FSO.OpenTextFile(File, 8, False, 0) พารามิเตอร์แรกในวงเล็บคือชื่อไฟล์ พารามิเตอร์ตัวที่สองคือ 8 ซึ่งหมายถึงการต่อท้ายเนื้อหาหลังไฟล์ต้นฉบับ ถ้าเป็น 1 แสดงว่าอ่านแล้ว - เท่านั้น และหากเป็น 2 ก็จะเขียนไฟล์ต้นฉบับใหม่ พารามิเตอร์ตัวที่สาม false หมายความว่าหากไม่มีไฟล์ที่ระบุ ไฟล์นั้นจะไม่ถูกสร้างขึ้น หากเป็น True แสดงว่าไฟล์ที่ระบุไม่มีอยู่ มีอยู่ ไฟล์จะถูกสร้างขึ้น พารามิเตอร์ที่สี่ 0 หมายความว่าจะเปิดในรูปแบบไฟล์ ASCII หากเป็น -2 แสดงว่าเปิดในรูปแบบดั้งเดิม
CTF = FSO.CreateTextFile(File,False, False) พารามิเตอร์ตัวที่สอง false หมายถึงไม่เขียนทับไฟล์ที่มีอยู่ หากเป็น True จะหมายถึงเขียนทับ (เขียนทับ) ไฟล์ที่มีอยู่ พารามิเตอร์ตัวที่สาม false หมายความว่ารูปแบบไฟล์เป็น ASCII หากเป็น True แสดงว่ารูปแบบไฟล์เป็น Unicode
เมธอด MapPath ของวัตถุเซิร์ฟเวอร์แปลงเส้นทางเสมือนที่ระบุเป็นเส้นทางไฟล์จริง MapPath ถือว่าอักขระ "/" และ "" เหมือนกัน
วิธีการ HTMLEncode ของวัตถุเซิร์ฟเวอร์ช่วยให้คุณสามารถเข้ารหัส HTML สตริงเฉพาะ หรือเพื่อให้เบราว์เซอร์แสดงอักขระเฉพาะได้อย่างถูกต้อง ในตัวอย่างข้างต้น หากไม่ได้เข้ารหัส "<P>" จะไม่ปรากฏ แต่เบราว์เซอร์จะถือเป็นแท็ก HTML คุณสามารถเปรียบเทียบผลลัพธ์ที่ทำงานอยู่ได้
ที่จริงแล้ว องค์ประกอบ File Access ค่อนข้างมีประสิทธิภาพในการใช้งานไฟล์ โฟลเดอร์ และไดรฟ์ และยังมีวิธีการเพิ่มเติมอีกด้วย หากคุณต้องการใช้ความรู้นี้ อย่าลืมนำไปใช้ด้วย
นอกจากนี้ ในตอนนี้ การเขียนตัวนับหน้าเว็บก็เป็นเรื่องง่าย ไม่น่าแปลกใจเลยที่หน้าเว็บจำนวนมากมีตัวนับฟรี แล้วไงล่ะ? ลองเขียนตัวนับแบบกราฟิกด้วยตัวเอง คุณสามารถโกงได้มากเท่าที่คุณต้องการ (ความลับเล็กๆ น้อยๆ: ฉันมีอินสแตนซ์ wuf24.asp ในหน้าแรกของฉัน)
3. AD Rotator (องค์ประกอบการพลิกโฆษณา)
ทุกวันนี้เวลาเล่นอินเตอร์เน็ต สิ่งที่ฉันเกลียดที่สุดคือป้ายโฆษณาบนหน้าแรกของคนอื่น และสิ่งที่ฉันชอบมากที่สุดก็คือป้ายโฆษณาบนหน้าแรกของฉันเอง ป้ายโฆษณาอยู่ทุกหนทุกแห่งเหมือนกับสแปมและป้องกันได้ยาก คุณสามารถสร้างขยะดังกล่าวได้ด้วยตัวเอง ส่วนประกอบ AD Rotator ของ ASP สามารถสุ่มแสดงโฆษณาทุกครั้งที่คุณเปิดหรือโหลดหน้าเว็บซ้ำ ตัวอย่างนี้ประกอบด้วยสามส่วน:
กิจวัตร wuf25.asp
<%@ ภาษา=VBScript %>
<% ตัวเลือกที่ชัดเจน
โฆษณาติ่มซำ
'สร้างวัตถุ AD Rotator
ตั้งค่า adr = Server.CreateObject("MSWC.AdRotator")
adr.Border = 2 'ระบุขนาดเส้นขอบของไฟล์กราฟิก'
adr.Clickable = True 'ระบุว่ารูปภาพที่แสดงเป็นไฮเปอร์ลิงก์หรือไม่
adr.TargetFrame = "_blank" 'ตั้งค่าไฮเปอร์ลิงก์ว่าจะระบุชื่อเฟรมหรือไม่ เช่น: _TOP _NEW _PARENT
'รับการตั้งค่ารูปภาพและไฮเปอร์ลิงก์ที่จะแสดง - ตั้งค่าในไฟล์ AdrSet.txt
Response.เขียน adr.GetAdvertisement("AdrSet.txt")
-
เนื้อหาของ AdrSet.txt (ตามด้วยความคิดเห็น ไม่ใช่เนื้อหาของไฟล์นี้):
เปลี่ยนเส้นทาง wuf26.asp หลังจากคลิกโฆษณาแล้ว wuf26.asp จะดำเนินการประมวลผล
WIDTH 468 ความกว้างของรูปภาพโฆษณา
ความสูง 60 ความสูงของรูปภาพโฆษณา
* ตัวคั่น
ตำแหน่งของรูปภาพโฆษณา ซึ่งอาจเป็นไฟล์กราฟิกในเครื่องก็ได้
http://www.163.com/ ชี้ไปที่ลิงก์ หากไม่มีไฮเปอร์ลิงก์ ให้เขียน "-"
คำอธิบายข้อความ NetEase
20 แสดงน้ำหนักสัมพัทธ์ของโฆษณา นั่นคือ ความถี่ในการแสดง
http://www.sina.com.cn/
sina.com
30
http://www.canon.com.cn/
แคนนอน
50
ในตัวอย่างนี้ มีรูปภาพ 3 รูป (ขนาดรูปภาพ 468X60) และคำอธิบายของแต่ละลิงก์มีสี่บรรทัด ในการใช้งานจริง คุณสามารถทำตามวิธีเดียวกันและเพิ่มรูปภาพเพิ่มเติมได้
<% 'wuf26.asp
URL = Request.QueryString("url")
การตอบสนองการเปลี่ยนเส้นทาง (URL)
-
wuf26.asp เป็นโปรแกรมประมวลผลที่ง่ายที่สุด คุณสามารถเพิ่มโค้ดเพิ่มเติมได้ที่นี่ตามความต้องการที่แท้จริง
เรียกใช้และปรากฎว่าการใช้ส่วนประกอบนี้ง่ายมาก สิ่งที่คุณต้องทำคือรับไฟล์ AdrSet.txt ของคุณเอง การใช้ส่วนประกอบนี้ทำให้คุณสามารถออกแบบหน้าแรกของ Ad Exchange ที่กำลังอินเทรนด์ได้
4. องค์ประกอบการลิงก์เนื้อหา แน่นอนว่าองค์ประกอบนี้เกี่ยวข้องกับลิงก์ หากคุณต้องการทราบการใช้งานเฉพาะขององค์ประกอบนี้ทันที ฉันเกรงว่ามันจะเร็วเกินไป คุณอาจจะอ้างอิงตัวอย่างคลาสสิกก่อน: สมมติว่าคุณกำลังอ่านก หนังสือบนอินเทอร์เน็ตคุณจะต้องไม่คุ้นเคยกับลิงค์ต่อไปนี้ จะไม่คุ้นเคย: บทที่ 1, บทที่ 2,..., บทที่แล้ว, บทที่ถัดไป (หรือหน้าก่อนหน้า, หน้าถัดไป) เป็นต้น สิ่งที่เราต้องทำตอนนี้คือวิธีตั้งค่าการข้ามระหว่างลิงก์เหล่านี้อย่างง่ายดายและรวดเร็ว
ขั้นแรกให้สร้างไฟล์ข้อความรายการลิงก์ เช่น urllist.txt
wuf23.asp บทที่ 1: การทำงานของไฟล์ (ส่วนประกอบการเข้าถึงไฟล์)
wuf28.asp บทที่ 2: ตัวอย่างการใช้งานส่วนประกอบการลิงก์เนื้อหา
wuf22.asp บทที่ 3: ที่อยู่ URL ของคอมโพเนนต์ลิงก์ความสามารถของเบราว์เซอร์และคำอธิบายจะถูกคั่นด้วยปุ่ม Tab wuf27.asp ต่อไปนี้ใช้เพื่อแสดงรายการลิงก์ทั้งหมดใน urllist.txt
<% @LANGUAGE = VBScript %>
<% ตัวเลือกที่ชัดเจน %>
<html><head><title>การใช้ส่วนประกอบการลิงก์เนื้อหา</title></head>
<ร่างกาย>
<h2>สารบัญ: โปรดทราบว่าลิงก์หลักคือบทที่ 2 คุณต้องคลิกลิงก์นั้น</h2>
<ul>
-
Dim NextLink เคานต์
'สร้างส่วนประกอบการเชื่อมโยงเนื้อหา
ตั้งค่า NextLink = Server.CreateObject("MSWC.NextLink")
'รับจำนวนลิงก์ในไฟล์ urllist.txt'
จำนวน = NextLink.GetListCount("urllist.txt")
Dim url, Dscr, I
สำหรับฉัน = 1 ที่จะนับ
url = NextLink.GetNthURL ("urllist.txt", I) 'รับไฮเปอร์ลิงก์
Dscr = NextLink.GetNthDescription ("urllist.txt", I) 'รับคำอธิบายข้อความ
การตอบสนองเขียน "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
ต่อไป
-
</ul></body></html>
จากนั้น ยกตัวอย่าง wuf28.asp เพื่อแสดงวิธีข้ามไปยังบทก่อนหน้าและบทถัดไปโดยอัตโนมัติ
<% @LANGUAGE = VBScript %>
<% ตัวเลือกที่ชัดเจน %>
<html><head><title>โปรดดูลิงก์นี้</title></head>
<ร่างกาย>
<p>นี่คือข้อความของบทที่ 2......</p>
<% 'แต่ละไฟล์ประกอบด้วยประโยคต่อไปนี้เพื่อให้สามารถเชื่อมโยงอัตโนมัติ%>
<!--#include file="wuf29.asp"-->
</body></html>
การเพิ่มประโยคสุดท้ายที่นี่สามารถรับรู้การข้ามอัตโนมัติได้ แกนหลักอยู่ใน wuf29.asp
-
Dim NextLink อันดับ
ตั้งค่า NextLink = Server.CreateObject ("MSWC.NextLink")
'ลิงก์ปัจจุบันใน urllist.txt คืออะไร?
อันดับ = NextLink.GetListIndex ("urllist.txt")
ตอบกลับเขียน "<hr>"
ถ้า (อันดับ > 1) ดังนั้น 'อันดับ = 1 ไม่มีหน้าก่อนหน้า
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>บทก่อนหน้า</a>|"
สิ้นสุดถ้า
ถ้า (rank < NextLink.GetListCount("urllist.txt")) แล้ว 'rank อยู่ท้ายสุด ก็ไม่มีหน้าถัดไป'
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>บทถัดไป</a>|"
สิ้นสุดถ้า
-
หลังจากรันตัวอย่างนี้ คุณจะสามารถเข้าใจบทบาทของส่วนประกอบนี้อย่างแท้จริงได้ทันที กล่าวโดยย่อคือ ไม่จำเป็นต้องเขียน "บทก่อนหน้า" และ "บทถัดไป" ในแต่ละหน้า โดยสามารถทำได้อย่างสมบูรณ์ผ่าน wuf29.asp . ไม่สะดวกมาก? - มิฉะนั้นจะไม่ลำบากเกินไปหากคุณแก้ไขลิงก์ด้วยตนเอง
ตอนนี้คุณควรเข้าใจว่ามีเคาน์เตอร์ฟรี กระดานข้อความฟรี ห้องสนทนาฟรี เครือข่ายแลกเปลี่ยนโฆษณา ฯลฯ จำนวนมากบนอินเทอร์เน็ต หลักการของพวกเขาไม่มีอะไรมากไปกว่านี้ ดังนั้นจึงไม่จำเป็นต้องบูชาสิ่งเหล่านั้น