D) CÂU HỎI, BÀI TẬP, NỘI DUNG ÔN TẬP VÀ THẢO LUẬN
5.4. Đối tượng Application
Application và Session là hai đối tượng khá quan trọng trong ứng dụng web, giúp các trang aspx có thể liên kết và trao đổi dữ liệu cho nhau. Trong phần này, chúng ta sẽ tìm hiểu và sử dụng hai đối tượng này trong ứng dụng.
Đối tượng Application được sử dụng để quản lý tất cả các thông tin của một ứng dụng web. Thông tin được lưu trữ trong đối tượng Application có thể được xử lý trong bất kỳ trang aspx nào trong suốt chu kỳ sống của ứng dụng.
Sử dụng biến Application:
• Tạo biến Application: Application["Tên biến"] = <giá trị>
• Lấy giá trị từ biến Application: <biến> = Application["Tên biến"] Ví dụ:
Application.Lock()
Application["SoLanTruyCap"] = 0 Application["SoNguoiOnLine"] = 0 Application.UnLock()
5.5. Tập tin Global.asax và Web.config
5.5.1. Tập tin Global.asax
Tập tin Global.asax được dùng để:
• Khai báo và khởi tạo giá trị cho các biến Application và Session. • Viết xử lý cho các sự kiện của 2 đối tượng Application và Session.
Các sự kiện trong tập tin Global.asax:
• Application_Start: Chỉ xảy ra một lần đầu tiên khi bất kỳ trang nào trong ứng dụng được gọi.
• Session_Start: Xảy ra khi có một người dùng mới yêu cầu đến bất kỳ trang aspx của ứng dụng. Khi Session_Start xảy ra, một giá trị duy nhất (SessionID) sẽ được tạo ra cho người dùng, và giá trị này được sử dụng để quản lý người dùng trong quá trình làm việc với ứng dụng.
• Application_BeginRequest: Xảy ra khi có Postback về Server.
• Application_Error: Xảy ra khi có lỗi phát sinh trong quá trình thi hành.
• Session_End: Xảy ra khi phiên làm việc không gửi yêu cầu hoặc làm mới trang aspx của ứng dụng Web trong một khoảng thời gian (mặc định là 20 phút).
• Application_End: Xảy ra khi dừng hoạt động của WebServer. 5.5.2. Tập tin Web.config
*) Cấu trúc tập tin Web.config
Web.config là một tập tin văn bản được sử dụng để lưu trữ thông tin cấu hình của một ứng dụng, được tự động tạo ra khi chúng ta tạo mới ứng dụng web. Tập tin web.config được viết theo định dạng XML.
Web.config được tạo kế thừa các giá trị từ tập tin Windows\Microsoft.NET\ Framework \ \[FrameworkVersion]\CONFIG\machine.config
*) Cấu hình mặc định
<compilation debug="false"/>: qui định ngôn ngữ mặc định của ứng dụng C#. debug: Bật/tắt
<customErrors mode="RemoteOnly"/>: Đây là một cấu hình khá cần thiết cho ứng dụng
Web. Hiệu chỉnh cấu hình này cho phép chúng ta quản lý việc xử lý lỗi khi có lỗi phát sinh trong ứng dụng.
• Thuộc tính mode có các giá trị: RemoteOnly, On và Off.
• RemoteOnly: Cho phép người dùng thấy thông báo lỗi của hệ thống hoặc trang thông báo lỗi được chỉ định qua defaultRedirect (nếu có).
• Thông báo lỗi gồm: Mã lỗi và mô tả lỗi tương ứng
• On: Tùy theo giá trị của defaultRedirect mà có các trường hợp tương ứng:
o Có qui định trang thông báo lỗi qua defaultRedirect: Hiển thị trang thông báo lỗi.
o Không có thuộc tính defaultRedirect: Hiển thị trang báo lỗi nhưng không có hiển thị mã lỗi và mô tả lỗi.
• Off: Hiển thị thông báo lỗi của trang aspx (nếu xảy ra lỗi).
• mode: Thuộc tính này có 3 giá trị: InProc, sqlserver (lưu trong database), và stateserver (lưu trong bộ nhớ)
• stateConnectionString: Cấu hình địa chỉ và cổng (port) của máy để lưu trữ thông tin của Session trong vùng nhớ (nếu chức năng này được chọn).
• sqlConnectionString: Cấu hình kết nối đến SQL Server được dùng để lưu thông tin Session (nếu chức năng này được chọn).
• cookieless: Nếu giá trị của thuộc tính này = True, thông tin cookie sẽ được lưu trữ trong URL, ngược lại, nếu = False, thông tin cookies sẽ được lưu trữ tại client (nếu client có hỗ trợ)
• timeout: Khoảng thời gian (tính bằng phút) mà đối tượng Session được duy trì. Sau khoảng thời gian này, đối tượng Session sẽ bị huỷ. Giá trị mặc định của thuộc tính này là 20.
C) TÀI LIỆU HỌC TẬP
1. Dương Quang Thiện, Lập Trình Web Dùng ASP.NET Và C#, NXB Thành phố HCM 2. Nguyễn Phương Lan, Giáo trình tin học và bài tập ASP 3.0, ASP NET, NXB LĐXH 2006
D) CÂU HỎI, BÀI TẬP, NỘI DUNG ÔN TẬP VÀ THẢO LUẬN
Bài 1: Thực hành lại các bài tập, ví dụ trong bài học, có thể hiệu chỉnh lại tuỳ theo ý sinh viên. Bài 2: Đọc và giải thích nội dung của phần mã lệnh trang SessionEx1.aspx với nội dung trang thiết kế như sau: 1 DropDownList chứa các Item (White, Red, Green, Blue)
Phần mã lệnh:
public partial class SessionEx1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
if (Session["BackgroundColor"] != null) {
ColorSelector.SelectedValue = Session["BackgroundColor"].ToString(); BodyTag.Style["background-color"] = ColorSelector.SelectedValue; } }
protected void ColorSelector_IndexChanged(object sender, EventArgs e) { BodyTag.Style["background-color"] = ColorSelector.SelectedValue; Session["BackgroundColor"] = ColorSelector.SelectedValue; }