lý thuyết lập trình web

I) Mô hình 3 lớp trong lập trình web

1) Khái niệm

-  Mô hình 3 lớp MVC (Mô hình 3 lớp thực thụ) là viết tắt của: Model - View - Controller.

- 3 thành phần tách biệt: Model - View - Controller, mỗi thành phần này hoạt động tách biệt với một nhiệm vụ duy nhất và không bị phụ thuộc vào các thành phần khác. Những thay đổi trong mỗi thành phần sẽ không ảnh hưởng hoặc ảnh hưởng rất ít đến các thành phần khác. Nhiệm vụ của mỗi thành phần như sau:

+ Model: Model được phân nhiệm vụ truy xuất, xác nhận và lưu trữ dữ liệu vào CSDL của ứng dụng. Tất cả những nhiệm vụ logic đều được thực thi ở model

+  View: View được phân nhiệm vụ hiển thị dữ liệu, và nhận dữ liệu từ phía người dùng thông qua các điều khiển để tương tác với model.

+ Controller: Có thể nói đây là tầng quan trong nhất trong 3 tầng, controller là tầng xử lý trung gian giữa View và Model. Mọi yêu cầu từ phía người dùng được nhận thông qua View (qua FORM HTML hoặc URL) và chuyển sang tầng Controller xử lý. Tại đây nó tương tác tới tầng model để thực hiện các yêu cầu về dữ liệu (như việc gọi các thuộc tính, các phương thức xử lý dữ liệu) sau đó nhận lại các thông tin, dữ liệu được trả về từ model và hiển thị cho người dùng thông qua View.

2) Ưu điểm:

Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình đến tổ chức database. Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp..

Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán náo loạn trong cả chương trình.

Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.

3)  Nhược điểm:

-Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian trong quá trình phát triển.

-Tốn thời gian trung chuyển dữ liệu của các tầng

II) Nguyên tức hoạt động của website

- Từ máy client gõ địa chỉ URL của trang web vào thanh địa chỉ của web browser,khi đó web browser sẽ dựa vào tên domain để tim kiếm ip của web Server (bằng cách dò trên DNS Server)

- Khi có IP, web browser sẽ gửi yêu cầu đến web Server để lấy nội dung trang web

- web Server sẽ xử lý yêu cầu của client: lấy nd của website mà client yêu cầu để gửi client

- Khi nhận đc nd trang web thì web browser sẻ hiện thị lên cho ng dùng

-Trình duyệt web sẽ tách địa chỉ website ra làm 3 phần:

          + Giao thức (http)

          + Máy chủ tên miền (www.webname.com)

          + Tên tệp (file.htm)

- Trình duyệt web liên hệ với máy chủ tên miền (DNS Server) để phân giải tên miền  “www.webname.com” thành địa chỉ IP của web Server (Internet protocol)

- Trình duyệt sẽ gửi tiếp 1 kết nối tới máy chủ địa chỉ IP tương ứng cổng 80

- Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu đến máy chủ, yêu cầu tệp “http://www.webname.com/ file.htm”

- Máy chủ sẽ gửi đoạn text dạng HTML đến trình duyệt của web client.Trình duyệt đọc các thẻ HTML, định dạng trang web và kết xuất ra màn hình web client

III) Web tĩnh

- Trang web tĩnh thường được xây dựng bằng các ngôn ngữ HTML, DHTML,…

- Trang web tĩnh thường được dùng để thiết kế các trang web có nội dung ít cần thay đổi và cập nhật.

- Website tĩnh là website chỉ bao gồm các trang web tĩnh và không có cơ sở dữ liệu đi kèm.

- Website tĩnh thích hợp với cá nhân, tổ chức, doanh nghiệp vừa và nhỏ mới làm quen với môi trường Internet.

Trang web tĩnh và website tĩnh có các ưu và nhược điểm cơ bản dưới đây.

   

* Ưu điểm cơ bản:

Thiết kế đồ hoạ đẹp: Trang Web tĩnh thường được trình bày ấn tượng và cuốn hút hơn trang web động về phần mỹ thuật đồ hoạ vì chúng ta có thể hoàn toàn tự do trình bày các ý tưởng về đồ hoạ và mỹ thuật trên toàn diện tích từng trang web tĩnh.

