1. Trang chủ
  2. » Giáo án - Bài giảng

Lập trình ứng dụng web

242 197 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 242
Dung lượng 15,85 MB

Nội dung

1.2.3 Các Assembly mới - System.Core.dll: Các cài đặt cho LINQ to Objects - System.Data.Linq.dll: Các cài đặt cho LINQ to SQL - System.Xml.Linq.dll: Các cài đặt cho LINQ to XML - System.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC CÔNG NGHỆ TP.HCM

Trang 2

LẬP TRÌNH ỨNG DỤNG WEB

Ấn bản 2015

Trang 3

I MỤC LỤC

II MỤC LỤC

MỤC LỤC

MỤC LỤC I HƯỚNG DẪN IV BÀI 1:

ASP.NET 1

1.1 TỔNG QUAN ASP.NET

1 1.1.1 Giới thiệu 1

1.1.2 ASP.NET tích hợp với Framework 1

1.1.3 Tính đa ngôn ngữ 1

1.1.4 Tính hướng đối tượng 2

1.1.5 Biên dịch ASP.NET 2

1.1.6 Dễ dàng triển khai và cấu hình 3

1.2 TÍNH NĂNG MỚI TRONG ASP.NET

3 1.2.1 Các công cụ điều khiển mới 4

1.2.2 LINQ 4

1.2.3 Các Assembly mới 4

1.2.4 ASP.NET MVC (Model View Control) 4

1.3 TẠO TRANG WEB VỚI VISIUAL STUDIO 5

1.3.1 Tạo dự án mới 5

1.3.2 Ví dụ 7

1.4 CÁC SỰ KIỆN TRONG ASP.NET

8 1.4.1 Chu kỳ sống của trang web trong ASP.NET (Page Life Cycle)

9 1.4.2 Một số sự kiện của trang web 9

1.4.3 Sự kiện ứng dụng 10

TÓM TẮT

12 BÀI TẬP

13 BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET 15

2.1 HTTP REQUEST

15 2.1.1 Giới thiệu 15

2.1.2 Các thuộc tính 16

2.2 HTTP RESPONSE

19 2.2.1 Giới thiệu 19

2.2.2 Các thuộc tính/phương thức 20

2.3 HTTP SERVER

20 2.4 SESSION VÀ COOKIE 21

Trang 4

I MỤC LỤC

II MỤC LỤC

2.4.1 Giới thiệu Cookie và Session 21

2.4.2 Cookie 22

2.4.3 Session 23

TÓM TẮT

25 BÀI TẬP 26

Trang 5

I MỤC LỤC

II MỤC LỤC

BÀI 3: TRUY CẬP DỮ LIỆU

28 3.1 TỔNG QUAN

28 3.2 TRUY CẬP DỮ LIỆU ADO.NET

30 3.3 TRUY CẬP DỮ LIỆU XML

31 3.4 SQLDATASOURCE

32 3.5 TRUY CẬP DỮ LIỆU LINQ

34 3.5.1 LINQ cơ bản 35

3.5.2 Cách làm việc của LINQ 35

3.5.3 Cú pháp LINQ 35

TÓM TẮT

39 BÀI TẬP

40 BÀI 4: LẬP TRÌNH GIAO DIỆN WEB VỚI JQUERY 41

4.1 J QUERY LÀ GÌ?

41 4.1.1 Giới thiệu 41

4.1.2 Sử dụng jQuery trong ASP.NET 42

4.2 LẬP TRÌNH VỚI J QUERY 43

4.2.1 Chạy mã khi trang đã sẵn sàng 43

4.2.2 Hàm $() - function $() 44

4.2.3 Một số API trong jQuery 44

TÓM TẮT

51 BÀI TẬP

51 BÀI 5: TỔNG QUAN VỀ ASP.NET MVC FRAMEWORK

52 5.1 TỔNG QUAN ASP.NET MVC

52 5.1.1 Mô hình MVC cơ bản 52

5.1.2 Đặc tính trong ASP.NET MVC 53

5.1.3 Khác biệt với Web Form 53

5.1.4 Lợi ích của ứng dụng web dựa trên mô hình MVC 54

5.2 XÂY DỰNG ỨNG DỤNG VỚI ASP.NET MVC 56

5.2.1 Tạo Project với ASP.NET MVC Web Application 56

5.3 ĐỊNH TUYẾN URL

58 5.3.1 Giới thiệu 58

5.3.2 Tìm hiểu định tuyến URL 59

TÓM TẮT 61

Trang 6

IMỤC LỤC

II MỤC LỤC

BÀI TẬP 62

BÀI 6: MODEL – VIEW CONTROLLER 63 6.1 TÌM HIỂU VỀ CONTROLLER 63

6.2 TÌM HIỂU VỀ VIEW 65

6.3 TÌM HIỂU VỀ MODEL 67

6.4 CẤU TRÚC VIEWS\SHARE\SITE.MASTER 70 TÓM TẮT 72

BÀI TẬP 72

Trang 7

III MỤC LỤC

IV HƯỚNG DẪN

