วัตถุแอปพลิเคชัน
วัตถุแอปพลิเคชันเป็นวัตถุระดับแอปพลิเคชันที่ใช้ในการแบ่งปันข้อมูลระหว่างผู้ใช้ทั้งหมดและเพื่อยืนยันข้อมูลในขณะที่แอปพลิเคชันเว็บกำลังทำงาน
คุณสมบัติการใช้งาน:
มีวิธีดังนี้:
วัตถุ Application ไม่มีคุณสมบัติในตัว แต่เราสามารถสร้างคุณสมบัติของตัวเองได้
<% แอปพลิเคชัน ("ชื่อคุณสมบัติ")=value%>
ที่จริงแล้ว ตัวแปรแอปพลิเคชันส่วนใหญ่จะถูกจัดเก็บไว้ในคอลเลกชันเนื้อหา เมื่อคุณสร้างตัวแปรแอปพลิเคชันใหม่ คุณจะเพิ่มรายการลงในคอลเลกชันเนื้อหาจริงๆ สคริปต์สองตัวต่อไปนี้เทียบเท่ากัน:
<% Application("greeting")="hello!" %> หรือ <% Application.contents("greeting")="hello!" เนื่องจากตัวแปร Application มีอยู่ในคอลเลกชัน หากคุณต้องการแสดงทั้งหมด เราก็มี หลายวิธี เช่น For Each loop
-
สำหรับแต่ละรายการในแอปพลิเคชันเนื้อหา
Response.write("<br>"&item&Application.Contents(item))
ต่อไป
-
วิธีการสมัคร:
แอปพลิเคชันมีเพียงสองวิธี: วิธีหนึ่งคือล็อค และอีกวิธีคือปลดล็อค วิธีการล็อคใช้เพื่อให้แน่ใจว่าผู้ใช้เพียงรายเดียวเท่านั้นที่สามารถใช้งานแอปพลิเคชันได้ในเวลาเดียวกัน การปลดล็อคใช้เพื่อยกเลิกข้อจำกัดของวิธีการล็อค ชอบ:
-
แอปพลิเคชั่นล็อค
Application("visitor_num")=Application("visitor_num")+1
แอปพลิเคชั่นปลดล็อค
-
กิจกรรมการสมัคร:
1.Application_OnStart ()
เริ่มทำงานเมื่อแอปพลิเคชันเหตุการณ์เริ่มต้น
2. Application_OnEnd()
เหตุการณ์นี้จะเริ่มทำงานเมื่อแอปพลิเคชันสิ้นสุดลง
กระบวนการเหตุการณ์ทั้งสองนี้ต้องถูกกำหนดไว้ในไฟล์ Global.asp โดยทั่วไป ฟังก์ชันสำหรับการเชื่อมต่อข้อมูลถูกกำหนดไว้ในเหตุการณ์ทั้งสองนี้ จากนั้นจึงวางลงใน Global.asp ตัวอย่างเช่น:
Application_OnStart ย่อย
Application("tt18_ConnectionString") = "driver={SQL
เซิร์ฟเวอร์};เซิร์ฟเวอร์=เจฟฟ์;uid=sa;pwd=;ฐานข้อมูล=ทดสอบ"
จบหมวดย่อย
อาร์เรย์สามารถกำหนดเป็นวัตถุแอปพลิเคชันได้ แต่อาร์เรย์นี้สามารถบันทึกเป็นวัตถุได้เท่านั้น และไม่สามารถดึงค่าของอาร์เรย์ได้โดยใช้แอปพลิเคชัน (0) คุณสามารถกำหนดอาร์เรย์ชั่วคราวเพื่อให้บรรลุฟังก์ชันนี้ได้ ชอบ:
-
สลัวอาร์เรย์()
Array=Application("อาร์เรย์")
สำหรับ i = 0 ถึง ubound (อาร์เรย์)
Response.write อาร์เรย์ (i)
ต่อไปฉัน
-
หากต้องการแก้ไขออบเจ็กต์ Application คุณยังสามารถกำหนดอาร์เรย์ชั่วคราว กำหนดออบเจ็กต์ Application ให้กับอาร์เรย์ จากนั้นแก้ไของค์ประกอบของอาร์เรย์ และสุดท้ายกำหนดอาร์เรย์กลับไปยังออบเจ็กต์ Application ชอบ:
-
สลัวอาร์เรย์()
Array=Application("อาร์เรย์")
อาร์เรย์(0)="เจฟฟ์"
อาร์เรย์(1)="จู้"
แอพลิเคชัน.ล็อค
Application("array")=อาร์เรย์
แอปพลิเคชั่นปลดล็อค
-
วัตถุ ObjectContext
วัตถุนี้ใช้เพื่อควบคุมการประมวลผลธุรกรรมของ Active Server Pages การประมวลผลธุรกรรมได้รับการจัดการโดย Microsoft Transaction Server (MTS)
เหตุการณ์
ObjectContext.OnTransactionAbort
เริ่มทำงานโดยเหตุการณ์ธุรกรรมที่ถูกยกเลิก และเกิดขึ้นหลังจากที่สคริปต์เสร็จสิ้นการประมวลผลแล้ว
ObjectContext.OnTransactionCommit
ถูกทริกเกอร์โดยเหตุการณ์ธุรกรรมที่สำเร็จ และเกิดขึ้นหลังจากที่สคริปต์เสร็จสิ้นการประมวลผลแล้ว
วิธีการ
ObjectContext.SetAbort
ยกเลิกธุรกรรมอย่างชัดเจน
ObjectContext.SetComplete
แทนที่การเรียกก่อนหน้านี้ไปยังเมธอด ObjectContext.SetAbort
ขอวัตถุ
ออบเจ็กต์คำขอใช้เพื่อยอมรับข้อมูลทั้งหมดในคำขอทั้งหมดที่ส่งจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ของคุณ
Collection
Request.ClientCertificate(key[SubField])
ชุดข้อมูลเกี่ยวกับใบรับรองไคลเอ็นต์ทั้งหมด สำหรับคีย์ คอลเลกชันมีคำสำคัญต่อไปนี้
:
เรื่องของใบรับรอง ประกอบด้วยข้อมูลทั้งหมดเกี่ยวกับใบเสร็จรับเงินใบรับรอง สามารถใช้ได้กับส่วนต่อท้ายโดเมนย่อยทั้งหมด
ผู้ออก
ผู้ออกใบรับรอง มีข้อมูลทั้งหมดเกี่ยวกับการตรวจสอบใบรับรอง สามารถใช้ได้กับส่วนต่อท้ายโดเมนย่อยทั้งหมด ยกเว้น CN
วาดิดฟรอม
วันที่ออกใบรับรอง ใช้รูปแบบ VBScript
ใช้ได้จนถึง
ใบรับรองไม่ถูกต้องอีกต่อไป
หมายเลขซีเรียล
ประกอบด้วยหมายเลขซีเรียลของใบรับรอง
ใบรับรอง
สตรีมไบนารีที่มีเนื้อหาใบรับรองทั้งหมด โดยใช้รูปแบบ ASN.1
สำหรับฟิลด์ย่อย คีย์เวิร์ด Subject และ Issuer สามารถมีส่วนต่อท้ายโดเมนย่อยต่อไปนี้: (ตัวอย่าง: SubjectOU หรือ IssuerL)
C
ประเทศต้นกำเนิด
โอ
ชื่อบริษัทหรือองค์กร
อู๋
หน่วยองค์กร
TH
ชื่อปกติของผู้ใช้
ล
บางส่วน.
ส
รัฐ (หรือจังหวัด)
ต
ตำแหน่งของบุคคลหรือบริษัท
จีเอ็น
ชื่อที่กำหนด
ฉัน
อักษรย่อ.
เมื่อไฟล์ cervbs.inc (ใช้โดย VBScript) หรือ cerjavas.inc (ใช้โดย Jscript) รวมอยู่ใน Active Server Page ของคุณโดยใช้คำสั่ง #INCLUDE คุณสามารถใช้แฟล็กสองรายการต่อไปนี้ได้:
ceCertPresent
ระบุว่ามีใบรับรองไคลเอ็นต์อยู่หรือไม่ ค่าของใบรับรองคือ TRUE หรือ FALSE
ceUnrecongnizedIssure
ระบุว่าไม่ทราบผู้ออกใบรับรองล่าสุดในรายการ ค่าของใบรับรองคือ TRUE หรือ FALSE
Request.Cookies(Cookie[(key).Attribute])
การรวบรวมคุกกี้ อนุญาตให้รับคุกกี้ของเบราว์เซอร์ คุกกี้ระบุว่าคุกกี้ใดที่จะส่งคืน คีย์ใช้เพื่อส่งคืนค่าคุกกี้ด้วยคำสำคัญบางคำจากพจนานุกรมคุกกี้ สำหรับแอตทริบิวต์ คุณสามารถใช้แอตทริบิวต์ HasKeys เพื่อตรวจสอบว่าคุกกี้มีคีย์ย่อยหรือไม่ ค่าของ HasKeys เป็น TRUE หรือ FALSE
Request.Form(Parameter)[(Index).Count]
กรอกข้อมูลในการรวบรวมข้อมูลทั้งหมดในรูปแบบ HTML พารามิเตอร์คือชื่อขององค์ประกอบในรูปแบบ HTML ดัชนีจะใช้เมื่อพารามิเตอร์มีค่ามากกว่าหนึ่งค่า (เช่น เมื่อใช้แอตทริบิวต์ MULTIPLE ใน <SELECT>) เมื่อพารามิเตอร์มีหลายค่า Count จะระบุจำนวนหลายค่า
Request.QueryString(Varible)[(Index).Count]
การรวบรวมค่าทั้งหมดของสตริงการสืบค้น ตัวแปรคือชื่อของตัวแปรในสตริงการสืบค้น ดัชนีจะใช้เมื่อตัวแปรมีค่ามากกว่าหนึ่งค่า เมื่อพารามิเตอร์มีหลายค่า Count จะระบุจำนวนค่า
Request.ServerVaribles (ตัวแปรสภาพแวดล้อมเซิร์ฟเวอร์)
ชุดของตัวแปรสภาพแวดล้อม อนุญาตให้อ่านส่วนหัว HTTP คุณสามารถอ่านข้อมูลส่วนหัวได้โดยใช้คำนำหน้า HTTP_ ตัวอย่างเช่น HTTP_USER_AGENT ยอมรับส่วนหัว Client-Agent HTTP (ประเภทเบราว์เซอร์) มิฉะนั้น คุณสามารถรับข้อมูลสภาพแวดล้อมได้โดยใช้ตัวแปรที่แสดงในตารางด้านล่าง
ทั้งหมด_HTTP
ส่วนหัว HTTP ทั้งหมดที่ไคลเอ็นต์ส่งและผลลัพธ์จะขึ้นต้นด้วย HTTP_
ทั้งหมด_RAW
ส่วนหัว HTTP ทั้งหมดที่ไคลเอ็นต์ส่งมีผลลัพธ์เหมือนกับเมื่อไคลเอ็นต์ส่ง โดยไม่มีคำนำหน้า HTTP_
APPL_MD_PATH
เส้นทาง metabase ของแอปพลิเคชัน
APPL_PHYSICAL_PATH
เส้นทางทางกายภาพที่สอดคล้องกับเส้นทาง metabase ของแอปพลิเคชัน
AUTH_PASSWORD
รหัสผ่านที่ลูกค้าป้อนในกล่องโต้ตอบรหัสผ่านเมื่อใช้โหมดการรับรองความถูกต้องพื้นฐาน
AUTH_TYPE
นี่คือวิธีการรับรองความถูกต้องที่เซิร์ฟเวอร์ใช้เพื่อตรวจสอบผู้ใช้เมื่อเข้าถึงสคริปต์ที่ได้รับการป้องกัน
AUTH_USER
ชื่อผู้ใช้สำหรับการตรวจสอบ
CERT_คุกกี้
หมายเลขรหัสใบรับรองไคลเอ็นต์ที่ไม่ซ้ำ
CERT_FLAG
การตั้งค่าสถานะใบรับรองไคลเอ็นต์ หากมีใบรับรองไคลเอ็นต์ บิต0 คือ 0 หากการตรวจสอบใบรับรองไคลเอ็นต์ไม่ถูกต้อง บิต 1 จะถูกตั้งค่าเป็น 1
CERT_ISSUER
ช่องผู้ออกในใบรับรองของผู้ใช้
CERT_KEYSIZE
จำนวนบิตของคีย์เวิร์ดการเชื่อมต่อ Secure Socket Layer เช่น 128
CERT_SECRETKEYSIZE
จำนวนหลักในคีย์ส่วนตัวที่เซิร์ฟเวอร์ตรวจสอบ เช่น 1,024.
CERT_SERIALNUMBER
ฟิลด์หมายเลขซีเรียลของใบรับรองไคลเอ็นต์
CERT_SERVER_ISSUER
ฟิลด์ผู้ออกใบรับรองเซิร์ฟเวอร์
CERT_SERVER_SUBJECT
ฟิลด์หัวเรื่องของใบรับรองเซิร์ฟเวอร์
CERT_SUBJECT
ฟิลด์หัวเรื่องของใบรับรองไคลเอ็นต์
CONTENT_LENGTH
ความยาวของเนื้อหาที่ลูกค้าส่ง
CONTENT_TYPE
เนื้อหาแบบฟอร์มที่ลูกค้าส่งหรือประเภทข้อมูล HTTP PUT
GATEWAY_INTERFACE
อินเทอร์เฟซเกตเวย์ที่ใช้โดยเซิร์ฟเวอร์
HTTPS
ส่งคืน ON หากคำขอผ่านช่องทางที่ปลอดภัย (SSL) หากคำขอมาจากช่องทางที่ไม่ปลอดภัย ให้ส่งคืน OFF
HTTPS_KEYSIZE
จำนวนบิตของคีย์เวิร์ดการเชื่อมต่อ Secure Socket Layer เช่น 128
HTTPS_SECRETKEYSIZE
จำนวนหลักในคีย์ส่วนตัวที่เซิร์ฟเวอร์ตรวจสอบ เช่น 1,024.
HTTPS_SERVER_ISSUER
ช่องผู้ออกใบรับรองเซิร์ฟเวอร์
HTTPS_SERVER_SUBJECT
ฟิลด์หัวเรื่องของใบรับรองเซิร์ฟเวอร์
INSTANCE_ID
หมายเลข ID ของอินสแตนซ์ IIS
INSTANCE_META_PATH
เส้นทาง metabase ของอินสแตนซ์ IIS ที่ตอบสนองต่อคำขอ
LOCAL_ADDR
ส่งคืนที่อยู่ของเซิร์ฟเวอร์ที่ยอมรับคำขอ
LOGON_USER
ผู้ใช้เข้าสู่ระบบ Windows NT ด้วยบัญชี
PATH_INFO
ข้อมูลเส้นทางที่ลูกค้าให้ไว้
PATH_แปลแล้ว
เส้นทางที่ได้จากการทำแผนที่จากเสมือนไปสู่กายภาพ
QUERY_STRING
เนื้อหาสตริงแบบสอบถาม
รีโมท_ADDR
ที่อยู่ IP ของโฮสต์ระยะไกลที่ทำการร้องขอ
REMOTE_HOST
ชื่อของโฮสต์ระยะไกลที่ใช้ส่งคำขอ
คำขอ_วิธีการ
วิธีการยื่นคำร้อง เช่น GET, HEAD, POST เป็นต้น
SCRIPT_NAME
ชื่อของสคริปต์ที่ดำเนินการ
SERVER_NAME
ชื่อโฮสต์ ที่อยู่ DNS หรือที่อยู่ IP ของเซิร์ฟเวอร์
เซิร์ฟเวอร์_พอร์ต
หมายเลขพอร์ตเซิร์ฟเวอร์ที่ยอมรับคำขอ
SERVER_PORT_SECURE
หากพอร์ตเซิร์ฟเวอร์ที่ยอมรับคำขอเป็นพอร์ตที่ปลอดภัย ค่าจะเป็น 1 มิฉะนั้นจะเป็น 0
SERVER_โปรโตคอล
ชื่อและเวอร์ชันของโปรโตคอลที่ใช้โดยเซิร์ฟเวอร์
เซิร์ฟเวอร์_ซอฟต์แวร์
ชื่อและเวอร์ชันของซอฟต์แวร์เซิร์ฟเวอร์ที่ตอบคำขอและเรียกใช้เกตเวย์
URL
ระบุส่วนพื้นฐานของ URL
วิธีการ
Request.BinaryRead(Count)
รับเนื้อหาที่ยังไม่ได้ประมวลผลของแบบฟอร์ม HTML เมื่อเรียกใช้เมธอดนี้ Count จะระบุจำนวนไบต์ที่จะรับ หลังจากเรียกใช้เมธอดนี้ Count จะระบุจำนวนไบต์ที่ได้รับจริง
Property
Request.TotalBytes
ความยาวของเนื้อหาแบบสอบถาม หน่วยเป็นไบต์
วัตถุตอบสนอง
วัตถุการตอบสนองใช้ในการส่งข้อมูลไปยังเบราว์เซอร์ไคลเอนต์ ผู้ใช้สามารถใช้วัตถุนี้เพื่อส่งข้อมูลเซิร์ฟเวอร์ไปยังเบราว์เซอร์ไคลเอนต์ในรูปแบบ HTML มันและคำขอคู่ของวัตถุสำหรับรับและส่งข้อมูล พื้นฐานสำหรับการบรรลุพลวัต คุณสมบัติและวิธีการที่ใช้กันทั่วไปมีดังต่อไปนี้
1. คุณลักษณะบัฟเฟอร์ คุณลักษณะนี้ใช้เพื่อระบุว่าควรใช้บัฟเฟอร์เมื่อส่งออกเพจหรือไม่ ค่าเริ่มต้นคือเท็จ เมื่อเป็น True ผลลัพธ์จะไม่ถูกส่งออกไปยังเบราว์เซอร์จนกว่า Active Server Page ทั้งหมดจะถูกดำเนินการ ชอบ:
<%Response.Buffer=True%>
<html>
<ศีรษะ>
<title>ตัวอย่างบัฟเฟอร์</title>
</หัว>
<ร่างกาย>
-
สำหรับ i=1 ถึง 500
response.write(i & "<br>")
ต่อไป
-
</ร่างกาย>
</html>
เมื่อดำเนินการหน้านี้ เนื้อหาทั้งหมดของหน้าแรกทั้งหมดจะแสดงบนเบราว์เซอร์พร้อมกัน และหน้าแรกจะถูกจัดเก็บไว้ในแคชจนกว่าการดำเนินการสคริปต์จะเสร็จสิ้น
2. คุณลักษณะหมดอายุ คุณลักษณะนี้ใช้เพื่อกำหนดระยะเวลา (เป็นนาที) ที่เบราว์เซอร์แคชเพจ และต้องรีเฟรชทางฝั่งเซิร์ฟเวอร์ ด้วยการตั้งค่าต่อไปนี้:
<%การตอบสนองหมดอายุ=0%>
โดยการเพิ่มบรรทัดของรหัสนี้ลงในไฟล์ ASP แต่ละคำขอจะต้องรีเฟรชหน้าเนื่องจากหน้าจะหมดอายุทันทีที่ได้รับการตอบกลับ
3. วิธีการเขียน วิธีการนี้จะส่งข้อมูลไปยังเบราว์เซอร์ไคลเอนต์ เช่น:
<%Response.write "สวัสดีชาวโลก!"%>
4. วิธีการเปลี่ยนเส้นทางวิธีนี้อนุญาตให้เบราว์เซอร์ย้ายไปยัง URL อื่น ชอบ:
<html>
<หัว>
<title>ตัวอย่างการเปลี่ยนเส้นทาง</title>
</หัว>
<ร่างกาย>
<แบบฟอร์ม aciton="formjump.asp" method="โพสต์">
<select name="ไปที่ไหน">
<option select value="fun">สนุก</option>
<option value="news">ข่าว</option>
<option value="sample">ตัวอย่าง</option>
</เลือก>
<input type=submit name="jump" value="Jump">
</แบบฟอร์ม>
</ร่างกาย>
</html>
ด้านบนคือแบบฟอร์มที่ส่ง และต่อไปนี้คือไฟล์ formjump.asp ที่ประมวลผลแบบฟอร์ม:
<%response.buff=true%>
<html>
<หัว>
<title>ตัวอย่างการเปลี่ยนเส้นทาง</title>
</หัว>
<ร่างกาย>
-
thisurl=" http://www.tinyu.com/ ";
โดยที่=Request.form("ไปที่ไหน")
เลือกกรณีที่
กรณี "สนุก"
response.redirect thisurl & "/fun/default.asp"
กรณี "ข่าว"
response.redirect thisurl & "/news/default.asp"
กรณี "ตัวอย่าง"
response.redirect thisurl & "/sample/default.asp"
สิ้นสุดการเลือก
-
</ร่างกาย>
<html>
ในตัวอย่างนี้ เมื่อผู้ใช้ทำการเลือก เขากดปุ่ม "กระโดด" เพื่อส่งแบบฟอร์ม หลังจากได้รับแอปพลิเคชัน เซิร์ฟเวอร์จะเรียก formjump.asp เพื่อกำหนดและค้นหา URL ที่เกี่ยวข้อง อย่างไรก็ตามสิ่งหนึ่งที่ควรทราบที่นี่คือส่วนหัว HTTP ถูกเขียนลงในเบราว์เซอร์ของลูกค้า
ที่จุดเริ่มต้นของไฟล์หลังจาก <@ Language=..> เขียน:
Response.Buffer=จริง
ตัดสินใจในตอนท้าย:
การตอบสนองฟลัช
Flush นี่คือวิธีการตอบสนอง ซึ่งสามารถใช้ได้เมื่อคุณสมบัติ Buffer ถูกตั้งค่าเป็น True เท่านั้น ไม่เช่นนั้นจะเกิดข้อผิดพลาดในโหมดการทำงาน วิธีการล้างอีกวิธีหนึ่งยังใช้เพื่อล้างเพจที่แคชไว้ นอกจากนี้ยังสามารถใช้เมื่อคุณสมบัติบัฟเฟอร์ถูกตั้งค่าเป็น True
5. วิธีการสิ้นสุด วิธีการนี้ใช้เพื่อบอก Active Server ให้หยุดการประมวลผลไฟล์ ASP เมื่อพบวิธีนี้ ถ้าคุณสมบัติบัฟเฟอร์ของวัตถุการตอบสนองถูกตั้งค่าเป็น True วิธีการสิ้นสุดจะส่งเนื้อหาของแคชไปยังไคลเอนต์และล้างบัฟเฟอร์ ดังนั้น เมื่อต้องการยกเลิกผลลัพธ์ทั้งหมดไปยังไคลเอนต์ คุณสามารถล้างบัฟเฟอร์ก่อน แล้วจึงใช้วิธีการสิ้นสุด ชอบ:
-
Response.buffer=true
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
ผิดพลาดชัดเจน
ถ้า Err.number<>0 แล้ว
การตอบสนองชัดเจน
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
-
วัตถุเซิร์ฟเวอร์:
วัตถุเซิร์ฟเวอร์ให้การเข้าถึงวิธีการและคุณสมบัติบนเซิร์ฟเวอร์ วิธีการและคุณสมบัติเหล่านี้ส่วนใหญ่ทำหน้าที่เป็นฟังก์ชันอรรถประโยชน์
ไวยากรณ์
Server.property|
คุณสมบัติ
เมธอดScriptTimeout:
คุณสมบัติ ScriptTimeout ระบุระยะเวลาสูงสุดที่สคริปต์สามารถทำงานได้ก่อนที่จะสิ้นสุด เมื่อทำงานกับส่วนประกอบเซิร์ฟเวอร์ ขีดจำกัดการหมดเวลาจะไม่มีผลอีกต่อไป
ไวยากรณ์ Server.ScriptTimeout =
พารามิเตอร์ NumSeconds NumSeconds
ระบุจำนวนวินาทีสูงสุดที่สคริปต์สามารถทำงานได้ก่อนที่เซิร์ฟเวอร์จะยุติการทำงาน ค่าเริ่มต้นคือ 90 วินาที
หมายเหตุ คุณสามารถตั้งค่า ScriptTimeout เริ่มต้นสำหรับบริการเว็บหรือเว็บเซิร์ฟเวอร์ได้โดยใช้คุณสมบัติ AspScriptTimeout ใน metabase คุณสมบัติ ScriptTimeout ไม่สามารถตั้งค่าน้อยกว่าค่าที่ระบุใน metabase ตัวอย่างเช่น ถ้า NumSeconds ถูกตั้งค่าเป็น 10 และการตั้งค่า metabase มีค่าเริ่มต้นที่ 90 วินาที สคริปต์จะหมดเวลาหลังจาก 90 วินาที แต่ถ้าตั้งค่า NumSeconds เป็น 100 สคริปต์จะหมดเวลาหลังจาก 100 วินาที
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ metabase ดูเกี่ยวกับ Metabase
ตัวอย่างตัวอย่างต่อไปนี้หากเซิร์ฟเวอร์ใช้เวลามากกว่า 100 วินาทีในการประมวลผลสคริปต์
<% Server.ScriptTimeout = 100 %>
ตัวอย่างต่อไปนี้ได้รับค่าปัจจุบันของคุณสมบัติ ScriptTimeOut และเก็บไว้ในการหมดเวลาตัวแปร
< % timeout = server.scriptTimeout %>
เมธอด
createObject
เมธอด CreateObject สร้างอินสแตนซ์ของส่วนประกอบเซิร์ฟเวอร์ ถ้าคอมโพเนนต์ดำเนินการเมธอด OnStartPage และ OnEndPage เมธอด OnStartPage จะถูกเรียกในขณะนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนประกอบเซิร์ฟเวอร์ โปรดดูที่ ส่วนประกอบ ASP ที่ติดตั้งได้
ไวยากรณ์ Server.CreateObject( progID )
พารามิเตอร์ progID ระบุประเภทของอ็อบเจ็กต์ที่จะสร้าง รูปแบบของ progid คือ [ผู้ขาย] ส่วนประกอบ [.Version]
หมายเหตุ โดยค่าเริ่มต้น วัตถุที่สร้างขึ้นโดยวิธีการServer.CreateObjectมีขอบเขตของหน้า ซึ่งหมายความว่าเซิร์ฟเวอร์จะทำลายวัตถุเหล่านี้โดยอัตโนมัติหลังจากประมวลผลเพจ ASP ปัจจุบัน หากต้องการสร้างเซสชันหรือออบเจ็กต์ที่กำหนดขอบเขตแอปพลิเคชัน คุณสามารถใช้แท็ก <OBJECT> และตั้งค่าแอตทริบิวต์ SCOPE ของ SESSION หรือ APPLICATION หรือคุณสามารถจัดเก็บออบเจ็กต์ในตัวแปรเซสชันและแอปพลิเคชันได้
ตัวอย่างเช่นในสคริปต์ที่แสดงด้านล่างเมื่อวัตถุเซสชันถูกทำลายนั่นคือเมื่อการสนทนาหมดเวลาหรือวิธีการละทิ้งจะถูกเรียกวัตถุที่เก็บไว้ในตัวแปรเซสชันจะถูกทำลายเช่นกัน
<% ตั้งค่าเซสชัน("โฆษณา") = Server.CreateObject("MSWC.AdRotator")%>
คุณสามารถทำลายออบเจ็กต์ได้โดยตั้งค่าตัวแปรเป็น Nothing หรือค่าใหม่ ดังที่แสดงด้านล่าง ตัวอย่างแรกปล่อยออบเจ็กต์โฆษณา และตัวอย่างที่สองแทนที่โฆษณาด้วยสตริง
<% เซสชัน ("โฆษณา") = ไม่มี %>
<% เซสชัน ("โฆษณา") = " มูลค่าอื่นๆ " %>
ไม่สามารถสร้างอินสแตนซ์ออบเจ็กต์ที่มีชื่อเดียวกันกับออบเจ็กต์ในตัวได้ ตัวอย่างเช่นสคริปต์ต่อไปนี้จะส่งคืนข้อผิดพลาด
<% ตั้งค่าการตอบสนอง = Server.CreateObject("Response") %>
ตัวอย่าง <% ตั้งค่า MyAd = Server.CreateObject("MSWC.AdRotator") %>
ตัวอย่างข้างต้นสร้างส่วนประกอบเซิร์ฟเวอร์ MSWC.AdRotator ชื่อ MyAd ส่วนประกอบ MSWC.AdRotator สามารถใช้เพื่อหมุนเวียนโฆษณาบนเว็บเพจโดยอัตโนมัติ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนประกอบของเซิร์ฟเวอร์ ดูการสร้างส่วนประกอบสำหรับ ASP
HTMLEncode วิธีการ HTMLEncode ใช้การเข้ารหัส HTML กับสตริงที่ระบุ
ไวยากรณ์ Server.HTMLEncode(string)
สตริงพารามิเตอร์ระบุสตริงที่จะเข้ารหัส
สคริปต์ตัวอย่าง <%= Server.HTMLEncode("แท็กย่อหน้า: <P>") %>
เอาต์พุตแท็กย่อหน้า: <P>
โปรดทราบว่าเว็บเบราว์เซอร์จะแสดงเอาต์พุตด้านบนเป็นแท็กย่อหน้า: <P>ถ้า คุณดูไฟล์ต้นฉบับหรือเปิดเว็บเพจในโหมดข้อความและคุณสามารถดู HTML ที่เข้ารหัสได้
MapPath
เมธอด MapPath แมปเส้นทางสัมพันธ์หรือเสมือนที่ระบุไปยังไดเร็กทอรีทางกายภาพที่สอดคล้องกันบนเซิร์ฟเวอร์
ไวยากรณ์
พารามิเตอร์
Server.mappath (Path)
เส้นทาง
ระบุเส้นทางที่สัมพันธ์หรือเสมือนไปยังไดเรกทอรีทางกายภาพที่จะแมป หากเส้นทางเริ่มต้นด้วย Slash ไปข้างหน้า (/) หรือ backslash () วิธีการ MAPPATH ถือว่าเส้นทางเป็นเส้นทางเสมือนจริงที่สมบูรณ์เมื่อกลับเส้นทาง หาก Path ไม่ได้ขึ้นต้นด้วยเครื่องหมายทับ เมธอด MapPath จะส่งกลับเส้นทางที่สัมพันธ์กับเส้นทางที่มีอยู่ในไฟล์ .asp
ความคิดเห็น
เมธอด MapPath ไม่รองรับไวยากรณ์เส้นทางสัมพันธ์ (.) หรือ (..) ตัวอย่างเช่น เส้นทางสัมพันธ์ต่อไปนี้ ../MyDir/MyFile.txt ส่งกลับข้อผิดพลาด
เมธอด MapPath ไม่ได้ตรวจสอบว่าเส้นทางที่ส่งคืนนั้นถูกต้องหรือมีอยู่บนเซิร์ฟเวอร์
เนื่องจากวิธี Mappath เพียงแผนที่เส้นทางโดยไม่คำนึงว่าไดเรกทอรีที่ระบุมีอยู่คุณสามารถใช้วิธี Mappath เพื่อแมปเส้นทางไปยังโครงสร้างไดเรกทอรีทางกายภาพแล้วส่งไปยังส่วนประกอบที่สร้างไดเรกทอรีหรือไฟล์ที่ระบุบนเซิร์ฟเวอร์
ตัวอย่าง สำหรับตัวอย่างต่อไปนี้ ไฟล์ data.txt และไฟล์ test.asp ที่มีสคริปต์ต่อไปนี้จะอยู่ในไดเร็กทอรี C:InetpubWwwrootScript ไดเรกทอรี C:InetpubWwwroot ถูกตั้งค่าเป็นไดเรกทอรีหลักของเซิร์ฟเวอร์
ตัวอย่างต่อไปนี้ใช้ตัวแปรเซิร์ฟเวอร์ PATH_INFO เพื่อแมปเส้นทางทางกายภาพไปยังไฟล์ปัจจุบัน สคริปต์
<%= server.mappath (Request.ServerVariables ("PATH_INFO"))% <BR>
เอาท์พุต
c:inetpubwwwrootscripttest.asp<BR>
เนื่องจากพารามิเตอร์พาธในตัวอย่างต่อไปนี้ไม่ได้ขึ้นต้นด้วยอักขระสแลช จึงถูกแมปกับไดเร็กทอรีปัจจุบันอย่างสัมพันธ์กัน ในกรณีนี้คือ C:InetpubWwwroot สคริปต์ สคริปต์
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
เอาท์พุต
c:inetpubwwwrootscriptdata.txt<BR>
c:inetpubwwwrootscriptscriptdata.txt<BR>
สองตัวอย่างถัดไปใช้อักขระเครื่องหมายทับเพื่อระบุว่าเส้นทางที่ส่งคืนควรถือเป็นเส้นทางเสมือนแบบเต็มบนเซิร์ฟเวอร์ สคริปต์
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath (" script")%> <br>
เอาต์พุต
C: inetPub script data.txt <br>
C: inetPub script <br>
ตัวอย่างต่อไปนี้แสดงวิธีใช้ Forward Slash (/) หรือ backslash () เพื่อส่งคืนเส้นทางกายภาพของไดเรกทอรีโฮสต์ สคริปต์
<%= server.mappath ("/")%> <br>
<%= server.mappath ("")%> <br>
เอาท์พุท
c:inetpubwwwroot<BR>
c:inetpubwwwroot<BR>
urlencode
วิธีการ URLEncode ใช้กฎการเข้ารหัส URL รวมถึงอักขระ Escape กับสตริงที่ระบุ
ไวยากรณ์
เซิร์ฟเวอร์ URLEncode (สตริง)
พารามิเตอร์
String ระบุสตริงที่จะเข้ารหัส
ตัวอย่างสคริปต์ <%Response.Write(Server.URLEncode(" http://www.tinyu.com ";)) %>
เอาต์พุต http%3A%2F%2Fwww%2Etinyu%2Ecom
เซสชันอ็อบเจ็กต์
เซสชันหมายถึงช่วงเวลาที่ผู้เยี่ยมชมมาถึงหน้าแรกเฉพาะจนถึงเวลาที่เขาออกไป ผู้เยี่ยมชมแต่ละคนจะได้รับเซสชันแยกต่างหาก ในเว็บแอปพลิเคชัน เมื่อผู้ใช้เข้าถึงแอปพลิเคชัน ผู้ใช้สามารถใช้ตัวแปรประเภทเซสชันเพื่อแชร์ข้อมูลในทุกหน้าของแอปพลิเคชันเว็บ หากผู้ใช้รายอื่นเข้าถึงแอปพลิเคชันเว็บในเวลาเดียวกัน เขาก็จะมีข้อมูลของตนเองเช่นกัน เซสชัน
1. คุณลักษณะ SessionID คุณลักษณะนี้จะส่งคืนตัวระบุเฉพาะของเซสชันปัจจุบัน และกำหนดหมายเลขที่แตกต่างกันให้กับแต่ละเซสชัน
ฉันเคยพบปัญหาการควบคุมผู้ใช้ในระหว่างกระบวนการพัฒนา ฟังก์ชั่นที่ต้องการบรรลุคือสำหรับโมดูลของเว็บไซต์บางแห่ง เมื่อสมาชิกดูโมดูลนี้หลังจากเข้าสู่ระบบ และบุคคลอื่นเข้าสู่ระบบด้วยชื่อสมาชิกเดียวกัน เขาจะไม่สามารถเรียกดูโมดูลนี้ได้ กล่าวอีกนัยหนึ่ง มีเพียงคนเดียวที่มีชื่อสมาชิกเดียวเท่านั้นที่สามารถเรียกดูโมดูลนี้ในเวลาเดียวกันได้ ฉันใช้การควบคุมโดยใช้ชื่อสมาชิก (ถือว่าเป็น UserID ไม่ซ้ำกัน) และ SessionID เมื่อสมาชิกเข้าสู่ระบบ ให้กำหนดเวลาเซสชันแก่สมาชิกเพื่อบันทึกสถานะการเข้าสู่ระบบ เช่น: Session("Status")="Logged" และเขียน Session.SessionID ของสมาชิกลงในฐานข้อมูล เมื่อเขาต้องการเรียกดูโมดูลนี้ ก่อนอื่นเขาจะพิจารณาว่าเขาเข้าสู่ระบบแล้วหรือไม่ หากเขาเข้าสู่ระบบแล้ว เขาจะพิจารณาว่า Session ID ของเขาเหมือนกับที่บันทึกไว้ในฐานข้อมูลหรือไม่ หากเขาแตกต่างออกไป เขาไม่สามารถเข้าถึงได้ ด้วยวิธีนี้ เมื่อผู้ใช้รายอื่นเข้าสู่ระบบด้วยชื่อสมาชิกเดียวกัน SessionID ใหม่จะถูกบันทึกไว้ในฐานข้อมูล และผู้ใช้รายแรกจะไม่สามารถผ่านการตรวจสอบได้เมื่อเข้าถึงโมดูลนี้ ซึ่งจะทำให้บุคคลเพียงคนเดียวที่มีชื่อสมาชิกเพียงคนเดียวสามารถเรียกดูโมดูลบางโมดูลได้ในเวลาเดียวกัน ฟังก์ชั่นนี้มีผลพิเศษในเว็บไซต์ที่ชำระเงินบางส่วน
2. คุณลักษณะ TimeOut คุณลักษณะนี้ใช้เพื่อกำหนดเวลาของวัตถุเซสชันผู้ใช้ หากผู้ใช้ไม่รีเฟรชหน้าเว็บภายในเวลาที่กำหนดวัตถุเซสชันจะถูกยกเลิก ค่าเริ่มต้นทั่วไปคือ 20 นาที
3. วิธีการละทิ้ง วิธีนี้เป็นวิธีการเดียวของวัตถุเซสชัน มันสามารถล้างวัตถุเซสชันและใช้เพื่อกำจัดวัตถุเซสชันของผู้ใช้และปล่อยทรัพยากรที่ครอบครอง ตัวอย่างเช่น: <% เซสชัน ละทิ้ง %>
4. เหตุการณ์ Session_OnStart และ Session_OnEnd เหมือนกับ Application เหตุการณ์ Session_OnStart จะถูกทริกเกอร์ทุกครั้งที่เริ่มรูทีนของออบเจ็กต์ จากนั้นจึงประมวลผลเหตุการณ์ Session_Onstart นั่นคือเมื่อเซิร์ฟเวอร์ได้รับการร้องขอ HTTP สำหรับ URL ในแอปพลิเคชัน เหตุการณ์นี้จะถูกทริกเกอร์และสร้างอ็อบเจ็กต์เซสชัน ในทำนองเดียวกัน เหตุการณ์นี้จะต้องถูกตั้งค่าในไฟล์ Global.asa ด้วย
เมื่อมีการเรียกเมธอด session.abandon หรือไม่มีการรีเฟรชภายในเวลาหมดเวลาสิ่งนี้จะทริกเกอร์เหตุการณ์ session_onend จากนั้นเรียกใช้สคริปต์ภายใน ตัวแปรเซสชันเกี่ยวข้องกับผู้ใช้เฉพาะ
เซสชันใช้คอลัมน์:
เช่นเดียวกับแอปพลิเคชันอาร์เรย์ที่กำหนดเป็นประเภทเซสชันสามารถปฏิบัติต่ออาร์เรย์ทั้งหมดเป็นวัตถุและผู้ใช้ไม่สามารถเปลี่ยนค่าขององค์ประกอบในอาร์เรย์เซสชันได้โดยตรง ในการสร้างอาร์เรย์เซสชัน คุณต้องกำหนดอาร์เรย์ธรรมดาก่อน กำหนดค่าเริ่มต้นให้กับแต่ละองค์ประกอบของอาร์เรย์ และสุดท้ายกำหนดเป็นอาร์เรย์เซสชัน ชอบ:
-
ดิมาร์เรย์()
array=array("李", "明", "男")
เซสชั่น("ข้อมูล")=อาร์เรย์
เซสชันการตอบกลับ ("ข้อมูล")(0) &"-"
Response.write เซสชัน ("ข้อมูล") (1) & "-"
SESSION.WRITE SESSION ("ข้อมูล") (2) & "<br>"
-
<ชม.>
-
อาร์เรย์ (0) = "วัน"
อาร์เรย์ (1) = "คุณ"
อาร์เรย์ (2) = "ชาย"
เซสชั่น("ข้อมูล")=อาร์เรย์
session.write เซสชัน ("info") (0) & "-"
session.write เซสชัน ("info") (1) & "-"
SESSION.WRITE SESSION ("ข้อมูล") (2) & "<br>"
-