Đề tài Thiết kế trang Web trắc nghiệm online

Ngày nay công nghệ thông tin đã có những bước phát triển mạnh mẽ theo chiều rộng và chiều sâu, Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí và học tập thông dụng của con người, không chỉ ở công sở , nhà trường mà còn ngay cả trong gia đình. Đang đứng trước sự tiến bộ vượt bậc của công gnhệ thông tin.việc giảng dạy và thi cử cũng từ đó phát triển theo chiều hướng đi lên.các trang web, diễn đàn về học tập và thi cử đang dần dần được dịnh hướng phát triển .

docChia sẻ: vietpd | Lượt xem: 2242 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Đề tài Thiết kế trang Web trắc nghiệm online, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
LỜI NÓI ĐẦU ______000______ Ngày nay công nghệ thông tin đã có những bước phát triển mạnh mẽ theo chiều rộng và chiều sâu, Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí và học tập thông dụng của con người, không chỉ ở công sở , nhà trường mà còn ngay cả trong gia đình. Đang đứng trước sự tiến bộ vượt bậc của công gnhệ thông tin.việc giảng dạy và thi cử cũng từ đó phát triển theo chiều hướng đi lên.các trang web, diễn đàn về học tập và thi cử đang dần dần được dịnh hướng phát triển . Những năm gần đây, hình thức thi trắc nghiệm đã trở nên phổ biến trên toàn thế giới, với những ưu điểm tuyệt vời của mình, nó đã dần trở thành hình thức thi chính của các tổ chức giáo dục quốc tế. Trong 2 năm trở lại đây, nhận thấy những ưu điểm của hình thức thi này, Bộ Giáo Dục nước ta đã quyết định đưa trắc nghiệm vào trong kỳ thi đại học – kỳ thi được xem là quan trọng nhất của quốc gia. Trước đó, Bộ Giáo Dục đã thử nghiệm đưa trắc nghiệm vào trường học nhằm giúp học sinh làm quen dần với hình thức thi này, thế nhưng, những bài tập, những bài kiểm tra thử nghiệm trong nhà trường lại quá ít, trong khi học sinh luôn có nhu cầu được thực tập nhiều hơn. Chính vì thế, khi mà mạng internet phát triển ngày lớn mạnh, thế giới đã được đem đến từng nhà qua chiếc máy tính thì cùng với nó, những dịch vụ hỗ trợ người dùng ra đời ngày càng nhiều hơn, và những website trắc nghiệm trực tuyến ra đời cũng không ngoài mục đích là giúp đỡ học sinh , sinh viên nước ta có được sự hỗ trợ cao nhất, thuận lợi nhất để làm quen với hình thức thi này, để nền giáo dục nước ta tiến dần đến chuẩn quốc tế. Để tiếp cận và góp phần đẩy mạnh sự phổ biến hình thức này ở Việt Nam, em đã tìm hiểu “Website thi trắc nghiệm trực tuyến online”trên môi trừơng ASP.NET. Với sự hướng dẫn tận tình của cô Nguyễn Thị Mai Trang em đã hoàn thành cuốn báo cáo đồ án môn học này. Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót. Em rất mong nhận được sự thông cảm và góp ý của quí Thầy cô. Em xin chân thành cảm ơn. Qua đây cho phép em bày tỏ lòng biết ơn đến sự dạy dỗ chỉ bảo của các thầy, cô trong bộ môn tin học. Đặc biệt là cô Nguyễn Thị Mai Trang, người đã trực tiếp hướng dẫn, chỉ bảo và giúp đỡ em trong thời gian thực hiện đồ án tốt nghiệp này, em chân thành cảm ơn sự hướng dẫn tận tình của Cô. Sinh viên thực hiện Đào Xuân Thành & Hà Chí Hải PHẦN I :CƠ SỞ LÝ THUYẾT CHƯƠNG I: GIỚI THIỆU VỀ NGÔN NGỮ HTML I.1 Khái niệm HTML (HyperText Markup Language ) là ngôn ngữ dịnh dạng văn bản siêu lien kết.sự địng dạng dựa trên các thẻ (TAG) hoặc các đọan mã đặc biệt dể đánh dấu một văn bản,một file hình ảnh , hoa95c một đọan phim… giuùp cho trình duyeät Web thoâng dòch vaø hieån thò chuùng leân maøn hình. HTML coù nhöõng phaàn môû roäng raát quan troïng cho pheùp nhöõng lieân keát hypertext töø moät taøi lieäu naøy tôùi moät taøi lieäu khaùc (coù theå laø moät ñoaïn vaên baûn, cuõng coù theå laø moät file aûnh, ...). I.2. Cấu trúc cơ bản của một file HTML : Đây là một đầu đề Theo cấu trúc đã trình bày như trên ta thấy một file HTML chia thành hai phần cơ bản: - Phần đầu: được bao bởi hai tag và . Tại đây định nghĩa tên (hay được gọi là tiêu đề) của trang Web. Phần này được hiển thị trên thanh tiêu đề của trang Web được khai báo giữa hai tag và . - Phần thân: được bao bởi hai tag và , trình bày nội dung thể hiện trên trang Web. Các nội dung cần hiển thị hoặc xử lý trên trang Web sẽ được định nghĩa trong phần BODY của file HTML. Để cho các trang Web được sinh động hơn, ngôn ngữ HTML còn bao gồm rất nhiều tag dùng cho việc định trang, liên kết các trang với nhau, thêm hình ảnh vào trang, …. I.3. Các thẻ (tag) của HTML: - Có hai loại tag cơ bản là: tag mang thông tin (container tag) và tag rỗng (empty tag). + Một số tag mang thông tin: … : hiển thị thông tin trên thanh tiêu đề của cửa sổ trình duyệt. … : hiển thị nội dung, đề mục, hình ảnh … … : hiển thị tựa đề trang Web. … : thiết kế để chứa tất cả các thành phần cần thiết để tạo một bảng. … : tạo tựa đề cho bảng. … : tạo hàng. … : tạo cột. … : cho phép điều khiển kích thước font và màu của chữ. + Tag rỗng (empty tag): : buộc trình duyệt ngắt dòng tại một vị trí nào đó. : đặt một đuờng mờ ngang qua bề rộng của cửa sổ trình duyệt Web. : chèn một tập tin hình ảnh lên trang Web. CHƯƠNG II: TỔNG QUAN VỀ ASP II.1. Tìm hiểu công nghệ ASP: a. Giới thiệu: - ASP (Microsoft Active Server Pages) là một môi trường kịch bản trên máy chủ dùng để tạo ra và chạy các ứng dụng Web động, tương tác và có hiệu quả cao. ASP hoạt động dựa vào các script do người lập trình tạo ra. - ASP xây dựng sẵn một thư viện cho phép giao tiếp với cơ sở dữ liệu thông qua ODBC (Open Database Conectivity) gọi là ADO (ActiveX Data Object). Hiện nay thư viện ADO là một trong những công cụ mạnh nhất trong việc phát triển các ứng dụng Web. b. Hoạt động của trang ASP: - Trang ASP là trang Web trong đó có kết hợp các thành phần HTML, ActiveX Component và Script ASP. Có thể xem trang ASP như một trang HTML có bổ sung các lệnh kịch bản ASP. - Khi một trang ASP được trình duyệt Web yêu cầu, đầu tiên Web server sẽ duyệt tuần tự trang ASP này và chỉ thực hiện dịch những câu lệnh kịch bản ASP, kết quả trả về cho trình duyệt dưới dạng một trang HTML. II.2. Mô hình ứng dụng cơ sở dữ liệu trên Web qua công nghệ ASP: - Thao tác giữa client và server trong một ứng dụng Web có thể được thể hiện khái quát như sau: Client DB Server Web Server O L E D P A D O ASP DBMS SQL Server O D B C Trình duyệt Web a. Web server: Là nơi tiếp nhận và trả lời các yêu cầu của người dùng Web (client), đồng thời cũng thực hiện việc kết nối đến hệ quản trị cơ sở dữ liệu (DBMS) trên Database server theo yêu cầu truy cập dữ liệu của trang ASP. ADO cung cấp giao diện lập trình cho người phát triển xây dựng các lệnh truy cập cơ sở dữ liệu. Các lệnh này được chuyển đến cho hệ DBMS để thi hành thông qua các thành phần OLEDB (và ODBC). Kết quả truy vấn dữ liệu sẽ được Web server đưa ra hiển thị trên trình duyệt. b. Database server: Là nơi diễn ra việc thực thi các thao tác trên cơ sở dữ liệu như truy vấn, cập nhật, cũng như đảm bảo tính toàn vẹn dữ liệu của hệ DBMS. c. Browser: Giao diện với người dùng là nơi tiếp nhận yêu cầu của người dùng, cũng như hiển thị kết quả yêu cầu. Ngoài, ra trình duyệt còn là nơi kiểm tra sơ bộ tính hợp lệ của dữ liệu trước khi chuyển đến cho Web server. II.3. Cấu trúc và cách tạo trang ASP: - Trang ASP đơn giản là trang văn bản với phần mở rộng .asp, gồm có ba phần: + Văn bản (Text) + Thẻ HTML + Các đoạn kịch bản ASP - Sử dụng trang HTML có sẵn để tạo trang ASP bằng cách thêm vào các lệnh kịch bản ASP cần thiết và đổi phần mở rộng của tên tập tin thành .asp. - Khi thêm một đoạn kịch bản vào trang HTML để đánh dấu nơi kịch bản ASP bắt đầu và kết thúc, dùng cặp lệnh . - Những lệnh nằm giữa phải sử dụng ngôn ngữ viết kịch bản chính thức quy định cho trang đó. VBScript là ngôn ngữ mặc định của ASP. Nếu muốn sử dụng một ngôn ngữ khác (như JavaScript chẳng hạn) thì cần phải định nghĩa ngôn ngữ tại đầu mỗi trang ASP như sau: %@LANGUAGE = tên ngôn ngữ %. - Các biến không cần khai báo mà tự xác định khi gán giá trị cho nó. - Muốn in ra các biến trong Web, sử dụng mã sau: - Để làm việc với hệ thống tập tin, thao tác với cơ sở dữ liệu, cần phải sử dụng các đối tượng ActiveX của ASP. II.4. Các đối tượng và thành phần xây dựng sẵn của ASP: 1. Các đối tượng (object) của ASP: Đối tượng là những đoạn chương trình có khả năng thực hiện một số công việc cơ bản nào dó. Mỗi đối tượng là một kết hợp giữa lập trình và dữ liệu. Các đối tượng ASP cho phép giao tiếp, tương tác với cả máy chủ (Web server) lẫn trình duyệt (Browser). Có 6 đối tượng cơ bản trong ASP: ¨ Request: cho phép lấy thông tin thông qua một yêu cầu HTTP. Những thông tin này gồm có các tham số của Form khi được Submit bằng phương thức POST hay GET, hoặc các tham số được chia cùng với trang ASP trong lời gọi đến trang đó. Dùng đối tượng Request để chia sẻ thông tin qua lại giữa các trang ASP trong một ứng dụng với nhau. ¨ Response: gửi thông tin tới người dùng, là đại diện cho phần thông tin do server trả về cho trình duyệt Web. ¨ Application: giúp điều khiển các đặc tính liên quan đến việc khởi động và khai thác ứng dụng cũng như việc lưu trữ thông tin có thể được truy nhập bởi các ứng dụng nói chung. Nói cách khác đối tượng Application dùng để chia sẻ thông tin giữa các người dùng trong cùng một ứng dụng, chẳng hạn đếm số lần truy cập đến ứng dụng của các người dùng. ¨ Server: cung cấp phương tiện truy cập đến những phương thức và thuộc tính trên server. Thường sử dụng phương thức Server.CreateObject để khởi tạo phiên bản của một đối tượng ActiveX trên trang ASP. ¨ Session: dùng lưu trữ thông tin cần thiết trong phiên làm việc của người dùng đã truy nhập vào trang Web. Những thông tin lưu trữ trong phiên làm việc không bị mất đi khi người dùng di chuyển qua các trang của ứng dụng. ¨ ObjectContext: dùng để chấp thuận hay huỷ bỏ một giao dịch do một kịch bản ASP khởi tạo. SƠ ĐỒ QUAN HỆ GIỮA CÁC ĐỐI TƯỢNG ASP TRONG ỨNG DỤNG ASP Ứng dụng ASP Đối tượng Application Đọc thông tin từ Application Cập nhật thông tin cho Application Đối tượng Session (1 User) Đối tượng Session (1 User) Liên lạc qua IIS, chia sẻ thông tin giữa các người sử dụng Quản lý quá trình và tài nguyên của ứng dụng Internet Information Server I/O : Đối tượng Request và Response Liên lạc vớiBrowse qua Internet Đối tượng Application Cú pháp của các đối tượng: Cú pháp của các đối tượng không phụ thuộc vào ngôn ngữ kịch bản mà người lập trình sử dụng. Để truy xuất thông tin của một đối tượng ta dùng các phương thức (method) và các thuộc tính (property). Sử dụng các phương thức: Một phương thức (method) là một procedure hoạt động trên một đối tượng nào đó. Cú pháp tổng quát của method là: Object.Method [parameters] parameter : là các thông số của method. Sử dụng các thuộc tính: Một thuộc tính là một tính chất được đặt tên của một đối tượng. Chúng định nghĩa các tính chất của đối tượng như kích thước, màu, vị trí trên màn hình hay thể hiện các trạng thái của đối tượng như được phép (enable) hay không được phép (disable). Cú pháp tổng quát của property là: Object.Property [parameters] Parameter: là các thông số của Property. Parameter thường là các biến, dữ liệu, chuỗi ký tự, hoặc là một URL. a. Đối tượng Request: - Các tập hợp (Collection) của đối tượng Request: Đối tượng Request cung cấp 5 collection cho phép truy xuất tất cả các loại thông tin về yêu cầu của Browser đối với Server. ۰QueryString: Tập hợp này nhận tất cả giá trị trong chuỗi truy vấn, đó là giá trị được gởi lên theo sau dấu chấm hỏi (?) trong câu lệnh request. Cú pháp: Request.QueryString (Tên biến)[(chỉ mục)].Count ۰Form: Nhận các giá trị của các thành phần trong Form được gởi bằng phương thức POST thông qua một HTTP request. Cú pháp: Request.Form (element)[(index) | .Count] Trong đó: Element: Tên của một thành phần trong Form. Index: Tham số tuỳ chọn cho phép chúng ta truy cập một trong những giá trị của một tham số (parameter). ۰Cookie: Là một tập tin lưu trên máy của client dưới dạng một tập tin nhỏ. Cookie được trình duyệt của client gởi kèm trong HTTP request. Cú pháp: Request.Cookies (cookie)[(key)|.attribute] Trong đó: Cookie: Chỉ định cookie để nhận giá trị. Key: Tham số tuỳ chọn dùng để nhận các khoản mục có trong cookie. Attribute: Chỉ định thông tin về bản thân cookie. Tham số thuộc tính này có thể là Name hay HasKeys. ۰ ServerVariable: Nhận các giá trị của các biến môi trường. ۰ClientCertificate: Nhận certificate fields từ yêu cầu của Trình duyệt Web. Cú pháp: Request.ClientCertificate (Key [SubField]) - Thuộc tính (property) của đối tượng Request: Đối tượng Request chỉ có 1 thuộc tính cung cấp thông tin về số byte dữ liệu mà người dùng chuyển lên trình chủ. ۰TotalByte: Trả lại tổng số byte trong đối tượng Request được gửi lên từ trình khách. - Phương thức (method) của đối tượng Request: Đối tượng Request chỉ có một phương thức cho phép truy xuất toàn bộ nội dung của yêu cầu của người dùng được POST lên server qua phân đoạn của một trang Web. ۰BinaryRead (count): nhận count byte dữ liệu từ yêu cầu client khi dữ liệu được gởi đến server là một phần của request POST. Nó trả về một mảng Variant. Cú pháp tổng quát khi sử dụng đối tượng Request: Request.CollectionName(variable) Variable: là tên biến trong Collection muốn truy xuất thông tin. Cũng có thể sử dụng cú pháp: Request (variable) Khi đó thứ tự tìm kiếm sẽ tuân theo danh sách các Collection trên và khi gặp biến đầu tiên trùng tên thì trả về giá trị của biến đó. Vì thế nếu có nhiều hơn một biến với cùng một tên trong các Collection khác nhau thì nên sử dụng dạng cú pháp tổng quát. Sau đây là một số ứng dụng của đối tượng Request: Lấy thông tin từ FORM HTML Form là cách thức thông thường để trao đổi thông tin giữa Webserver và user. HTML Form cung cấp nhiều cách nhập thông tin của user như: text box, radio button, check box, submit, reset, password, … và hai phương thức gửi thông tin là POST hoặc GET. Sử dụng QueryString QueryString Collection chứa toàn bộ thông tin được gửi tới từ Form bằng phương thức GET. Các giá trị gởi từ Form chứa trong một chuỗi truy vấn (query string) và được add vào URL (bắt đầu từ dấu chấm hỏi (?) trở về sau là phần query string được thêm vào). Ví dụ: <FORM NAME=”frmDetails” ACTION=”getDetails.asp” METHOD=”GET”> Name: Age: Khi user nhập giá trị vào 2 hộp Name và Age sau đó nhấn Submit thì hộp Address của trình duyệt sẽ có dạng như sau: Hạn chế của phương thức GET: Chiều dài tối đa của URL là 1000 ký tự, như vậy nếu gởi một loạt thông tin từ Form, thông tin sẽ bị cắt bớt. Sử dụng Form collection Thay vì add thông tin gửi đi từ Form vào URL như một querystring, một phương thức khác là POST, đặt thông tin gửi đi vào bên trong HTTP HEADER. Ví dụ: <FORM NAME=”frmDetails” ACTION=”getDetails.asp” METHOD=”POST”> Name: Age: Khi user nhập giá trị vào 2 hộp Name và Age sau đó nhấn Submit thì hộp Address của trình duyệt sẽ có dạng như sau: Tại thời điểm này, các giá trị gửi từ Form không thể truy xuất bằng QueryString Collection. Thay vào đó, Active Server Pages hiện thực một Form Collection chứa toàn bộ thông tin gửi từ Form sử dụng phương thức POST. b. Đối tượng Response: - Các tập hợp của đối tượng Response: Đối tượng Response cung cấp loại đối tượng tập hợp dùng để xác lập giá trị của bất kỳ cookie nào ta muốn đặt trên hệ thống của trình khách client. Nó tương đương với tập Request.Cookies. ۰ Cookies: Một tập chứa giá trị của tất cả các cookie sẽ được gửi ngược lại client trong đáp ứng hiện hành. Các thành phần của tập đều là giá trị chỉ ghi. Cú pháp: Response.Cookies(cookie)[(key)|.attribute] = value Cookie: Tên của cookie muốn tạo. Key: Là tham số tuỳ chọn. Nếu giá trị này được thiết lập thì cookie này được xem là cookie từ điển. Attribute: Bao gồm những thông tin liên quan đến cookie. - Các thuộc tính của đối tượng Response: Đối tượng Response cung cấp một số thuộc tính mà chúng ta có thể đọc và xác lập theo yêu cầu: ۰ Buffer: Là một biến kiểu boolean. Nếu thuộc tính này là True thì Web server chỉ trả kết quả cho client khi tất cả các kịch bản được xử lý hoặc phương thức Response.Flush hay Response.End được gọi. Giá trị mặc định là False. Cú pháp: Response.Buffer = [True, False] ۰ ContentType: Quy định dạng dữ liệu cho Web server trả về cho client. Giá trị mặc định là Text/ HTML. Cú pháp: Response.ContentType [ = ContentType ] ۰ ExpiresAbsolute #date[time]# : Chỉ định ngày và giờ tuyệt đối một trang sẽ hết hạn và không còn hợp lệ nữa. ۰ Expires minutes: Chỉ định chiều dài thời gian tính bằng phút một trang còn hợp lệ. ۰ IsClientConnected: Trả lại một chỉ định client có còn kết nối và tải trang từ server xuống hay không? Có thể sử dụng để kết thúc quá trình (với phương thức Response.End) nếu client di chuyển đến trang khác trước khi trang hiện hành được xử lý xong. ۰ Status = “code message”: Chỉ định giá trị trạng thái và thông điệp sẽ được gởi đến client trong các header HTTP của đáp ứng để một lỗi hay xử lý trang thành công. - Các phương thức của đối tượng Response: ۰ AddHeader (tên, nội dung): Thêm một HTML header với một giá trị được chỉ định. Phương thức này luôn luôn thêm mới một header vào Response. Nó sẽ không thay thế những header có sẵn cùng tên với header mới. ۰ AppendToLog (“string”): Thêm một chuỗi vào cuối file Log của Web server cho Request này. ۰ BinaryWrite (Array): Xuất thông tin ra output HTML dạng binary. ۰Clear (): Huỷ bất cứ nội dung trang nào trong bộ đệm khi Response.Buffer bằng True. Không huỷ các header HTTP. Có thể sử dụng để bỏ một trang chưa hoàn thành. ۰ End (): Dừng xử lý file .asp và trả về kết quả hiện tại. ۰Flush (): Gởi thông tin trong bộ đệm IIS đến client nếu Response.Buffer = True. Có thể sử dụng để gởi từng phần riêng của một trang dài đến client. ۰Redirect (“URL”): Gởi một thông báo cho browser định hướng lại đến một URL khác. ۰WriteString (“string”): Ghi một biến ra HTML output như là một chuỗi. c. Đối tượng Session: - Các thuộc tính của đối tượng Session: SessionID: trả về số định danh session cho user. Mỗi session sẽ được server cho một số định danh duy nhất khi nó được tạo ra. Timeout: chỉ thời gian sống của đối tượng session, giá trị này tính bằng phút. Nếu người dùng không cập nhật hay yêu cầu một trang Web của ứng dụng trong khoảng thời gian lớn hơn thời gian timeout thì phiên làm việc sẽ kết thúc. Giá trị mặc định là 20 phút. - Các phương thức của đối tượng Session: Abandon: Dùng để huỷ đối tượng session và giải phóng tài nguyên. Web server sẽ tự thực hiện phương thức này khi phiên làm việc hết hiệu lực (timeout). Ví dụ: Ta có thể tạo các biến trong đối tượng Session để lưu thông tin cho mỗi kết nối đến Server. + Session("Login"): Cho biết người yêu cầu truy xuất đến trang có login chưa. + Session("Username"): Tên của Account tạo ra sesion hiện tại. + Session("SelectedTopic"): Tên chủ đề đang được chọn để thực hiện một thao tác nào đó. Session_OnStart: Biến cố này xảy ra khi server tạo một phiên làm việc . Server xử lý kịch bản này lúc thực thi yêu cầu một trang. Những đối tượng xây dựng sẵn tồn tại trong biến cố này là: Application, ObjectContext, Request, Response, Server và Session. Session_OnEnd: Biến cố này xảy ra khi phiên làm việc bị huỷ bởi lệnh Abadon hoặc timeout. Trong biến cố này chỉ có các đối tượng xây dựng sẵn: Application, Server, Session của ASP là tồn tại. Các thông tin lưu giữ trong Session được giữ nguyên trong suốt thời gian session tồn tại và có giá trị trong cả tầm vực của session. d. Đối tượng Application: - Các phương thức của đối tượng Application: ۰ Contents: Chứa tất cả các item do chúng ta thiết lập trong đối tượng Application mà không dùng tag Cú pháp: Application.Contents (Key) Key: Tên thuộc tính (property) cần nhận về. ۰ Lock: Phương thức Lock 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, đảm bảo tại một thời điểm chỉ có một client được phép thay đổi và truy xuất các biến của đối tượng này. Nếu phương thức UnLock không được gọi thì server tự động thực hiện lệnh này khi xử lý xong các script hoặc time out. Cú pháp: Application.Lock ۰ UnLock: Phương thức UnLock cho phép client thay đổi giá trị của các biến lưu trong đối tượng Application đã bị khóa trước kia. Cú pháp: Application.UnLock ۰ Application_OnStart: Biến cố này xảy ra trước khi phiên làm việc (session) đầu tiên được tạo, nghĩa là nó xảy ra trước biến cố Session_OnStart. Trong biến cố này chỉ tồn tại đối tượng Application và Session. ۰ Application_OnEnd: Biến cố này xuất hiện khi thoát ứng dụng. Nó xảy ra sau biến cố Session_OnEnd. Trong biến cố này chỉ tồn tại đối tượng Application và Session. e. Đối tượng Server: - Thuộc tính của