- Tốc độ truy cập nhanh: Tốc độ truy cập của người dùng vào các trang web tĩnh nhanh hơn các trang web động vì không mất thời gian trong việc  truy vấn cơ sở dữ liệu như các trang web động.

- Thân thiện hơn với các máy tìm kiếm (search engine) : Bởi vì địa chỉ URL của các .html, .htm,… trong trang web tĩnh không chứa dấu chấm hỏi (?) như trong web động. 

- Chi phí đầu tư thấp:  Chi phí xây dựng website tĩnh thấp hơn nhiều so với website động vì không phải xây dựng các cơ sở dữ liệu, lập trình phần mềm cho website và chi phí cho việc thuê chỗ cho cơ sở dữ liệu, chi phí yêu cầu hệ điều hành tương thích (nếu có).

* Nhược điểm cơ bản:

- Khó khăn trong việc thay đổi và cập nhật thông tin

- Thông tin không có tính linh hoạt, không thân thiện với người dùng

- Khó tích hợp, nâng cấp, mở rộng:  Khi muốn mở rộng, nâng cấp một website tĩnh hầu như  là phải làm mới lại website.

4) Web động

- Web động là thuật ngữ được dùng để chỉ những website có cơ sở dữ liệu và được hỗ trợ bởi các phần mềm phát triển web.

- Với web động, thông tin hiển thị  được gọi ra từ một cơ sở dữ liệu khi người dùng truy vấn tới một trang web. Trang web được gửi tới trình duyệt gồm những câu chữ, hình ảnh, âm thanh hay những dữ liệu số hoặc ở dạng bảng hoặc ở nhiều hình thức khác nữa.

- Web động thường được phát triển bằng các ngôn ngữ lập trình tiên tiến như PHP, ASP, ASP.NET, Java, CGI, Perl, và sử dụng các cơ sở dữ liệu quan hệ mạnh như Access, My SQL, MS SQL, Oracle, DB2, 

- Thông tin trên web động luôn luôn cập nhật thông qua việc sử dụng các công cụ cập nhật của các phần mềm quản trị web. Vì vậy website được hỗ trợ bởi cơ sở dữ liệu là phương tiện trao đổi thông tin nhanh nhất với người dùng Internet.

- Web động có tính tương tác với người sử dụng cao. Với web động, Bạn hoàn toàn có thể dễ dàng quản trị nội dung và  điều hành website của mình thông qua các phần mềm hỗ trợ mà không nhất thiết Bạn cần phải có kiến thức nhất định  về ngôn ngữ  html, lập trình web

- Tất cả các website Thương mại điện tử, các mạng thương mại, các mạng thông tin lớn, các website của các tổ chức, doanh nghiệp hoạt động chuyên nghiệp trên Net đều sử dụng công nghệ web động

IV) Mô hình hướng đối tượng

1) Mô hình hướng đối tượng

 - Lập trình hướng đối tượng là 1 phương pháp viết mã cho phép các lập trình viên nhóm các action tượng tự nhau vào các class

Cấu trúc Class

Cú pháp để tạo ra một class khá đơn giản: để khai báo một class ta sử dụng từ khóa class, theo sau từ khóa là tên của class và một cặp ngoặc nhọn ({ }):

<?php

 class MyClass {

// Class properties and methods go here

}

?>

Sau tạo ra class, bạn có thể khởi tạo và lưu trữ chúng trong một biến bằng cách sử dụng từ khóa new:

<?php

$obj= newMyClass;

?>

Để xem nội dung của class, sử dụng hàm var_dump():

<?php

var_dump($obj);

  ?>

Định nghĩa thuộc tính của Class

Để thêm dữ liệu vào một class, người ta sử dụng thuộc tính, hoặc một biến riêng biệt nào đó. Chúng hoạt động tương tự như các biến thông thường, chỉ khác một điều là chúng đang liên kết với object và vì thế để có thể truy cập và sử dụng được, chúng ta phải thông qua object hay nói cách khác là sử dụng object.

<?php

class MyClass

{

    public $prop1 = "I'm a class property!";

}

$obj = new MyClass;

var_dump($obj);

?>