BÀI 7: CẬP NHẬT DỮ LIỆU VỚI MVC

73 7.1 THÊM MỚI DỮ LIỆU TRONG MVC

73 7.1.1 Thêm các phương thức dữ liệu với mô hình dbml 73

7.1.2 Các hành động (action) tại các bộ điều khiển (controller) 74

7.2 SỬA ĐỔI DỮ LIỆU TRONG MVC

76 7.3 QUY TRÌNH KIỂM TRA TRONG ỨNG DỤNG MVC

81 7.3.1 Controller trong ứng dụng test 81

7.3.2 Kiểm thử kết quả trả về từ một controller 85

TÓM TẮT

87 BÀI TẬP

87 BÀI 8: THỰC HIỆN BẢO MẬT CHO ỨNG DỤNG ASP.NET MVC 88

8.1 AUTHENTICATION - XAC THƯC NGƯỜI DUNG 88

8.1.1 Tạo ngư i d ng mặc định với ứng dụng ASP.NET MVC 88

8.1.2 Quản l ngư i d ng với công cụ Website Administration 89

8.1.3 Roles - Ph n quyền nh m ngư i d ng 91

8.2 CẤU HÌNH VIỆC XÁC THƯC NGƯỜI DÙNG 93

TÓM TẮT

96 BÀI TẬP

97 LAP

98 TÀI LIỆU THAM KHẢO 204

Trang 8

IIIMỤC LỤC

IV HƯỚNG DẪN

HƯỚNG DẪN

MÔ TẢ MÔN HỌC

Môn học trang bị các kiến thức nhập môn về lập trình web Nội dung bao gồm:

- Asp.net web form

- Model – View – Controller

- Bảo mật với Asp.net Membership

NỘI DUNG MÔN HỌC

 Bài 1 Giới thiêu tổng quan về ASP.NET

 Bài 2 Các lớp thư viện trong ASP.NET

 Bài 3 Truy câp dữ liêu

 Bài 4 jQuery

 Bài 5 Tổng quan về ASP.NET MVC Framework

 Bài 6 Model – View - Controller

 Bài 7 Chỉnh sửa dữ liệu với MVC

 Bài 8 Bảo mật với ASP.NET Membership

KIẾN THỨC TIỀN ĐỀ

Môn Lập trình web cần kiến thức tiền đề của các môn học sau

- Thiết kế web

Trang 9

VHƯỚNG DẪN

- Lập trình hướng đối tượng

- Lập trình C# trên Windows

YÊU CẦU MÔN HỌC

Người học vận dụng được kiến thức nền tảng về lập trình web để có thể thiết kếcài đặt các ứng dụng web, như quản lý website, hệ quản trị nội dung, ứng dụngthương mại điện tử, các dịch vụ web

Kỹ năng lập trình, và phân tích thiết kế ứng dụng thành thạo

Người học cần đi học đầy đủ, đọc các nội dung sẽ được học trước khi đến lớp,làm các bài tập về nhà và đảm bảo thời gian tự học ở nhà

CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC

Để học tốt môn này, người học cần đọc trước các nội dung chưa được học trên lớp;tham gia đều đặn và tích cực trên lớp; hiểu các khái niệm, tính chất và ví dụ tại lớphọc Sau khi học xong, cần ôn lại bài đã học và làm các bài tập, câu trắc nghiệm Tìmđọc thêm các tài liệu khác liên quan đến bài học và làm thêm bài tập

PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC

Môn học được đánh giá gồm hai thành phần

 Phần điểm quá trình chiếm 30%, hình thức và nội dung đánh giá điểm quá trình dogiảng quyết định và công bố cho người học đầu khóa học

 Phần điểm cuối khóa chiếm 70%, hình thức là đồ án môn học cuối khóa

Trang 11

BÀI 1: ASP.NET

BÀI 1: ASP.NET

Học xong bài này người học sẽ nắm được các nội dung sau:

- Hiểu được tổng quan về công nghệ ASP.NET, Khái niệm về ASP.NET.

- Biết được những tính năng mới của ASP.NET 3.5 so với ASP.NET 2.0.

- Biết cách tạo website trong Visual Studio 2008.

1.1 TỔNG QUAN ASP.NET

1.1.1 Giới thiệu

Trước hết, tên đầy đủ của ASP.NET là Active Server Pages NET (.NET ở đây là

.NET framework) Nói đơn giản thì ASP.NET là một công nghệ có tính cách mạng dùng

để phát triển các ứng dụng về mạng hiện nay cũng như trong tương lai ASP.NET là

một phương pháp tổ chức hay khung tổ chức (framework) để thiết lập các ứng dụng

mạnh cho mạng dựa trên CLR (Common Language Runtime).

1.1.2 ASP.NET tích hợp với Framework

.NET Framework được chia thành bộ các tác vụ cho từng chức năng gồm các lớp

(class), các cấu trúc (structures), các giao diện (interfaces) và các lõi (core) thành

phần chương trình Trước khi sử dụng thành phần nào ta phải hiểu cơ bản về chứcnăng, các tổ chức của nó Mỗi một trong hàng ngàn các tầng lớp được nhóm theo

