Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
238,5 KB
Nội dung
Chương 7 CĂN BẢN VỀ ASP I. GIỚI THIỆU VỀ ASP I.1. Trang web động Ngôn ngữ HTML là ngôn ngữ chủ yếu để xây dựng các trang web, ngoài ra ta còn sử dụng các ngôn ngữ kịch bản để tạo nên các trang web tương tác, có thể trao đổi dữ liệu giữa client và server; nhưng những trang web này là tĩnh (static), đã được xây dựng và lưu trữ trên web server. Trong nhu cầu thường ngày, ta cần phải tra cứu một số thông tin theo nhu cầu riêng của mình như điểm thi tuyển sinh, danh bạ điện thoại trực tuyến v.v , để giải quyết vấn đề này cần phải xây dựng các trang web có thông tin chọn lọc theo yêu cầu của client, những trang web này được gọi là các trang web động (active web page), cách khác: các trang web động không tồn taị sẵn mà chỉ được tạo ra theo yêu cầu của client. Hiện nay có nhiều môi trường để tạo ra các trang web động: CGI, ASP, JSP, PHP, ColdFusion, Perl v.v I.2. Giới thiệu về ASP I.2.1. ASP (Active Server Page) ASP do Microsoft xây dựng, là môi trường lập trình ứng dụng phía server, hỗ trợ cho việc xây dựng các ứng dụng web. ASP không phải phải là một công nghệ độc lập, nó cho phép liên kết nhiều ứng dụng web gồm các thành phần HTML, VBScript, SQL, ADO (ActiveX Data Objects) và COM (Component Object Model) ASP được hỗ trợ mặc định khi cài đặt IIS(Internet Information Server), trong môi trường hệ điều hành khác cần thiết phải cài đặt thư viện hỗ trợ ASP như Sun Chili!Soft. Những ưu điểm và nhược điểm của ASP: Ưu điểm : Sử dụng ADO để thao tác trên cơ sở dữ liệu thuận lợi, có nhiều đối tượng dựng sẵn hỗ trợ việc lập trình dễ dàng, nhanh chóng. Đặt biệt, ASP có tính mở, nó cho phép người lập trình dùng một ngôn ngữ lập trình khác để xây dựng các component để xử dụng trong môi trường ASP. Nhược điểm : Tốc độ thực hiện chậm hơn công nghệ Java Servlet của Sun, tính bảo mật thấp vì các mã ASP đều có thể đọc được nếu người dùng có quyền truy cập vào web server I.2.2. Trang ASP Trang ASP là một text file có phần mở rộng là .asp, có cấu trúc như một tệp tư liệu HTML, trong trang ASP còn các thẻ khác để nhúng các mã kịch bản để làm việc với dữ liệu như một ngôn ngữ lập trình thật sự. Khi webserver nhận được yêu 118 cầu từ client về một trang asp, nó sẽ yêu cầu trình xử lý trang asp (ASP engine) để tạo ra một tư liệu HTML gởi về cho client. Ngôn ngữ kịch bản mặc nhiên trong môi trường ASP là VBScript, ngoài ra có thể sử dụng các ngôn ngữ khác như Perl, Python, Jscript nếu webserver có cài đặt bộ xử lý ngôn ngữ này. Một trang ASP thông thường gồm có các thành phần : Khai báo ngôn ngữ kịch bản được sử dụng : <%@ language= ngôn_ngữ%> Các thẻ HTML Các script cho phía client được đặt trong cặp thẻ <Script> và </Script> Mã chương trình được đặt trong cặp thẻ <% và %> Với cấu trúc như vậy, ta có thể xem trang asp là một tư liệu HTML được nhúng phần xử lý viết bằng mã ASP. Ví dụ : <%@ language = VBScript%> <HTML><HEAD><TITLE> Trang ASP </TITLE></HEAD> <BODY> <P> Trang Web đầu tiên </P> <% Response.Write(“Hôm nay ngày :” &Date()) %> </BODY> </HTML> I.2.3. IIS (Internet Information Server) IIS là thành phần hạt nhân của web server, nó có nhiệm vụ nhận yêu cầu của client, xử lý và chuyển các trả lời đến client thông qua giao thức HTTP. Ngoài ra nó cũng cung cấp các giao diện lập trình Internet, dịch vụ như FTP. Mô hình ứng dụng web thể hiện qua công nghệ ASP được minh họa như sau: Client Server Request: Page ASP Response : page HTML Để thử nghiệm các trang ASP, cần thiết phải cài đặt trình chủ IIS. 119 Browser Browser Web Server Web Server ASP IAPI Data Store Data Store Cài đặt trình chủ IIS: Control Panel – Add/Remove Program – Add/Remove Windows Component – Chọn Iternet Information Services Thiết lập thư mục ảo cho ứng dụng : thiết lập một ánh xạ từ thư mục ảo đến một thư mục vật lý trên đĩa cứng. Mở IIS – Default Web Site – New – Virtual Directory Thiết lập DSN trong ODBC (Open DataBase Connectivity): để tạo kết nối cơ sở dữ liệu cho trang ASP thông qua Database System Name với driver phù hợp với Database. II. TỔNG QUAN VỀ VBSCRIPT VBScript là ngôn ngữ kịch bản chính để lập trình ứng dụng web phía server khi sử dụng công nghệ ASP. Các định danh trong VBScript không phân biệt chữ hoa hay chữ thường. II.1. Chú thích Sử dụng dấu nháy đơn để bắt đầu một dòng ghi chú. Ví dụ : <% ‘In ra chuổi Hello World ! Response.Write(“Hello World !”) %> II.2. Khai báo hằng, biến, mảng • Biến trong VBScript không cần xác định kiểu, các biến không cấu trúc được xem là biến vô hướng, có thể chứa và tự chuyển đổi hầu hết các kiểu dữ liệu. Khai báo biến bằng từ khóa Dim. Ví dụ: <% Dim x, y x = 5 y = “2” Response.Write(x+y) ‘ Kết quả in ra màn hình là : 7 %> • Hằng được khai báo bằng từ khóa Const. Ví dụ: <% Const p = 3.14 Const str=”Danang College of Education” %> • Mãng được định nghĩa và truy xuất thông qua chỉ số. Ví dụ : <% Dim A(5) ‘ Mãng gồm 5 phần tử, phần tử đầu tiên có chỉ số là 0 A(0)= 5 A(5) = 0 %> 120 • Để khai báo mãng động (có thể thay đổi kích thước) : Dim A(). Sau đó ta có thể thay đổi kích thức qua lệnh REDIM. Ví dụ : ReDim A(6). • Nếu muốn áp đặt phải khai báo biến trước khi sử dụng (và đây là điều cần thiết) ta khai báo trước thẻ <HTML> dòng lệnh <%Option Explicit%> • Để hiển thị giá trị một biểu thức trên trang web ta dùng một trong hai phương pháp : Sử dụng phương thức Write của Object Response: Response. Write(bthức) Sử dụng cách viết tắt của Response. Write(bthức) : <% =bthức %> II.3. Các toán tử • Các toán tử số học : +, -, *, / , mod, \ (chia lấy phần nguyên), ^ (lũy thừa) • Các toán tử so sánh : =, >, <, <=, >= và <> • Các toán tử logic : NOT, AND, OR, XOR • Các toán tử cộng chuổi : + hoặc & II.4. Các cấu trúc điều khiển II.4.1. Các lệnh điều khiển rẽ nhánh • if then và if then else • select case Ví dụ 1: <%@ Language = VBScript %> <% Dim ngay Ngay = #23/07/2005# If ngay<Now then Response. Write(“Trước đây”) ‘Now là hàm trả về ngày hiện tại của hệ thống Else Response. Write(“Sau này”) End if %> Ví dụ 2: <%@ Language = VBScript %> <% Dim so So = 7 Select case (So mod 2) Case 0 Response.Write(Cstr(so) & ” là một số chẳn”) Case 1 Response.Write(Cstr(so) & ” là một số lẻ”) End Select %> II.4.2. Các lệnh lặp VBScript cung cấp 4 dạng câu lệnh lặp mà chúng ta đã nghiên cứu trong VB: 121 • For Next : lặp với số lần xác định • For Each Next : lặp với các phần tử trong một tập hợp • Do Loop : lặp trong khi điều kiện kiểm tra của Loop còn đúng. Câu lệnh này có 2 biến thể: Do While và Do Until. II.5. Hàm và Thủ tục II.4.1. Hàm Khai báo một hàm : Function End Function Hàm trả về một giá trị thông qua tên gọi hàm nên có thể tham gia trong một biểu thức như một toán hạng. VBScript có một số hàm dựng sẵn (cách sử dụng tương tự như trong VB): • Các hàm toán học : ATN, COS, SIN, TAN, EXP, LOG, SQR, RND, INT • Các hàm thao tác trên chuổi : INSTR : trả về vị trí bắt đầu của một chuổi con subStr trong một chuổi khác Str. Cú pháp InStr(subStr, Str). LEN : trả về số ký tự của một chuổi. LCASE : chuyển một chuổi viết thường sang viết hoa, tương tự cho UCASE LTRIM : trả về một chuổi đã loại bỏ các ký tự trống phía bên trái. Tương tự, ta có các hàm RTRIM, TRIM STRING : trả về một chuổi gồm một số ký tự giống nhau. Ví dụ : String(5,”b”) cho lại chuổi “bbbbb” LEFT : trả về một chuổi con trong một chuổi Str bắt đầu từ vị trí đầu tiên bên trái cho đến ký tự thứ num. Cú pháp: LEFT(Str, num). Tương tự ta có hàm RIGHT. MID : trả về một chuổi con gồm num ký tự trong một chuổi Str bắt đầu từ vị trí pos Cú pháp: MID(Str, pos, num) • Các hàm về ngày giờ: DATE, TIME, NOW, WEEKDAY, WEEKDAYNAME, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND. DATEDIFF : trả về số ngày tồn tại giữa hai ngày DATEADD : cộng thêm số ngày trả về số ngày mới • Các hàm chuyển đổi kiểu dữ liệu ABS : trả về giá trị tuyệt đối của một số ASC : trả về mã ASCII của một ký tự ASCW : trả về mã Unicode của một ký tự CHR : trả về ký tự có mã theo AINSI CDATE : trả về giá trị của đối số theo variant có kiểu là Date ROUND : làm tròn số • Các hàm kiểm tra ISARRAY : kiểm tra một biểu thức có phải là một mảng hay không. ISDATE : kiểm tra một biểu thức có phải kiểu Date hay không. ISEMPTY : kiểm tra một biến đã được khởi tạo chưa. ISNULL : kiểm tra một biểu thức có phải là NULL không 122 ISNUMERIC : kiểm tra một biểu thức có phải là số không II.4.2. Thủ tục Khai báo một thủ tục : Sub End Sub Gọi một thủ tục : call tên_thủ_tục Ví dụ : xây dựng hàm chuyển đổi độ C sang độ F <% Function Celsius(fDegrees) Celsius = (fDegrees-32)*5/9 ‘ gán giá trị cho hàm End Function ‘ thủ tục in ra cửa sổ trang web kết quả chuyển đổi Sub ConvertTemp() Response. Write(“Nhiệt độ là :”&Celsius(95)&” độ C”) End Sub ‘Gọi thủ tục Call ConvertTemp %> II.6. Các đối tượng của VBScript Đối tượng (Object) là tập hợp các thuộc tính, phương thức. Trong VBScript có những đối tượng được xây dựng sẵn để mở rộng khả năng của ngôn ngữ, hỗ trợ việc xây dựng các kịch bản mạnh hơn. II.6.1. Đối tượng ERR Đối tượng ERR chứa các thuộc tính mang thông tin về lỗi của VBScript và các phương thức xử lý lỗi. Khi chương trình phát sinh lỗi, cần nắm bắt và xử lý các lỗi phát sinh bằng cách khai báo dòng lệnh <% On Error Resume Next %> vào đầu trang ASP hay đầu của hàm, thủ tục của người viết script tạo ra. - Thuộc tính • Number, Description : cung cấp mã lỗi và mô tả lỗi • HelpFile : tên đường dẫn tệp tin trợ giúp • Source : nơi xuất hiện lỗi - Phương thức: • Clear : xoá các thông tin trong đối tượng ERR • Raise : tự tạo mã lỗi, khi sử dụng phương thức này người viết script phải cung cấp đầy đủ các thông tin cho các thuộc tính của đối tượng ERR. II.6.2. Đối tượng kịch bản DICTIONARY Đối tượng Dictionary cung cấp phương thức lưu trữ và truy xuất thông tin thuận lợi, tương tự như mãng. Muốn sử dụng đối tượng Dictionary cần phải tạo một thể hiện (instance) của đối tượng này qua lệnh : CreateObject(“Scripting.Dictionary”) 123 Để thiết lập chỉ mục và giá trị cho một mục thông tin ta sử dụng phương thức Add với hai tham số : chỉ mục, nội dung hoặc gán nội dung trực tiếp cho từng phần tử của thể hiện. - Thuộc tính : • Count : lưu trữ số phần tử trong thể hiện - Phương thức : • Add : thêm một chỉ mục và nội dung của một phần tử trong thể hiện • Remove : loại bỏ một phần tử trong thể hiện. • RemoveAll : loại bỏ tất cả các phần tử trong thể hiện. • Items : trả về mảng lưu trữ các Item của thể hiện • Keys : trả về mảng lưu trữ các chỉ mục của thể hiện Ví dụ : tạo một thể hiện của đối tượng Dictionary để lưu trữ số điện thoại và tên chủ thuê bao. <% Dim DanhBa, ListOfCustomer, num Set DanhBa = CreateObject(“Scripting.Dictionary”) DanhBa.Add “841323”,” Trường Đại học Sư phạm” DanhBa(“842308”) = “Trường Đại học Bách khoa” ‘ Truy xuất thông tin Response.Write(DanhBa.Item(“841323”)) ‘ In ra dòng Trường Đại học Sư phạm ‘ Ta dùng mảng Keys và thuộc tính Count để duyệt các phần tử của thể hiện ListOfCustomer = DanhBa.Items num = DanhBa.Count - 1 For i = 0 to num Response.Write(ListOfCustomer[i]&”<BR>”) %> II.6.2. Đối tượng FileSystemObject Đối tượng FileSystemObject cho phép làm việc với tệp tin và thư mục trên webserver. Muốn sử dụng đối tượng FileSystemObject phải tạo một thể hiện của đối tượng này với cú pháp : CreateObject(“Scripting.FileSystemObject”) - Một số phương thức : CopyFile : sao chép tệp tin. Sử dụng như hệ điều hành DOS Ví dụ ta có FS là một thể hiện của FileSystemObject: FS.CopyFile “C:\*.*” C:\backup” MoveFile, CopyFolder, CreateFolder, DeleteFile, DeleteFolder DriverExists, FolderExists, FileExists : kiểm tra sự tồn tại của một ổ đĩa , GetDrive, GetFolder, GetFile : lấy tên ổ đĩa, thư mục, tệp tin chỉ định. - Các đối tượng và tập hợp của thể hiện đối tượng FileSystemObject • Đối tượng File : 124 Các thuộc tính : Name. DateCreated, DateLastAccessed, DateLastModified, Size, Drive (ổ đĩa chứa tệp tin), ParentFolder Các phương thức : Copy, Delete và Move • Đối tượng Folder : có các thuộc tính và phương thức như đối tượng File, ngoài ra còn có các thuộc tính SubFolder (tập các thư mục con) và IsRoot (có phải là thư mục gốc hay không) • Đối tượng Drive và tập hợp Drives (tập hợp các ổ đĩa của webserver) Thông qua tập hợp Drives ta có thể truy xuất đến các đối tượng Drive. Đối tượng Drive có các thuộc tính : - DriveLetter : Tên ổ đĩa - VolumeName : Label của ổ đĩa - FreeSpace : Dung lượng còn trống của ổ đĩa (tính theo byte) - TotalSize : Dung lượng của ổ đĩa (tính theo byte) - IsReady : đĩa đã sẵn sàng truy cập chưa - DriveType : kiểu ổ đĩa (1: Removable, 2: HardDisk, 3: Network Drive, 4: CD, 5: Ram Drive) - FileSystem: loại bảng FAT đang sử dụng - RootFolder : trả về thư mục gốc. Ví dụ : Viết script để hiển thị thông tin về các ổ dĩa của webserver và các tệp tin, thư mục con của thư mục C:\ <% ‘ Thông tin về các ổ đĩa Dim Fs, Drv, Drvs ‘ Fs : FileSystem Object Set Fs = CreateObject(“Sripting.FileSystemObject”) Set Drvs = Fs.Drives For each Drv in Drvs If Drv.IsReady = True then Response.Write(“Drive: “&Drv.VolumeName &”<br>”) Response.Write(“Space Free: “&Drv.FreeSpace&” bytes”+”<br>”) Else Response.Write(“Drive isn’t ready “+”<br>”) End If Next ‘ Thông tin về các thư mục con và tệp tin của C:\ Dim Fo, RootDir, RootFiles ‘ Fo : FileObject Set Drv = Fs.GetDrive(“C:”) Set RootDir = Drv.RootFolder Set RootFiles = RootDir.Files For Each Fo in RootFiles Response.Write(Fo.Name&”<br>”) Next Set Fs = Nothing ‘ Giải phóng biến Fs khỏi bộ nhớ %> 125 Ngoài đối tượng FileSystemObject, VBScript còn có đối tượng TextStream cho phép ta tạo ra một tệp tin hay thêm dữ liệu vào một tệp tin đã tồn tại. III. CÁC ĐỐI TƯỢNG CỦA ASP Một đối tượng của ASP là một tập gồm : thuộc tính, phương thức, tập hợp (collection) và sự kiện có thể tác động lên đối tượng. ASP cung cấp 7 đối tượng dựng sẵn cho lập trình ứng dụng web phía server: Application, ASPError, ObjectContext, Request, Response, Server và Session. Ngoài ra, ASP còn cung cấp các component dựng sẵn cho các ứng dụng. (Component là các thành phần các đoạn mã có thể sử dụng lại, các component thường được viết bằng một ngôn ngữ lập trình nào đó như VB, C, Java, v.v ) III.1. Đối tượng Application Đối tượng Application lưu trữ toàn bộ các biến, các đối tượng của toàn bộ ứng dụng, mỗi ứng dung chạy trên server chỉ có duy nhất một thể hiện của đối tượng Application, mọi trang ASP của ứng dụng có thể truy xuất các biến, đối tượng được lưu trữ trên đối tượng này. Nói cách khác, đối tượng Application dùng để chia sẻ dữ liệu cho mọi client. - Để khởi tạo một biến và thêm vào đối tượng Application ta có cú pháp : Application(“tên_biến”) = giá_trị - Để khởi tạo một đối tượng và thêm vào đối tượng Application ta có cú pháp Application(“tên_đối_tượng”) =Server.CreateObject(“ADOBB.Connection”) - Các tập hợp của đối tượng Application : • Tập hợp Contents : là tập hợp các đề mục được tạo ra và thêm vào đối tượng Application trong phiên làm việc của client thông qua các câu lệnh script như Server.CreateObject mà không sử dụng thẻ <OBJECT> của HTML . Cú pháp : Application.Contents(key) Với Key là tên của thuộc tính (biến, đối tượng) cần nhận về. Ví dụ : <% ‘ Khởi tạo các biến, đối tượng Application(“name”) = “Thiết kế & Lập trình Web” Application(“publishdate”) = “01/01/2005” Application(“author”) = “Ngô Đình Thưởng” Application(“Obj1”) = Server.CreateObject(“ADODB.Connection”) ‘ Truy xuất các biến, đối tượng Dim Item For Each Item in Application.Contents 126 If IsObject(Application.Contents(Item)) then Response.Write(Item & “ is a Object <br>”) Else Response.Write(Item & “=” & Application.Contents(item) & “<br>” End If Next %> • Đối tượng StaticObjects : là tập hợp các đề mục được tạo ra và thêm vào đối tượng Application trong phiên làm việc của client thông qua sử dụng thẻ <OBJECT> của HTML . Ví dụ : Giả sử ta có tệp tin Global.asa (sẽ nghiên cứu sau) và truy xuất các thông tin đã cài đặt thông qua tệp tin này. Global.asa <Object RunAt = Server Scope = Application ID = MyInfo PROGID = ”MSWC.MyInfo” </Object> <Object RunAt = Server Scope = Application ID = MyConnection PROGID = ”ADODB.Connection” </Object> <Object RunAt = Server Scope = Application ID = MyADRot PROGID = ”MSWC.ADRotator” </Object> File.asp <% For Each Item in Application.StaticObjects Response.Write Item&”<BR>” Next %> Kết quả hiển thị ra màn hình : MyInfo MyConnection MyADRot - Các phương thức của đối tượng Contents • Remove : Xoá bỏ một đề mục trong tập hợp Contents Ví dụ : Application.Remove(1) ‘ Xoá bỏ Item “name” Application.Remove(“author”) • RemoveAll : Xoá bỏ mọi đề mục trong tập hợp Contents - Các phương thức của đối tượng Application : • Lock : Khoá toàn bộ ứng dụng, ngăn chặn các client khác thay đổi giá trị của biến dùng chung trong đối tượng Application. Nếu phương thức UnLock không được gọi thì server tự động thực hiện lệnh này sau khi sử lý xong các script hay time out. • UnLock : Cho phép client thay đổi giá trị của các biến trong đối tượng Application đã bị Lock trước kia. 127 [...]... - File .asp III.2 Đối tượng AspError Đối tượng AspError chỉ chứa các thuộc tính chỉ đọc, mô tả chi tiết các lỗi trong quá trình sử dụng các đối tượng của ASP - ASPCode : trả về mã lỗi được phát sinh do IIS - ASPDescription : trả về một chuổi mô tả chi tiết về lỗi - Category : trả về một chuổi... ASP hay tạo một đối tượng thuộc dạng COM của Windows thực thi phía web server, đây là phương thức quan trọng nhất của đối tượng Server Cú pháp : Server.CreateObject(ObjectID) Ví dụ : Server.CreateObject(“ADODB.Connection”) Execute : cho phép ta gọi một trang ASP khác từ một trang ASP Ví dụ: -CallingAsp .asp How now cow? -CalledAsp .asp. .. từ trang ASP này sang trang ASP khác Ví dụ : trang ASP Calling .asp sẽ truyền toàn bộ thông tin chứa trong các đối tượng sang trang Called .asp Calling .asp -... Windows nhờ thư viện hỗ trợ ASP do Sun cung cấp (Sun Chili! Soft) Trong việc thao tác cơ sở dữ liệu Access, SQL Server thì ASP tỏ ra nhanh và hiệu quả hơn các môi trường khác ASP cung cấp 7 đối tượng: Session, Application, Request, Response, Server, AspError và ObjectContent để xây dựng kịch bản máy chủ bằng ngôn ngữ kịch bản VBScript hay JScript Hiện nay Microsoft đưa ra ASP. NET cùng với ADO.NET chạy... : Giả sử ta có test .asp đặt trong virtual folder là ASP và thư mục vật lý là E:\Documents and Settings\Administrator\My Documents\My Webs \ASP The path of this file is : Kết quả hiển thị trên trang web: The path of this file is : E:\Documents and Settings\Administrator\My Documents\My Webs \ASP\ test .asp Transfer : phương... trả về một chuổi mô tả chi tiết về lỗi được phát sinh từ IIS do quá trình sử dụng một đối tượng hay script không đúng 128 - Column : Trả về một số nguyên chỉ vị trí xảy ra lỗi trong tệp tin ASP - File : Trả về tên tệp ASP bị xuất hiện lỗi III.3 Đối tượng ObjectContext Đối tượng ObjectContext chỉ chứa các phương thức dùng để điều khiển các giao tác (transaction) của ASP mà các giao tác này được quản... quả sẽ hiển thị : How now pink cow? GetLastError : phương thức này trả lại đối tượng ASPError mô tả các lỗi xảy ra về các loại Script, runtime Ví dụ : . các đối tượng của ASP. - ASPCode : trả về mã lỗi được phát sinh do IIS - ASPDescription : trả về một chuổi mô tả chi tiết về lỗi - Category : trả về một chuổi mô tả chi tiết về lỗi được phát sinh. trang ASP khác từ một trang ASP. Ví dụ: CallingAsp .asp <HTML><BODY> How now <%Server.Execute("CalledAsp .asp& quot;)%> cow? </BODY></HTML> CalledAsp .asp <% Response.Write. Chương 7 CĂN BẢN VỀ ASP I. GIỚI THIỆU VỀ ASP I.1. Trang web động Ngôn ngữ HTML là ngôn ngữ chủ yếu để xây dựng các trang web, ngoài ra ta còn sử dụng các ngôn ngữ kịch bản để tạo nên các