Để đọc thuộc tính này và xuất chúng ra trình duyệt, chúng ta sẽ phải tham chiếu chúng thông qua các object:

<?php

echo $obj->prop1; 

?>

Nếu chúng ta không khai báo object, chương trình sẽ không thể xác định được thuộc tính đó thuộc object nào (vì object là đại diện cho class). Sử dụng dấu mũi tên (->) là một cấu trúc của Hướng Đối Tượng, để một object có thể truy cập được nội dung của thuộc tính và phương thức trong class.

<?php

class MyClass

{

    public $prop1 = "I'm a class property!"; //object

}

$obj = new MyClass;

echo $obj->prop1; // Xuất thuộc tính ra trình duyệt

?>

Định nghĩa Phương thức của Class

Phương thức: là các hàm riêng biệt của class. Các action riêng lẻ mà một object sẽ thực thi, thì được định nghĩa bên trong class như là các phương thức.

 

<?php

class MyClass

{

    public $prop1 = "I'm a class property!";

    public function setProperty($newval)  //phương thức

    {

        $this->prop1 = $newval;

    }

    public function getProperty()         //phương thức

    {

        return $this->prop1 . "<br />";

    }

}

$obj = new MyClass;

echo $obj->prop1;

?>

 

2) Các đối tượng trong ASP: Request, Response, Session, Application, Dictionary, Server

a) Đối tượng Request

   Request và Response là 2 đối tượng được dùng nhiều nhất trong lập trình ASP, dùng trao đổi dữ liệu giữa trình duyệt và server. Request cho phép lấy về các thông tin từ client. Khi browser gửi một yêu cầu trang web lên server ta gọi là 1 request

Chúng ta thường sử dụng các lệnh request sau:

+ Request.QueryString: Cho phép server lấy về các giá trị được gửi từ người dùng qua URL hoặc form (method GET).

request.querystring("tên biến")

+ Request.Form: Cho phép server lấy về các giá trị được gửi từ người dùng qua form (method POST).

Request.form("User")

b) Đối tượng Response

   Đối tượng Response dùng để gửi các đáp ứng của server cho client.

Chúng ta thường dùng một số lệnh Response sau:

+ Response.Write: Đưa thông tin ra màn hình trang web

<%response.write "Hello"%>

+ Response.Redirect:Chuyển xử lý sang một trang Asp khác.

<% Response.redirect "error.asp" %>

+ Response.End: Ngừng xử lý các Script. Dùng lệnh này khi muốn dừng xử lý ở một vị trí nào đó và bỏ qua các mã lệnh ASP ở phía sau. Đây là cách rất hay dùng trong một số tình huống, chẳng hạn như debug lỗi

c) Đối tượng Session

    Session là một phiên làm việc giữa từng người dùng và web server, nó bắt đầu khi người đó lần đầu tiên truy cập tới 1 trang web trong website và kết thúc khi người đó rời khỏi website hoặc không tương tác với website trong một khoảng thời gian nhất định (time out). Giá trị của biến kiểu session có phạm vi trong tất cả các trang ASP của ứng dụng, nhưng không có tác dụng đối với phiên làm việc khác.

   Sử dụng biến session sau đây đếm số lần 1 người đã truy cập vào trang web

<% session("x")=session("x")+1 %>

Server kết thúc và hủy bỏ đối tượng session khi

- Người dùng không triệu gọi các trang của ứng dụng hoặc cập nhật làm mới (refresh) lại thông tin của trang trong một thời gian nhất định. Khi một session hết thời gian hiệu lực nó sẽ được xem như hết hạn sử dụng ,tất cả các biến lưu trong session và bản thân session sẽ bị hủy bỏ. Có thể kiểm tra và tăng giảm thời gian Timeout của Session tính bằng giây như sau:

<%

Session.Timeout = 500

%>

- Trang ASP gọi đến phương thức Abandon của Session .

<%

Session.Abandon

%>

Việc khởi tạo và kết thúc 1 biến session có thể viết trong các hàm sự kiện Session_OnStart và Session_OnEnd được định nghĩa trong file global.asa

d) Đối tượng Application