trình tự logic, thứ bậc được gọi là một namespace Mỗi namespace cung cấp một

tính năng

1.1.3 Tính đa ngôn ngữ

Để xây dựng một ứng dụng web chúng ta không chỉ chọn một ngôn ngữ mà có thểchọn nhiều ngôn ngữ khác Điều quan trọng là các ngôn ngữ chúng ta chọn mã của

Trang 12

dữ liệu và các sự kiện của đối tượng.

1.1.5 Biên dịch ASP.NET

Một ứng dụng ASP.NET luôn luôn được biên dịch, nó không chạy bằng mã của C#hoặc Visual Basic mà không được biên dịch trước Một ứng dụng ASP.NET thực sự được biên dịch thông qua 2 giai đoạn:

Trang 13

Visual Basic hoặc ngôn ngữ

.NET khác) được dịch bởi

Microsoft Intermediate

Language (MSIL) Giai

đoạn dịch này được dịch tự

động khi trang wed đầu tiên

yêu cầu Chúng ta có thể

thực hiện dịch trước Các tập

tin được dịch thành mã IL

- Giai đoạn tiếp theo được dịch trước khi trang Web được thực thi Tại giai đoạn này

mã IL được dịch thành bản mã máy (Native Machine Code) Giai đoạn này được gọi

là Just-In-Time (JIT).

Trang 14

Khía cạnh quan trọng nhất của công cụ ASP.NET là nó chạy trong môi trường thời

gian thực (Runtime) của CLR (Common Language Runtime) CLR là máy ảo (virtual

machine) trong Microsoft NET, do có ngôn ngữ trung gian IL nên khi phát triển ứng

dụng trên NET, chúng ta không bị phụ thuộc vào thiết bị, có nghĩa là theo Microsoftnói thì ứng dụng NET có thể chạy trên bất kỳ thiết bị nào có NET Framework Tất cảcác namespace, các ứng dụng, các lớp trong bộ NET Framework được gọi tắt là bộquản lý mã CLR cũng cung cấp các dịch vụ quan trọng khác như:

1.1.6 Dễ dàng triển khai và cấu hình

Mọi sự cài đặt NET Framework đều cung cấp các lớp như nhau Để triển khai ứngdụng ASP.NET chúng ta chỉ cần sao chép các tập tin vào thư mục ảo trên máy chủ(server) và máy chỉ chỉ cần có NET Framework

Việc cấu hình dễ dàng đơn giản không phụ thuộc vào IIS (Internet Information

Services) Cấu hình trong ASP.NET được đặt trong tập tin web.config Tập tin

web.config được để cùng với thư mực chứa trang web của chúng ta Tập tinweb.config không bao giờ bị khóa, chúng ta có thể truy cập bất kỳ lúc nào, việc sửatập tin này hoàn toàn dễ dạng vì chúng được lưu dưới dạng XML

1.2 TÍNH NĂNG MỚI TRONG ASP.NET

Microsoft phát hành ASP.NET vào ngày 19 tháng 11 năm 2007 cùng với VisualStutio 2008 Đây là bước tiến hóa từ ASP.NET 2.0 tới ASP.NET 3.5 Nếu chúng tađang sử dụng ASP.NET 2.0 để sử dụng ASP.NET 3.5 chỉ cần cài đặt thêm các tínhnăng mới của ASP.NET 3.5 Trong phần này ta sẽ giới thiệu một số tính năng mớitrong ASP.NET 3.5

Trang 15

1.2.1 Các công cụ điều khiển mới

Các công cụ (control) ListView và DataPager có thể dùng mới kiểu dữ liệu mới

LinqDataSource.

ListView linh hoạt hơn và có chứa toàn bộ tính năng của Gridview, Datagrid, Repeater trong ASP.NET 2.0 Nó cung cấp các khả năng và chèn, xóa, sửa, sắp xếp,

phân trang Chúng ta hoàn toàn định dạng được việc dữ liệu hiển thị trên ListView

mà không cần phải sử dụng thẻ <table> Các Template trong ListView rất phong phú và đa dạng Datager cung cấp cho ListView trong việc phân trang.

1.2.2 LINQ

LINQ (Language Integrated Query) cung cấp khả năng lập trình mới trong NET là

giải pháp lập trình hợp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQLtrực tiếp trong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng đến

Cơ sở dữ liệu quan hệ và XML

1.2.3 Các Assembly mới

- System.Core.dll: Các cài đặt cho LINQ to Objects

- System.Data.Linq.dll: Các cài đặt cho LINQ to SQL

- System.Xml.Linq.dll: Các cài đặt cho LINQ to XML

- System.Data.DataSetExtensions.dll

- Các hiện thực cho LINQ đến DataSet

- System.Web.Extensions.dll: Các cài đặt for ASP.NET AJAX

1.2.4 ASP.NET MVC (Model View Control)

Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần

(component) khác nhau Model, View và Controller:

- Model: Model được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu

vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu

Trang 16

vào từ người dùng sẽ thông qua View được kiểm tra ở Model trước khi lưu vào cơ

sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của Model

- View: View hiển thị các thông tin cho người dùng của ứng dụng và được giao

nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến bộđiều khiển, sau đó là nhận lại các phản hồi từ bộ điều khiển và hiển kết quả chongười dùng Các trang HTML, JSP, các thư viện thể và các tập tin nguồn là mộtphần của thành phần View

- Controller: Controller là tầng trung gian giữa Model và View Controller được giao

nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu được nhận từ máykhách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model vàsau đó sinh ra các kết quả cho người dùng và được thành phần View hiển thị

1.3 TẠO TRANG WEB VỚI VISIUAL STUDIO

1.3.1 Tạo dự án mới

- Chúng ta kích hoạt ứng dụng Visual Studio (h1.2)

Hình 1.2: Tạo mới dự án

- Nếu chọn New Project xuất hiện hộp hội thoại New Project (h1.3)

- Trong Project Type:

 Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng

Trang 17

 Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng.

- Trong Templates chọn ASP.NET Web Application,

- Trong Name đặt tên cho Project, tên do ta đặt

- Trong Location là thư mục chứa Project

 Nếu chọn New Web Site xuất hiện hộp hội thoại New Project sau

- Trong Languge:

 Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng

 Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng

- Trong Templates chọn ASP.NET Web Application

- Trong Location chọn tên và thư mực chứa Project

Hình 1.3: Chọn ứng dụng Web form application

Trang 18

1.3.2 Ví dụ

Hình 1.4: Tạo dự án dạng Web form

Ví dụ ta tạo một dự án có tên là ViDu1, đặt tại ổ đĩa D, chọn ngôn ngữ chọn là C# (h1.5) sau đó bấm OK Sau đó chúng ta được tập tin Default.aspx

Hình 1.5: ViDu1 project

Trong ví dụ đầu tiên này chúng ta soạn một đoạn mã sau trong Default.aspx:

Trang 19

<% @ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Default.aspx.cs”

1.4 CÁC SỰ KIỆN TRONG ASP.NET

Để thực hiện được đúng các sự kiện trong quá trình lập trình với ASP.Net, chúng ta cần tìm hiểu bảng ý nghĩa các tập tin như sau:

Bảng 1.1: Bảng ý nghĩa các tập tin

đoạn mã nguồn ứng dụng Đây là một trong những trang web đầutiên được bắt đầu khi người sử dụng duyệt web

gồm các cấu hình về an ninh, quản lý trạng thái, quản lý bộ nhớ

ứng với các sự kiện toàn cục

Trong đó:

- Phần giao diện của ứng dụng nằm trong ở các tập tin aspx và html

- Tất cả các tập tin mã nguồn (C#, VB.NET hoặc ngôn ngữ NET) sẽ được biên dịch

thành tập tin DLL và nằm trong thư mục /Bin.

Trang 20

1.4.1 Chu kỳ sống của trang web trong ASP.NET (Page Life Cycle)

Hình 1.6: Vòng đời của trang ASP.NET

Chu kỳ sống được bắt đầu khi trình duyệt yêu cầu một trang web gọi là Session.

Chu kỳ sống vẫn tiếp tục nếu:

- Session đang hoạt động

- Người sử dụng tương tác với giao diện web cho đến khi kích hoạt một sự kiện

- Dữ liệu của trang (View State) wed được gửi về cho Server.

- Server nhận được View State và trả lại yêu cầu từ View State

Chu kỳ sống kết thúc khi:

- Người dùng kết thúc trình duyệt

- Session kết thúc (timeout).

1.4.2 Một số sự kiện của trang web

Các sự kiện xử lý trong vòng đời của trang web được mô tả trong bảng sau:

Trang 21

Bảng 1.2: Bảng sự kiện liên quan các diễn tiến của trang web

được sử lý Tạo mới hoặc tạo mới lại các Control động (DynamicControl) Thiết lập trang chủ (Master page), thuộc tính Theme Đọc

và thiết lập giá trị cho thuộc tính Profile

Init Làm nổi (Raised) sau khi các Control đã được khởi động và các

Skin đã được ứng dụng Chúng ta sử dụng sử kiện này để đọc hoặckhởi tạo các thuộc tính của Control

các kết nối với Cơ sở dữ liệu

khởi tạo hoàn thành

out)

Ví dụ sau đếm số người truy cập và số người online, trong đó ta cần chuẩn bị nội

dung tập tin Global.asax như sau:

Trang 22

if (! File Exists( “D:\\Dem.txt” ))

File WriteAllText( “D:\\Dem.txt” , “0” );

Application[ “SNTruyCap” ] = int Parse( File ReadAllText( “D:\\Dem.txt” ));

Application[ “SNOnline” ] = ( int )Application[ “SNOnline” ] + 1;

Application[ “SNTruyCap” ] = ( int )Application[ “SNTruyCap” ] + 1;

File WriteAllText( “D:\\Dem.txt” , Application[ “SNTruyCap” ].ToString());

Trang 23

BÀI 1: ASP.NET

TÓM TẮT

