390 likes | 472 Views
การใช้งานออบเจ็กต์ของ ASP ( Request and Response object). โดย ศุภกฤษฏิ์ นิวัฒนากูล. วัตถุประสงค์. เมื่อจบบทเรียนนี้แล้ว นักศึกษาสามารถ อธิบายองค์ประกอบและคุณลักษณะต่าง ๆ ของออบเจ็กต์ที่ใช้ในการพัฒนาโปรแกรมบนเว็บด้วย ASP ได้อย่างถูกต้อง
E N D
การใช้งานออบเจ็กต์ของ ASP(Request and Response object) โดย ศุภกฤษฏิ์ นิวัฒนากูล
วัตถุประสงค์ เมื่อจบบทเรียนนี้แล้ว นักศึกษาสามารถ • อธิบายองค์ประกอบและคุณลักษณะต่าง ๆ ของออบเจ็กต์ที่ใช้ในการพัฒนาโปรแกรมบนเว็บด้วย ASP ได้อย่างถูกต้อง • ใช้ออบเจ็กต์ในการรับส่งข้อมูล (Request and Response object) ได้อย่างถูกต้องและเหมาะสม
เนื้อหา • พื้นฐานเกี่ยวกับออบเจ็กต์ของ ASP • ออบเจ็กต์ของ ASP • Request and Response object
พื้นฐานเกี่ยวกับออบเจ็กต์ของ ASP • COM (Component Object Model) • Object • Class และ Object
COM (Component Object Model) • วิวัฒนาการ • DDE (Dynamic Data Exchange) • OLE (Object Linking and Embedding) • Automation และ OLE Automation เช่น • ASP สนับสนุนเทคโนโลยี Automation • ADO สนับสนุน OLE Automation • ActiveX Control, ActiveX DLL, Active EXE, และ ActiveX Document • เปลี่ยนชื่อเป็น Microsoft ActiveX Technology • COM (Component Object Model)
COM และ COM Component • COM คือ ข้อกำหนดมาตรฐานทางเทคโนโลยีของไมโครซอฟต์ ที่มีหลักให้มีการทำงานร่วมกันได้ของซอฟต์แวร์ แอพพลิเคชัน หรือคอมโพเนนท์ (Component) • COM Component คือซอฟต์แวร์ แอพพลิเคชัน หรือคอมโพเนนท์ (Component) ใด ๆ ที่ถูกสร้างขึ้นตามมาตรฐานของ COM โดยทั่วไปได้แก่ไฟล์ที่มีนามสกุล .EXE, .OCX, .DLL เป็นต้น การใช้งาน COM Component ลงทะเบียนการใช้งาน --> Regsvr32 <ชื่อไฟล์ .DLL พร้อม Path> ยกเลิกการลงทะเบียน --> Regsvr32 <ชื่อไฟล์ .DLL พร้อม Path> /u
Object • Object คือ วัตถุหรือสิ่งของ • ประกอบด้วย • Property • Method • Collection
Property • เป็นคุณสมบัติหรือคุณลักษณะของ object • การเขียนคำสั่งมี 2 รูปแบบ • การกำหนดค่า --> ชื่อ object.ชื่อ property = ค่าที่จะกำหนด • การอ่านค่า --> ตัวรับค่า = ชื่อ object.ชื่อ property • ประเภทของ Property • Read-Write อ่านและกำหนดค่าได้ • Read-Only อ่านค่าได้อย่างเดียว • Write-Only กำหนดค่าได้อย่างเดียว
Method • คือ ความสามารถของ Object • การเขียนคำสั่งเพื่อใช้งานมี 2 แบบ • การใช้งานโดยไม่ได้รับค่ากลับ • ชื่อ Object.ชื่อ Method[([Parameter 1], [Parameter 2], ...)] • การใช้งานโดยรับค่ากลับ • ตัวรับค่า = ชื่อ Object.ชื่อ Method[([Parameter 1], [Parameter 2], ...)]
Collection • คล้ายกับตัวแปรประเภทอาร์เรย์ แต่สิ่งที่เก็บอยู่จะเป็น Object • การใช้งานเพื่อการจัดการและเข้าถึง Object ที่อยู่ใน Collection • รูปแบบการใช้งาน เช่น • การนับจำนวน Object ทั้งหมดใน Collection • ตัวรับค่า = ชื่อ Collection.ชื่อ Property จำนวน Object ทั้งหมด (เช่น Count) • เช่น Dim BookCount BookCount = Books.Count
รูปแบบการใช้งาน Collection (ต่อ) • การเข้าถึง Object ใน Collection เพื่อใช้งาน Object • ตัวรับค่า Object= ชื่อ Collection(หมายเลข index) • เช่น Dim objBook Set objBook = Books(1) • ตัวรับค่า Object= ชื่อ Collection(“ชื่อ Object”) • เช่น Dim objBook Set objBook = Books(“Web Programming”) • การวนลูปเพื่อเข้าไปจัดการและเข้าถึง Object ใน Collection โดยใช้คำสั่ง For..Next หรือ For..Each..Next
Object Model , Object in Collection และ Event • Object Model เป็นการแสดงความสัมพันธ์ระหว่าง Object ต่าง ๆ • Object in Collection เป็นหลักการในการอ้างถึง Object ที่จะต้องอ้างไปตามลำดับชั้นของ Object • Event หรือ เหตุการณ์ที่จะเกิดขึ้นของ Object ในการเขียนโปรแกรมจะมี Sub Procedure ที่เรียกว่า Event Handle หรือที่เรียกว่า Event Procedure เพื่อคอยตรวจจับ Event เช่น Session_OnStart, Application_OnStart, Session_Button1_OnClick หรือ Window_OnLoad เป็นต้น
คลาส (Class) และการใช้งาน Object • คลาส (Class) เปรียบเสมือนกับต้นแบบของ Object • การใช้งาน Object ต้องมีการสร้างตัวแปรขึ้นมาแทน Object โดยการใช้คำสั่ง Set เช่น Set ชื่อตัวแปร = Server.CreateObject(”[ชื่อ Component.] ชื่อคลาส”) Set con = Server.CreateObject(“ADODB.Connection”)
ASP Objects • Request Object --> ส่งข้อมูลจากบราวเซอร์ไปยังเว็บเซิร์ฟเวอร์ • Response Object --> ส่งข้อมูลจากเว็บเซิร์ฟเวอร์ไปยังบราวเซอร์ • Application Object --> ช่วยให้เว็บแอพพลิเคชันทำงานคล้ายกับแอพพลิเคชันจริง ๆ • Session Object --> ติดตามข้อมูลของผู้มาใช้งานเว็บแอพพลิเคชัน • Server Object --> เป็นตัวแทนของเว็บเซิร์ฟเวอร์และช่วยงานทั่ว ๆ ไป หน้าที่สำคัญอย่างหนึ่งคือ การสร้าง Object
ASPError Object --> เก็บข้อมูลที่ผิดพลาดที่เกิดขึ้นในการเขียน ASP Script Code • ObjectContext Object --> ทำงานร่วมกับ Component Service ของ Windows 2000 เพื่อจัดการกับ Transaction และทำให้สามารถใช้งาน ASP Object ได้โดยไม่ต้องสร้างก่อน
Request and Response Object • QueryString และ QueryString Collection • Form และ Form Collection • ServerVariables Collection • Response Object • Cookies
QueryString และ QueryString Collection • วัตถุประสงค์หลักของ QueryString และ QueryString Collection คือ การที่จะช่วยในการส่งข้อมูลจากบราวเซอร์ไปยังเว็บเซิร์ฟเวอร์ และเมื่อถึงเว็บเซิร์ฟเวอร์แล้วจะสามารถนำเอาข้อมูลที่ถูกส่งมาไปใช้งานได้
QueryString • คือข้อมูลที่ส่งไปให้เว็บเซิร์ฟเวอร์จากบราวเซอร์ โดยข้อมูลจะถูกส่งผ่าน URL ของเว็บเซิร์ฟเวอร์โดยมีเครื่องหมาย ? คั่นระหว่าง URL และข้อมูล โดยข้อมูลหลังจากเครื่องหมาย ? จะเป็นส่วนของข้อมูลที่อยู่ในรูปเป็นคู่ และในกรณีมีข้อมูลหลายคู่ข้อมูล แต่ละคู่จะถูกคั่นด้วยเครื่องหมาย & ดังตัวอย่าง • http://www.sut.ac.th/login.asp?Fname=Tong&Lname=Jaidee
QueryString Collection • คือที่เก็บ QueryString ซึ่งจะช่วยในการเขียนคำสั่ง เพื่อนำเอาข้อมูลที่ถูกส่งมาใช้งาน จากตัวอย่าง http://www.sut.ac.th/login.asp?Fname=Tong&Lname=Jaidee หากเขียนคำสั่ง <% =Request.QueryString %> หรือ <% =Request.ServerVariables(“QUERY_STRING”) ผลที่ได้ คือ Fname=Tong&Lname=Jaidee
การสร้าง QueryString มี 3 วิธีหลัก ได้แก่ • การใช้ Hyperlink ซึ่งจะใช้แท็ก <A> <A HREF=“Login.asp?Name=Suphakit& pw=1234”>Login</A> • การใช้เมธอด GET ของ Form <FORM NAME=LogFrm ACTION=Login.asp METHOD=GET> • การพิมพ์ที่ Address บราวเซอร์ http://www.sut.ac.th/login.asp?name=Suphakit&pw=1234
การเข้าถึงข้อมูลใน QueryString • จากตัวอย่างhttp://www.sut.ac.th/login.asp?name=Suphakit&pw=1234 • การเข้าถึงโดยชื่อRequest.QueryString(“name”) จะได้ SuphakitRequest.QueryString(“pw”) จะได้ 1234 • การเข้าถึงโดย indexRequest.QueryString(1) จะได้ SuphakitRequest.QueryString(2) จะได้ 1234
พรอพเพอร์ตี้ Count ของ QueryString • ถ้าต้องการทราบจำนวนของข้อมูลใน QueryString ให้ตรวจสอบจากค่าพรอพเพอร์ตี้ Count ตามรูปแบบต่อไปนี้ Request.QueryString.Count
การเข้าถึงข้อมูลที่มีชื่อซ้ำกันการเข้าถึงข้อมูลที่มีชื่อซ้ำกัน • ในบางครั้งข้อมูลของ QueryString ที่ได้มีหลายค่าแต่มีชื่อเดียวกัน ดังเช่นhttp://www.sut.ac.th/login.asp?sw=Word&sw=Excel&sw=Access • Request.QueryString(“sw”) จะได้ Word, Excel, AccessRequest.Querystring(“sw”).Count จะได้ 3Request.Querystring(“sw”)(1) จะได้ WordRequest.Querystring(“sw”)(2) จะได้ ExcelRequest.Querystring(“sw”)(3) จะได้ Access
Form และ Form Collections • วัตถุประสงค์หลักของ Form และ Form Collections จะเหมือนกับของ QueryString คือ การที่จะช่วยให้สามารถส่งข้อมูลจากบราวเซอร์ไปยังเว็บเซิร์ฟเวอร์ และเมื่อข้อมูลถึงเว็บเซิร์ฟเวอร์จะช่วยให้สามารถนำข้อมูลที่ส่งมาไปใช้งาน • Formคือ HTML Element ที่ใช้ในการสร้างเว็บเพจ โดยมีวัตถุประสงค์หลักคือ ช่วยในการติดต่อกับผู้ใช้
Form Collectionคือที่ใช้เก็บข้อมูลจากคอนโทรลต่าง ๆ เช่น TextBox, CheckBox, Option Buttons, Lists, Hidden Fields, Text Area และ Image ที่ถูกส่งมาจาก Form ของบราวเซอร์ที่ใช้เมธอด POST เมื่อผู้ใช้คลิกที่ปุ่ม Submit ของ Form • การใช้งานจะเหมือนกับ QueryString เพียงแต่เปลี่ยนจาก QueryString มาเป็น Form แทน ดังเช่นRequest.Form(“sw”)
ServerVariables Collection • ข้อมูลที่ถูกส่งไปมาระหว่างบราวเซอร์กับเว็บเซิร์ฟเวอร์ ได้แก่ HTTP Request Messageและ HTTP Response Message • การที่จะต้องการจะทราบว่ามีข้อมูลอะไรบ้างใน HTTP Header ของ HTTP Request/Response Message สามารถเรียกใช้ ServerVariables Collection โดยเป็นคอลเลคชันของ Request ออบเจกต์ • ข้อมูลส่วนใหญ่ที่อยู่ใน ServerVariables มีไว้เพื่อทราบ แต่บางครั้งก็อาจมีความจำเป็นต้องใช้งาน เช่น แสดงค่าบราวเซอร์ที่ใช้Request.ServerVariable(“HTTP_USER_AGENT”)
Response Object • Redirect เมธอด เป็นการส่งคำสั่งให้บราวเซอร์ เพื่อสั่งให้บราวเซอร์เปลี่ยนไปอ่านเว็บเพจอื่นที่ระบุในคำสั่ง เช่นResponse.Redirect “LoginOK.asp”
Buffer • Buffer จะทำหน้าที่เก็บข้อมูล HTML Response Message ในส่วน HTML Header และ HTML Body หรือที่เรียกว่า Page Output ก่อนที่ข้อมูลทั้งสองส่วนจะถูกส่งจากเว็บเซิร์ฟเวอร์ไปยังบราวเซอร์ • สำหรับ ASP Page ทั่ว ๆ ไป ข้อมูลใน Buffer จะประกอบไปด้วย 3 ส่วน ได้แก่ • ข้อมูลในส่วนของ HTML Header • ข้อมูล Static HTML Text • ข้อมูล HTML Text ที่เกิดจากการรัน ASP Script Code ในส่วนต่าง ๆ
Buffer พรอพเพอร์ตี้ • เป็นค่าที่กำหนดการควบคุมข้อมูลที่อยู่ใน Buffer ของเว็บเซิร์ฟเวอร์ว่าจะถูกควบคุมด้วย ASP Script หรือไม่ (True หรือ False) • รูปแบบ<% Response.Buffer = true หรือ false %> • ค่า default ของ Buffer พรอเพอร์ตี้ ของ ASP 3.0 มีค่าเป็น True ส่วน ASP 2.0 จะต้องกำหนดค่าก่อน
Flush เมธอด • เป็นการสั่งให้ส่งข้อมูลทั้งหมดที่อยู่ใน buffer ไปยังบราวเซอร์ได้ทันที<% Response.Flush %>
Clear เมธอด • เป็นการสั่งให้ลบข้อมูลทั้งหมดที่อยู่ใน Buffer<% Response.Clear %>
End เมธอด • เป็นการสั่งให้หยุดทำการประมวลผล ASP Page และทำการส่งข้อมูลทั้งหมดที่มีอยู่ใน Buffer ขณะนั้นไปยัง บราวเซอร์<% Response.End %>
Cookies • คือเท็กซ์ไฟล์ที่เก็บข้อมูลที่เว็บเซิร์ฟเวอร์สร้างและส่งไปให้บราวเซอร์ โดยเท็กซ์ไฟล์นี้จะถูกเก็บอยู่ที่เครื่องคอมพิวเตอร์ของผู้ใช้บราวเซอร์ หลังจากนั้น ๆ ทุก ๆ ครั้งที่บราวเซอร์ทำการส่งคำร้องไปขอเว็บเพจจากเว็บเซิร์ฟเวอร์ที่สร้าง Cookies บราวเซอร์จะทำการส่ง Cookies ของเว็บเซิร์ฟเวอร์นั้น ๆ ไปพร้อมกันด้วย
Cookies Collection • สำหรับ Requestคือ ที่เก็บข้อมูลต่าง ๆ ของ cookies ที่บราวเซอร์ส่งไปให้เว็บเซิร์ฟเวอร์ ในขณะที่บราวเซอร์ส่งคำร้องของเว็บเพจไปที่เว็บเซิร์ฟเวอร์ ซึ่งสามารถเขียนคำสั่งนำข้อมูลมาใช้งานได้ • สำหรับ Responseคือ ข้อมูลที่ส่งจากเว็บเซิร์ฟเวอร์ไปให้บราวเซอร์เพื่อทำการสร้าง Cookies แล้วเก็บเป็นเท็กซ์ไฟล์ไว้ที่เครื่องคอมพิวเตอร์ของผู้ใช้บราวเซอร์ ซึ่งสามารถเขียนคำสั่งในการสร้างข้อมูลนี้ได้
การเข้าถึงข้อมูลใน Cookies • รูปแบบRequest.Cookies(ชื่อของ Cookie)[(ชื่อของ key)|.attribute] • หมายเหตุเว็บเซิร์ฟเวอร์จะสามารถเข้าถึงได้เฉพาะ Cookies ที่มันสร้างเท่านั้น มันจะไม่สามารถเข้าถึง Cookies ที่เว็บเซิร์ฟเวอร์อื่นสร้าง
การสร้าง Cookies • รูปแบบResponse.Cookies(ชื่อของ Cookie)[(ชื่อของ key)|.attribute] = value
Haskeys Attribute • คือค่าที่เป็นตัวกำหนดว่า Cookies นั้น ๆ จะมี Key หรือไม่ (True/False)
Expires Attribute • คือค่าที่ใช้ในการกำหนดอายุของ Cookie ว่าจะให้อยู่ที่เครื่องคอมพิวเตอร์ของบราวเซอร์เป็นระยะเวลานานเท่าไรResponse.Cookies(“LoginSave”).Expires = Date + 30 Response.Cookies(“LoginSave”).Expires = #1/1/2003#
การลบ Cookies • ทำได้โดยการกำหนดค่าของ Expires Attribute ให้เป็นวันที่ก่อน หน้าวันปัจจุบัน ดังเช่น Response.Cookies(“LoginSave”).Expires = Date -1