Application đại diện cho toàn bộ ứng dụng, bao gồm tất cả các trang web trong website. Để lưu trữ những thông tin có tác dụng trong toàn ứng dụng, tức là có giá trị trong tất cả các trang asp và tất cả các phiên, người ta dùng đối tượng Application

Điểm khác của biến application so với biến session là session chỉ có tác dụng đối với mỗi phiên, còn biến application có tác dụng với mọi phiên.

Việc khởi tạo và kết thúc 1 biến application có thể viết trong các hàm sự kiện Application_onStart và Application_onEnd được định nghĩa trong file global.asa

- Khóa Application: Do biến application có thể được dùng chung bởi nhiều phiên nên sẽ có trường hợp xảy ra xung đột khi có 2 phiên cùng thay đổi giá trị một biến application.

Để ngăn chặn điều này chúng ta có thể dùng phương thức Application.lock để khóa biến application trước khi thay đổi nó. Sau khi sử dụng xong biến này có thể giải phóng khóa bằng phương thức application.unlock.

e) File Global.asa

File này là file tùy chọn chứa các khai báo đối tượng, biến có phạm vi toàn ứng dụng. Mã lệnh viết dưới dạng Script. Mỗi ứng dụng chỉ được phép có nhiều nhất 1 file Global.asa, nằm ở thư mục gốc của ứng dụng. Người ta thường dùng global.asa trong trường hợp muốn có những xử lý khi một session bắt đầu hay kết thúc, một application bắt đầu hay kết thúc, thông qua các hàm sự kiện :

Application_Onstart : hàm sự kiện này xảy ra khi ứng dụng asp bắt đầu hoạt động, tức là khi người dùng đầu tiên truy cập tới trang web đầu tiên khi ứng dụng hoạt động.

Session_Onstart: hàm sự kiện này xảy ra mỗi khi có một người dùng mới truy cập vào ứng dụng (bắt đầu 1 session)

Session_OnEnd: hàm sự kiện này xảy ra mỗi khi 1 người dùng kết thúc session của họ

Application_OnEnd: hàm sự kiện này xảy ra khi ứng dụng dừng.

File Global.asa có cấu trúc như sau:

<script>

Sub Application_OnStart

'..........

End sub

Sub Application_OnEnd

'.............

End Sub

Sub Session_OnStart

'.........

Application("x")=Application("x")+1

End sub

Sub Session_OnEnd

'............

End Sub

</script>

f) Đối tượng Dictionary

   Đối tượng Dictionary lưu trữ thông tin theo từng cặp khóa/ giá trị. Nó khá giống với mảng nhưng có khả năng xử lý linh hoạt đối với những cặp dữ liệu có quan hệ kiểu từ điển (cặp khóa/ giá trị ví dụ như : mã Sinh viên/ tên Sinh viên), trong đó khóa được xem là từ cần tra và giá trị chính là nội dung của từ tra được trong từ điển.

Muốn sử dụng đối tượng Dictionary chúng ta phải khởi tạo nó:

<%set d=server.createObject("Scripting.Dictionary")

d.add "work","Lam viec"

d.add "learn","Hoc tap" 'tương tự như mảng nhưng mỗi phần tử là một cặp khóa/giá trị

response.write "work nghĩa tiếng Việt là: "&d.item("work")

response.write "learn nghĩa tiếng Việt là: "&d.item("learn")

set d=nothing

%>

g) Đối tượng Server

Đối tượng Server được dùng để truy cập các thuộc tính và phương thức của server .Ta thường dùng 2 lệnh sau

- Server.CreateObject:Khởi tạo 1 đối tượng.

Ví dụ:

Tạo một đối tượng Connection:

<%Set conn=Server.CreateObject("ADODB.Connection")%>

Tạo một đối tượng Dictionary:

<%set d=server.createObject("Scripting.Dictionary")%>

- Server.Mappath: Biến đường dẫn tương đối thành tuyệt đối.

Ví dụ:

<%str= server.mappath("nhanvien.mdb")

Response.write str%>

Thường áp dụng server.mappath trong những trường hợp xử lý đường dẫn tương đối, ví dụ là chuỗi kết nối vào database

connstr="provider=microsoft.jet.oledb.4.0; data

source="&server.mappath("nhanvien.mdb")&";"

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #hjhj