Chu kỳ sống của trang web trong ASP.NET: chu kỳ sống được bắt đầu khi trình

duyệt yêu cầu một trang web gọi là Session.

Chu kỳ sống vẫn tiếp tục nếu:

- Session đang hoạt động.

- Ngư i sử dụng tương tác với giao diện web cho đến khi kích hoạt một sự kiện.

- Dữ liệu của trang (View State) wed được gửi về cho Server.

- Server nhận được View State và trả lại yêu cầu từ View State.

vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào từ ngư i dùng sẽ thông qua View được kiểm tra ở Model trước khi lưu vào cơ

sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của Model.

nhiệm vụ cho việc nhận các dữ liệu vào từ ngư i dùng, gửi đi các yêu cầu đến bộ điều khiển, sau đ là nhận lại các phản hồi từ bộ điều khiển và hiển kết quả cho ngư i d ng Các trang HTML, JSP, các thư viện thể và các tập tin nguồn là một phần của thành phần View.

nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đ sinh ra các kết quả cho ngư i d ng và được thành phần View hiển thị ActionServlet, Action, ActionForm và struts-config.xml là các phần của Controller.

Trang 24

- Làm quen với môi trường Microsoft Visual Studio

- Xây dựng ứng dụng web đơn giản WebCalculator

 Tạo Project WebApplication

 Thiết kế giao diện WebForm

 Viết mã lệnh xử lý đơn giản

 Chạy, Debug và sửa lỗi chương trình

Câu 2: Môi trường Microsoft Visual Studio 2010 hoặc mới hơn

- Một số khái niệm cơ sở

 Lưu mã nguồn trong tập tin riêng biệt (Yes? No?)

- Giao diện môi trường

 Start Page

 Option Dialog (Line number,…)

 Toolbox

o Thêm control/tab vào toolbox (Bấm phải \ Add …)

o Kéo thả control vào Form

Trang 25

 Xem màn hình design form: Shift-F7

 Chuyển đổi từ Design sang Code và ngược lại: F7

 Chạy chương trình: Ctrl-F5 (hoặc F5 với chế độ Debug)

Trang 26

BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET

BÀI 2: CÁC LỚP SỬ DỤNG TRONG

ASP.NET

Học xong bài này người học sẽ nắm được các nội dung sau

- Hiểu được các khái niệm về đối tượng Http Request, Http Response, Http Server, Session, Cookie.

- Biết vận dụng thành thạo những đối tượng này trong bài lập trình liên quan.

2.1 HTTP REQUEST

2.1.1 Giới thiệu

Request là một thể hiện của lớp HttpRequest Trình duyệt dùng đối tượng Request để gửi thông tin cần thiết tới Server.

Hình 2.1: Người dùng gởi yêu cầu đến server

Đối tượng Request nhận tất cả giá trị mà trình duyệt của client gởi đến server thông qua HTTP Request.

Request đại diện cho Client khi yêu cầu trang Web, Server sẽ dùng vừa Response vừa Request để đáp ứng yêu cầu hay đòi hỏi thông tin từ Client

Trang 27

BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET

2.1.2 Các thuộc tính

2.1.2.1 RequestType

RequestType: trả về phương thức truyền dữ liệu từ client đến server gồm 2

phương thức POST và GET

Cú phá p: var valMethode=Request.RequestType;

2.1.2.2 Tập hợp Form - Form collection

Form collection được sử dụng để tập hợp dữ liệu được chứa trong các phần tử của

form chuyển từ client đến server bằng phương thức POST.

- Lấy dữ liệu từ các phần tử của form:

Cú phá p: var VarName= Request.Form[“FieldName”];

Ví dụ: tại trang Default.aspx

< form method=“Post” action=““CheckUser.aspx”>

UserName: < input type=“text” name=“txtUser” />< br />

Password: < input type=“password” name=“txtPwd” />< br

/>

< input type=“Submit” name=“btnLogin” value=“Login” />< br />

</ form >

Hình 2.2: Màn hình giao diện web

Tại trang CheckUser.aspx, ta lấy giá trị của UserName và Password trên form:

<b>UserName:</b>

<%=Request.Form[“txtUser”]%><br />

<b>Password</b>

<%=Request.Form[“txtPwd”]%>

Trang 28

BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET

- Count: trả về số phần tử của form chuyển từ client đến server

string varField, varName;

int num = Request.Form.Count;

for ( int i = 0; i < num; i++) {

Trang 29

BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET

varName));

} }

định nghĩa là chuỗi nằm sau dấu ? trong chuỗi URL (Uniform Resource Locator) trên

phần Address của trình duyệt

Có 3 cách truyền tham số và gọi tập tin xử lý

- Cách 1: dùng action , tham số truyền qua phần tử của form

< form method=““Get”“ action=““FileName.aspx”>

Các phần tử của form

</ form >

Trang 30

- Cách 2: dùng action , tham số ghi sau dấu ?

< form method=“Get” action=“FileName.aspx?var1=value1&var2=value2”>

Các phần tử của form

</ form >

cách nhau bởi dấu &, giá trị của mỗi tham số đặt sau dấu =

Hình 2.3: Form đăng nhập tại Login.aspx

<% @ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Login.aspx.cs”

Trang 31

< input type=“password” name=“txtPwd” />< br />

< input type=“submit” name=“btnLogin” value=“Login” />< br />

< asp : Label runat=“server” ID=“ResultTextBox”></ asp : Label >

string strUser = Request.QueryString[ “txtUser” ];

string strPws = Request.QueryString[ “txtPwd” ];

if (strUser == “admin” && strPws == “123” ){

ResultTextBox.Text = “Dang nhap thanh cong” ; }

else { ResultTextBox.Text = “Dang nhap khong thanh cong” ; }

} }

Trang 32

2.2.2 Các thuộc tính/phương thức

- Thuộc tính Bufer: có 2 giá trị true và false quy định cách truyền tải dữ liệu:

Cú phá p: Response.Bufer=true/false;

 true: Hoàn tất công việc và gửi một lần

 false: Thực hiện xong đến đâu thì gửi đến đó

- isClientConnected: Kiểm tra máy client có yêu cầu kết nối đến server, kết quả

- End(): Kết thúc tiến trình xử lý trên Server và đẩy dữ liệu tới Client

- Flush(): Kết thúc tiến trình, quay lại thực hiện tiếp

- Redirect(url) : dùng để chuyển client sang một URL khác

- Redirect(url, Boolean): dùng để chuyển client sang một URL khác, trong đó:

 Nếu Boolean=true thì khi thực hiện xong, lệnh Response sẽ thực hiện tiếp

 Nếu Boolean =false thì khi thực hiện xong, lệnh Response sẽ dừng

- Write(“Data”): Ghi dữ liệu ra trang web

 MachineName: tên server

 ScriptTimeout: thiết lập thời gian xử lý tối đa 1 tập tin

Trang 33

Ví dụ: Server.ScriptTimeout=100s //thiết lập thgian mặc định

- HtmlEncode(str): dùng để mã hoá HTML thành chuỗi

p há p : Khi mã hoá chuỗi HTML sang chuỗi bình thường nếu gặp các ký tự như

sau sẽ chuyển sang ký tự tương ứng:

 Ký tự < chuyển thành &lt;

 Ký tự > chuyển thành &gt;

 Ký tự & chuyển thành &amp;

 Dấu nháy đôi “ chuyển thành &quot;

- HtmlDecode(strcontent):giải mã các thẻ HTML

Ví dụ: Str=“n&gt;5”; Str=server.HtmlDecode(str); // kết quả n>5

- Transfer: gửi tất cả thông tin mà nó đã xử lý từ trang ASP hiện hành sang trang

ASP khác

Cú phá p: Tham số path là đường dẫn của tập tin ASP cần chuyển điều khiển.

- Phương thức URLEncode: Tương tự như phương thức HTMLEncode, phương thức

URLEcode dùng để mã hoá URL thành chuỗi

p h á p : Khi mã hoá chuỗi URL sang chuỗi bình thường nếu gặp các ký tự như

sau, sẽ chuyển sang ký tự tương ứng:

 Ký tự khoảng trắng chuyển thành dấu +

 Ký tự không thuộc ký tự chữ và số sẽ chuyển thành số hexadecimal.

2.4 SESSION VÀ COOKIE

2.4.1 Giới thiệu Cookie và Session

Điểm chung giữa Cookie và Session là việc lưu trữ và quản lý một số thông tin

liên quan đến người dùng website, những thông tin này cần dùng trên nhiều trangweb của cùng hệ thống website

Thông tin được lưu trữ với khoảng thời gian quy định trước, và có thể tự hủy khi

hết thời gian cho phép Cookie và Session thuận tiện cho việc gửi thông tin qua lại

Trang 34

giữa các trang web mà không cần dùng qua phương thức POST/GET… giảm thiểu việcphát sinh thêm biến.

Ứng dụng thường thấy của Cookie và Session là lưu trữ thông tin đăng nhập của

người dùng, xác định thời điểm đăng nhập, thoát khỏi website … Kết hợp với thao tác

Redirect để có thể quản lý, chặn truy cập từ người dùng khi chưa đăng nhâp…

2.4.2 Cookie

2.4.2.1 Đặc điểm cookie

Cookie được lưu trữ trên trình duyệt, khi người dùng sử dụng trình duyệt truy cập

vào một website nào đó thì server sẽ gửi cookie về trình duyệt và lưu trữ trực tiếp

trên máy người dùng (client).

Cookie sẽ khác nhau cho mỗi loại trình duyệt, IP người dùng cũng như server củawebsite Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khácnhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới trình duyệt Mỗi trình duyệt sẽ có cách quản lý và lưu trữ cookie theo cách riêng của mình, chonên 2 trình duyệt cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau

Trong ASP.NET các phương thức, thuộc tính liên quan đến việc xử lý Cookie đượclưu trữ trong class HttpCookie Các thuộc tính thường dùng trong Cookie:

- Name: Tên Cookie.

- Domain: Tên miền của Cookie lưu trữ.

- Expires: Xác định thời gian hiệu lực của Cookie.

- Value: Giá trị của Cookie.

- HasKeys: Cho biết Cookie có tập giá trị con hay không.

- Values: Tập các giá trị của Cookie.

Mỗi lần có yêu cầu lên website, trình duyệt sẽ gửi cookie lên server, server sẽ có

cơ chế “đọc” cookie và xử lý cho tác vụ nào đó Mỗi cookie được website gửi đến trìnhduyệt thường bao gồm 3 thành phần chính sau:

- Địa chỉ URL của website mà trình duyệt nhận cookie

Trang 35

- Thời gian tồn tại của Cookie

- Giá trị lưu trữ

2.4.2.2 Phương thức thao tác

- Ghi Cookie:

Cú phá p: Respone.Cookies[cookie][key|attribute]=value;

Trong đó, cookie là tên biến cookie, key là tham số mở rộng cho Cookie, attribute

là các thuộc tính của biến Cookie

- Đọc Cookie:

Cú phá p: value = Request.Cookies[cookie][key|attribute];

Thao tác trên Cookie có nhiều Subkey

- Xóa Cookie: Việc xóa Cookie thực chất là thao tác chỉnh thời gian hiệu lực về

trước thời điểm hiện tại so với giờ hệ thống

2.4.3 Session

2.4.3.1 Đặc điểm

Ta có thể chưa thực sự dùng cookie để lưu trữ Shoping Cart Một cookie vừa quánhỏ và quá đơn giản Để làm việc ngoài giới hạn của Cookie, ASP.NET Framework hỗ

trợ một chức năng mới được gọi là Session State Giống với Cookie, Session lưu

trữ dữ liệu trong phạm vi riêng với từng người sử dụng Nhưng không giống với

Cookie, Session không giới hạn dung lượng, nếu ta cần lưu trữ hàng Gigabyte dữ

liệu, hơn thế nữa Session có thể đưa ra điều đối tượng phức tạp hơn là chuỗi Text Ta

có thể lưu trữ một vài đối tượng trong Session Ví dụ ta có thể lưu trữ một Datasethay một Shoping Cart trong Session

2.4.3.2 Session trong ASP.Net

Trong ASP.NET cũng như các công nghệ lập trình web khác, Session được tạo rakhi Client bắt đầu có yêu cầu gửi tới Server và sẽ kết thúc khi Client có thao tác hủySession hoặc sau một thời gian (định trước) không có bất kỳ thao tác nào lên Server

Trang 36

Khi Session được tạo đồng thời phương thức Session_OnStart() sẽ được thực thi

và tương tự khi kết thúc Session phương thức Session_OnEnd() sẽ được thực thi.

2.4.3.3 Một số phương thức thao tác trên session

- Timeout: Qui định khoảng thời gian (tính bằng phút) Web Server duy trì Session

nếu người dùng không gởi yêu cầu nào về lại Server

 Giá trị mặc định của Timeout là 20 Nếu không có yêu cầu nào kể từ lần yêu cầu cuối cùng sau một khoảng thời gian là <Timeout> phút, đối tượng Session

mà Web server cấp cho lần làm việc đó sẽ tự động được giải phóng

 Những yêu cầu sau đó, webserver coi như là một người dùng mới, và sẽ cấp một đối tượng Session mới

Ví dụ: Thiết lập thời gian cho 1 phiên làm việc của user là 100 phút

- SessionID: chứa ID của session đang kích hoạt, mỗi user được phân biệt bởi

sessionID gọi là mã phiên làm việc

- Count: trả về số session trong một ứng dụng

- Abandon(): giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên

Web Server ngay khi được gọi thực hiện Những yêu cầu sau đó được Web servercoi như là một người dùng mới

- Remove(“SessionName”): xoá dữ liệu trên biến “VarSession”

- RemoveAll(): Xoá dữ liệu, nhưng sessionID vẫn tồn tại

- Cũng có thể dùng Session để lưu các biến giá trị như Cookie

Session[“nameVar”] = value;

Trang 37

TÓM TẮT

Bài học này giới thiệu về các đối tượng làm việc thông dụng và quan trọng trong

kỹ thuật lập trình web là Request, Response, Cookie và Session.

Request là một thể hiện của lớp HttpRequest, Browser d ng Request object để gửi thông tin cần thiết tới Server Đối tượng Request nhận tất cả giá trị mà trình duyệt của client gởi đến server thông qua HTTP request.

Http Response được sử dụng để truyền dữ liệu webserver đến webBrowser

Đối tượng Server cung cấp các phương thức giúp chuyển điều khiển giữa các trang với nhau, lấy thông tin về mã lỗi, encode, …

Cookie được lưu trữ trên trình duyệt, khi ngư i d ng sử dụng trình duyệt truy cập vào một website nào đ thì server sẽ gửi cookie về trình duyệt và lưu trữ trực tiếp trên máy ngư i d ng (client) Cookie sẽ khác nhau cho mỗi loại trình duyệt, IP ngư i

d ng cũng như server của website Cookie được tạo ra bởi website và gởi tới browser,

do vậy 2 website khác nhau (cho d c ng host trên 1 server) sẽ c 2 cookie khác nhau gởi tới trình duyệt Mỗi trình duyệt sẽ c cách quản l và lưu trữ cookie theo cách riêng của mình, cho nên 2 trình duyệt c ng truy cập vào 1 website sẽ nhận được

2 cookie khác nhau.

Giống với Cookie, Session lưu trữ dữ liệu trong phạm vi riêng với từng ngư i sử dụng Nhưng không giống với Cookie, Session không giới hạn dung lượng, nếu ta cần lưu trữ hàng Gigabyte dữ liệu, hơn thế nữa Session c thể đưa ra điều đối tượng phức tạp hơn là chuỗi Text Ta c thể lưu trữ một vài đối tượng trong Session Session được tạo ra khi Client bắt đầu c Requset gửi tới Server và sẽ kết thúc khi Client c thao tác hủy Session hoặc sau một th i gian (định trước) không c bất kỳ thao tác nào lên Server.

Trang 38

BÀI TẬP

Bài thực hành này ta sẽ sử dụng Visual Studio để thiết kế web với các trang nhậpliệu, truyền tham số giữa các trang và hiển thị thông tin chi tiết, ta có thể thực hiệncác công việc này theo các bước sau:

Tạo WebForm, đặt tên là DVDCatalog.aspx với giao diện thiết kế như sau:

Trong cửa sổ Solution Explorer, ta bấm chuột phải lên file DVDCatalog.aspx, chọnView Code Trong sự kiện Form_Load ta hãy viết lệnh sau:

Ta bấm đúp vào nút Reset để thực hiện viết mã lệnh như sau:

Ta viết sự kiện cho nút Submit và bấm đúp vào nút Submit để thực hiện lệnh:

Trang 39

Ta tạo mới một Web Form và đặt tên là Bill.aspx Trong cửa sổ Solution

Explorer, ta bấm chuột phải lên file Bill.aspx, chọn View Code Trong sự

kiện Page_Load ta viết mã lệnh sau:

Trong cửa sổ Solution Explorer, bấm chuột phải lên file DVDCatalog.aspx, chọnView in Browser Ta điền đầy đủ các thông tin và bấm nút Submit và xem kết quả

Trang 40

28 BÀI 3: TRUY CẬP DỮ LIỆU BÀI 3: TRUY CẬP DỮ LIỆU 28

BÀI 3: TRUY CẬP DỮ LIỆU

Học xong bài này người học sẽ nắm được các nội dung sau:

- Khái niệm về và ADO.NET, SqlDatasource, LinqDataSource, Linq và phương pháp làm việc của từng đối tượng.

- Biết vận dụng thành thạo những đối tượng này trong bài lập trình liên quan.

3.1 TỔNG QUAN

Phần lớn các ứng dụng hiện nay đều sử dụng cơ sở dữ liệu Có nhiều cách thức

truy cập dữ liệu khác nhau trong các công nghệ của Microsoft như ADO, RDO, DAO,

ODBC Tuy nhiên từ khi NET Framework ra đời thì công nghệ ADO.NET đã được tích

hợp, ADO.NET chứa các lớp cho phép các ứng dụng kết nối với các nguồn dữ liệu

(connect data sources), thực hiện các lệnh (execute commands), quản lý dữ liệu đã ngắt kết nối (manage disconnected data) Với ADO.NET, người lập trình có thể viết ít

mã lệnh thao tác cơ sở dữ liệu hơn so với các công nghệ trước trong các ứng dụngclient-server hoặc các ứng dụng trên desktop

Mặt khác, trong ASP.NET từ phiên bản NET Framework 2.0 trở lên có thêm các thao

tác với cơ sở dữ liệu mà không sử dụng ADO.NET như SqlDataSource, LINQ hoặc

Profiles.

Ngoài ra các ứng dụng truy cập dữ liệu của NET Framework còn có thể truy nhập

vào các nguồn dữ liệu ngoài như tập tin, Stream, XML, Ajax, web services, WCF, data

Ngày đăng: 28/01/2019, 04:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
3. Bill Evjen, Scott Hanselman, Devin Rader (2008). Professional ASP.NET 3.5 In C# And VB Sách, tạp chí
Tiêu đề: Professional ASP.NET 3.5 In C#
Tác giả: Bill Evjen, Scott Hanselman, Devin Rader
Năm: 2008
1. Visual Web Developer, URL: h t t p : / / m sd n . m i cro s oft.co m / e n - us/library/ms178093.aspx Khác
2. Microsoft ASP.NET, URL: http: //www .asp.net/ Khác
4. jQuery, URL: h t t p : // docs. i q uery.com Khác
6. MSDN Online hoặc offine của Microsoft Khác
7. Mã nguồn tham khảo ở h t t p : / / w w w . w r o x . c om Khác
8. Các chủ đề lập trình ở h t t p : / / w w w .co d egur u .com, h t t p : //w ww .cod e proj e ct.com hay h t t p : / / ww w .j a va 2s.c o m Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w