V. Lựa chọn công nghệ:
7. Đối tợng Session:
Cho phép tạo ra các biến ứng với từng ngời dùng. Chẳng hạn biến có tên là UserName, ứng với mỗi user có một giá trị cụ thể khác nhau, phân biệt. Nhng khi sử dụng thì tổng quát cho các user. Thực ra mỗi biến sẽ đợc server phát sinh và gán cho nó một giá trị định danh GUID (Globally Unique Identifier, 128 bit) và gửi tới Browser. Browser sẽ lu trữ GUID đó và sử dụng để yêu cầu dữ liệu từ biến có GUID tơng ứng trên Server.
<% Session(“Company”) = “NewTech”
Session(“Email”) = “leha@hotmail.com” %> My Company : <% Session(“Company”) %>
Email : <% Session(“Email”) %>
Các biến Session này sẽ bị huỷ bỏ sau một khoảng thời gian (khoảng 20’) ngời dùng thôi truy xuất các trang web trong th mục web.
Chú ý là trong file global.asa => cho pháp đặt các biến, code vào các thủ tục Session_OuStart và Session OuEnd. Ví dụ:
<SCRIPT LANGUAGE = VBScript RUNAT = Server> Sub Session_OuStart Session(“Company”) = “VASC” Session(“Email”) = “thanhha@vasc.vnn.vn” End sub </SCRIPT> 8. Đối tợng Request:
Để gửi dữ liệu lên Server, ta sử dụng Form trong trang Web. Tên của các đồi tợng web nh Text, Button nằm trong form sẽ đợc dùng nh tên biến khi phân tích, lấy dữ liệu trên Server. Trong form có button kiểu Submit để ngời dùng đẩy dữ liệu lên Server.
Form có hai thuộc tính là Action và Method. Action quy định file (.asp) mà sẽ đón nhận và xử lý dữ liệu đẩy lên. method quy định cách thức gửi dữ liệu; nếu là POST thì tất cả dữ liệu trong form sẽ đóng gói và đẩy lên Server; Nếu là GET thì dữ liệu đợc gửi đi nh một phần của URL, thờng là sau dấu “?”.
<Form Method = “POST” Action =
“http://www.vnn.vn/data.asp”>
Kiểu gửi dữ liệu GET cũng có thể lợi dụng để gửi đi dới dạng một link.
< A href =
“ http://www.vnn.vn/data.asp?name=ha&company=VASC” >Test</a>
Gửi theo GET thì độ lớn bị hạn chế và khơng che dấu dữ liệu.
Để lấy dữ liệu ta dùng phơng thức của đối tợng Request. S = Request.Form(“Name”)
<=> S = Request(“Name”)
Trong trờng hợp dữ liệu đợc đa lên từ 1 hyperlink, có thể dùng:
S = Request.QueryString(“Name”) <=> S = Request(“Name”)
Đối tợng Request cũng cho phép lấy giá trị các biến mơi trờng nh LOGON_USER, HTTP_USER_AGENT, ví dụ:
Request.ServerVariables(“LOGON_USER”)
Request.ServerVariables(“HTTP_USER_AGENT”)
9. Đối tợng Reponse:
Đối tợng này quản lý tất cả dữ liệu, nội dung sẽ đợc gởi cho Browser từ ASP.
<% = Company%>
<=> <% Reponse.Write Company %>
Reponse cung cấp 1 thuộc tính là Expires, quy định thời gian (phút) mà trang Web chứa trong cache của IE. Vậy, nếu đặt dịng <% Response.Epires = 0 %> thì trang Web sẽ khơng chứa trong cache của IE.
10. Đối tợng Server:
Đối tợng Server cung cấp hàm CreateObject, để tạo ra các đối t- ợng (instance) của Active X. Tham số truyền vào là ProgID (Program Identifier) của Component cần tạo instance.
Set MyObject = Server.CreateObject(“Mail.Connector”) Đoạn mã sau in ra các biến Server :
<% = name %> <% = Request. ServerVariables(name) %>
<% Next %>
11. File Global.asa:
ứng dụng web = tập các trang Web, asp trong một th mục web và các th mục con.
File Global.asa xác định khởi đầu và kết thúc của một ứng dụng web cũng nh của các session của từng user đơn thể đối với ứng dụng.
File này cho phép đặt 4 thủ tục vào: Session_OnStart, Session_OnEnd,
Application_OnStart, Application
_OnEnd.
Session_OnStart: thực hiện lần đầu tiên khi có một user yêu cầu trang web trong ứng dụng. (ứng với user đó)
Session_OnEnd: thực hiện khi user thoát khỏi ứng dụng hoặc timeout.
Application_OnStart: thực hiện 1 lần khi trang web đầu tiên của ứng dụng đợc chạy lần đầu tiên bởi bất kỳ user nào.
Application _OnEnd: thực hiện một lần khi web server shutdown hoặc khi tất cả các session đã đóng.
12. Các phơng thức và thuộc tính của một số đối tợng:
Reponse:
• Collection: Cookies, form, ChentCertificates, QueryString, ServerVariables
• Properties: Buffer, Charset, ContentType, Expires, ExpiresAbsolute, IsClientConnectied, Status, Pics, TotalByte.
• Method: AddHeadder, AppendToLog, BinaryWrite, Clear, End, Flush, Redirect, Write, BinaryRead.
Server
• Properties: ScriptTimeout
• Method: CreateObject, HTMLEncode, MapPath,
URLEncode. Application
• Collection: Contents, StaticObject. • Method: Lock, Unlock
• Events: Application_OnStart, Application _OnEnd. Session
• Collection: Contents, StaticObject. • Method: Abandon
• Properties: SessionID, TimeOut, CodePage, LCID • Events: Session_OnStart, Session_OnEnd
13. Sử dụng Cookies:
Dùng đối tợng Request để nhận giá trị Cookies. Dùng đối tợng Reponse để đặt giá trị Cookies.
Cookie có thể chỉ một giá trị, nếu nhiều giá trị thì phải dùng nhiều key.
Ex:
<% Reponse.Buffer = True %> <% Dim dLastVisited
dLastVisited = Request.Cookies(“LastVisit”) If dLastVisited = Empty Then
Reponse.Write “Welcome! This is your first visit” Else
Reponse.Write “Your last visited on” & dLastVisited End If Reponse.Cookies(“LastVisit”) = Now() Reponse.Cookies(“LastVisit”).Expires = “December 31,2000” Session.Abandon %>
Session.Abandon thoát khỏi session, khơng cịn lại biến session nào.
14. Gọi Stored Procedure trong ASP
<% Set Cnn1 = Server.CreateObject(“ADODB.Connection”) StrCnn = “driver = {SQL Server}; Server = smas; uid = sa; pwd= ; database= pubs”
Cnn1.Open strCnn Et sp = CreateObject(“ADODB.Command”) Set sp.ActiveConnection = Cnn1 Sp.CommandType = adCmdStoredProc Sp.CommandText = “sp_Help” Set pm = sp.CrateParameter(“objname” = 200, 1, 92, “authors”) Sp.parameters.Append pm Set rs = sp.Excute() Do Until rs is Nothing
Reponse.Write “<Table border = 1 bgColor = White><TR>” Call PrintHeadings Call PrintAllRecordsInRS Reponse.Write “</Table><BR><BR>” Set rs=rs.NextRecordSet Loop
Call CleanUp %>
<% Sub PrintHeadings()
For each hdFld in rs.Fields
Reponse.Write “<TH>” & hdFld.Name & “</TH>” Next Reponse.Write “<TR>” End sub Sub printAllRecordsInRS() Do until rs.EOF
For each fld in rs.Fields
Reponse.Write “<TD>” & fld Next Reponse.Write “<TR>” Rs.MoveNext Loop End Sub Sub CleanUp() Set rs = nothing Cnn1.Close Set Cnn1 = nothing End sub %> Tóm lại các bớc thực hiện:
- Tạo một kế nối Connection, active nó.
- Tạo đối tợng kiểu Command, gán nó với một Connection đã kích hoạt (thuộc tính ActiveConnection), CommandText: tên thủ tục;
- Tạo ta đối tợng tham số, bằng phơng thức CreateParameter để truyền tham số cho thủ tục.
- Thực thi và sử dụng kết quả.
15. Các hàm VBScript (1.0)
Abs Asc Atn Cbool
Cbyte Ccur Cdate CDbl
Chr Clnt Cos Csng
Cstr Date DateSerial DateValue
Day Exp Fix Hex
Hour InputBox InStr Int
IsArray IsDate IsEmpty IsNull
IsNumeric IsObject LBound Lcase
Left Len Log LTrim
Mid Minute Month MsgBox
Now Oct Right Rnd
Rtim Second Sgn Sin
Space Sqr StrComp Tan
Time TimeSerial TimeValue Trim
Ubound Ucase VarType Weekday
Year
16. Gửi mail
Gửi mail theo giao thức SMTP Dim objNewMail
Set objNewMail =
Server.CreateObject(“CDONTS.NewMail”)
ObjNewMail.send sFromName, sToName, sSubject, sMsg Set objNewMail = nothing
17.Các lệnh ASP và VBScript (1.0)
Call Dim Do... loop Empty
Erase Exit False For... next
If... then... Else
Nothing Null On Error
Option Explicit
Randomize Redim Rem
Select case Set Sub True
While...wend
Color Comparion Date and Time
Date format File Input/Output Miscellaneous
Msgbox String Var type
19. Các hàm:
Array Create Object DateAdd
DateDiff DateParl Filter
FormatCurrency FormatDatetime FormatNumber
FormatPercent GetObject InstrRev
Join LoadPicture MonthName
Replace RGB Round ScriptEngineMajorVer sion ScriptEngineBuilVe rsion ScriptEngine ScriptEngineMinorVer sion Split StrReverse TypeName WeekDayName 20. Các đối t ợng và hàm: (version 2.0)
Object: Dictionary; FileSystemObject; TextStream Method:
Add Close CreateTextFile
FileExists Items Key
OpenTextFile Read ReadAll
ReadLine Remove RemoveAll
Skip SkipLine Write
WriteBlankLines WriteLine
Các properties:
AtEndOfLine AtEndOfStream Column
CompareMode Count HelpContext
HelpFile Item Key
Line
Các lệnh:
For each... Next Public
21. Đối tợng Error: (1.0)
Properties: Decription, Number, Source Method: Clear, Raise
22. VBScript 3.0
Collection: Drives, Files, Folders
Constant: DriveType, SpecialFolder, File Attribute
Properties:
Attributes FileSystem ShareName
AvailableSpace FileSpace ShortName
DateCreated IsReady ShortPath
DateLastAccessed IsRootFolder Size
DateLastModified Name SubFolder
Drive ParentFolder TotalSize
DriveLetter Path Type
Drives RootFolder VolumeName
DriveType SerialNumber
Files
Method:
AddFolder BuildPath Copy
CopyFile CopyFolder CreateFolder
Delete DeleteFile DeleteFolder
DriveExists FileExists FolderExist
GetAbsolutePathNa me
GetBaseName GetDrive
GetDriveName GetExtensionName GetFile
GetFileName GetFolder GetParentFolderNa
me
GetSpecialFolder GetTempName Move
MoveFile MoveFolder OpenAsTextStream
23. Sử dụng Transaction:
• Dịng đầu tiên phải là: <% @TRANSACTION = REQUIRED%>
• Có thể điều chỉnh chấp nhận hoặc huỷe bỏ giao dịch bằng cách dùng SetComplete anh SetAbort từ đối tợng ObjectContext.
• Nếu giao dịch thành công (commited), hàm sự kiện OnTransacton_Commit() đợc thực thi.
• Nếu giao dịch thất bại (Aborted), sự kiện OnTransacton_Abort đợc thực thi.
• Yêu cầu MSDTC (Distributed Transaction Coordinator)
Ví dụ 1:
<% @TRANSACTION = REQUIRED language = “VBSCRIPT”%>
<HTML><HEAD><TITLE> Transaction Demo</TITLE> </HEAD><BODY>
This is Demostration of using transaction with HTML. <BR> For this example to work, MSDTC must be running on the web Server. <BR>
This next line will genegate an error. <% set x = boo.boo %>
<BR> Does this line print ? </BODY> </HTML> <%
Sub OnTransacton_Abort()
Reponse.Write “<BR><B> Error detected. Attemting to Recover</B>”
‘Place Error handling code here End Sub
Reponse.Write “<BR><B>Congratulations! The transaction was commited </B>”
End sub %> Ví dụ 2: <% @TRANSACTION = REQUIRED%> <% Reponse.Buffer = True Set oCustomer = Server.CreateObject(“ExplorationAir.Customer”) Mites = 6000 Session(“CustomerID”) = oCustomer.Create(cStr(Session(“Lastname”)), cStr(Session(“Firstname”)), cStr(Session(“Password”)), cStr(Session(“Street”)), cStr(Session(“City”)), cStr(Session(“State”)), cStr(Session(“Zip”)), cStr(Session(“Email”)), Miles)
On error Resume next
FFComponent =
Application(“FrequentFlyerComponent”) +
“.FrequentFlyer”
Set oFrequentFlyer =
Server.CreateObject(“FFComponent”)
‘This prevents an eror if the FrequentFlyer component isn’t installed
If NOT oFrequentFlyer is Nothing Then ‘Add registration bonus points oFrequentFlyer.Create
clng(Session(“CustomerID”)), “Registration”, “None”, clng(Miles) End if Function OnTransactionCommit() Response.Clear Response.Redirect(“RegisterSuccess.asp”) Response.Flush() End Function Function OnTransactionAbort()
Response.Write “Error!” + “Error Code =” + cStr(err.Number)
Response.Write “Error Source: “ + cStr(err.Source) End Function
%>
24. Sử dụng biến Application:
Dùng đối tợng Application để tạo ra các biến kiểu Application. Những biến kiểu này là toàn cục đối với 1 ứng dụng Web cho tất cả các user, đợc duy trì kể cả khi stop web server.
Giả sử file a.asp có đoạn mã: <%
If IsObject(Application(“TestConn”)) Then Set oConn = Application(“TestConn”)
sSQL = “Select * from Products where ProductID < 5” Else
Set oConn =
OConn.Open “TestODBC”, “”, “”
Set Application(“TestConn”) = oConn
sSQL = “Select * from Products where ProductID > 20”
End if
Set RS = Server.CreateObject(“ADODB.RecordSet”) RS.open sSQL, oConn, 3, 3
%>
Khi trang này (a.asp) đợc truy xuất lần đầu tiên thì biến Application là TrstConn đợc tạo ra. Kể từ giờ tất cả các file .asp của ứng dụng này có thể sử dụng biến TestConn.
Đoạn mã sau của b.asp hoạt động:
<% Set oConn = Application(“TestConn”) ...
RS.Open sSQL, oConn, 3, 3 %>
*/ Để huỷ một biến Application: set Application(“TestConn”) = nothing
25. Sử dụng biến Session:
Giống nh các biến Application, nhng chỉ có phạm vi trong 1 session. Chú ý: 1 session chỉ trong một phiên làm việc giữa browser với web server. Nếu đóng browser lại thì các biến session mất đi. Biến session cũng có giá trị tồn cục trong 1 ứng dụng web ứng với mỗi user.
<%
If IsObject(Session(“TestConn”)) Then Set oConn = Session (“TestConn”) Else
Set oConn = Server.CreateObject(“ADODB.Connection”)
OConn.Open “TestODBC”, “”, “” Set Session(“TestConn”) = oConn End if
%>
26. Chèn file (Include)
Để include file sử dụng cú pháp: <!--#include file = “a.asp”>
27. Khai báo biến trong global.asa
Các biến cũng phải ở dạng biến Application hoặc biến Session. Có thể đặt vào một đoạn bất kỳ hoặc trong các thủ tục Application_OnStart, Session_OnStart, giải phóng biến ở Application_OnEnd hoặc Session_OnEnd
Ex: đoạn mã sau đặt trong thủ tục Application_OnStart Sub Application_OnStart
Set oConn =
Server.CreateObject(“ADODB.Connection”) OConn.Open “MyTest”, “”, “”
Set Application(“oConnection”) = oConn End sub
Và trong thụ tục Application_OnEnd Sub Application_OnEnd
OConn.Close
Set oConn = nothing
Set Application(“oConnection”) = nothing End sub
Trong 1 file asp khác, ta có thể sử dụng lại
RS.Open sSQL, Application(“oConnection”), 3, 3.
V.3 Nhận xét riêng về ASP.
So với một số ngơn ngữ lập trình khác thì ASP dễ học hơn, việc sử dụng ngơn ngữ VBScript có các câu lệnh tơng tự visual basic nên dễ thực hành và mất ít thời gian. Với ASP các nhà phát triển ứng dụng Web dễ dàng tiếp nhận cơng nghệ này và nhanh chóng tạo ra các sản phẩm có giá trị, dần dần đội ngũ lập trình ngày càng lớn mạnh hơn.
Các trang ASP khơng cần phải hợp dịch. Có thể khai thác cơ sở dữ liệu với SQL server, ngồi ra nó cịn có tính năng mở cho phép các nhà lập trình xây dựng các thành phần và đăng ký sử dụng dễ dàng.
Tuy nhiên ASP cũng có những khuyết điểm của nó: Chỉ chạy và tơng thích trên mơi trờng windown.
Vì chạy trên các server với hệ điều hành Microsoft nên tính bảo mật
khơng cao.
So với một số ngơn ngữ thì ASP chạy chậm hơn.
Mặc dù ASP có những khuyết điểm trên nhng qua tìm hiểu và những bài học trên lớp em nhận thấy ASP là ngơn ngữ thích hợp để thiết kế trang Web của mình. Trong trang web này em dó cố gắng sử dụng hết vốn kiến thức về ASP của mình, mặc dù đó có thể chỉ mới là những kiến thức cơ bản.
VI. Thiết kế modul chơng trình:
VI.1. Phân cấp menu:
SV: MSV: 14102189
Hệ thống trang WebShoes
Hệ thống trang WebShoes
Trang chủ
Trang chủ GiầyNamGiầyNam
Góp ý Góp ý Quản trị Quản trị Đăng nhập Đăng nhập Thêm Thêm Sửa Sửa GiầyNữ GiầyNữ GiầyMới GiầyMới
VI.2. Mơ hình :
Banner
Hơm nay: Trang chủ Góp ý Quản trị
Menu
Thông tin giới thiệu và hình ảnh
Hình ảnh
quảng cáo
Tại Trên gọi: < !--# Include file=”dtrang.asp”-- > Trái gọi: < !--# Include file=”btrai.asp”-- > Phải gọi: < !--# Include file=”bphai.asp”-- > Dới gọi: < !--# Include file=”ctrang.asp”-- >
VI.3. Modul chính:
Ban quản lý cập nhập tra cứu dữ liệu thông tin về chủng loại, sản phẩm...
Tra cứu thơng tin về giầy: tìm kiếm và trả lời thơng tin. Từ modul chính ta có thể lựa chọn 1 trong 2 modul nhỏ, modul nào đợc chọn thì chơng trình điều khiển sẽ trao quyền điều khiển cho modul đó. Kết thúc thực hiện modul con quyền điều khiển trả về cho chơng trình chính đồng thời chuyển giao những thơng tin cần thiết cho hệ thống để phục vụ những modul khác.
VI.4. Một số modul của hệ thống:
VI.4.1. Đa ra danh mục sản phẩm:
- Dữ liệu vào: thông tin về chủng loại, sản phẩm, giá... - Dữ liệu ra: danh sách các sản phẩm theo từng chủng loại. - Mô tả:
+ Mở giao diện chủng loại muốn xem nh : giầy nam, giầy nữ, giầy mới.
+ Mở kho: banggiay.
+ Khởi tạo chơng trình duyệt sản phẩm + Chuadung:=true + While chuadung do Giới thiệu các loại giầy Cập nhập , tra dữ liệu hệ thống Tra cứu thông tin về giầy
+ Với mỗi chủng loại hàng liệt kê các sản phẩm ra màn hình
+ Đóng giao diện
VI.4.1. Modul cập nhập sản phẩm:
- Dữ liệu vào: thông tin mới về chủng loại, giá cả, sản phẩm giầy.
- Dữ liệu ra : thông tin về sản phẩm - Mô tả:
+ Mở giao diện cập nhập sản phẩm + Mở kho dữ liệu banggiay
+ Khởi tạo chơng trình cập nhập sản phẩm + Chuadung:=true
+While chuadung Do
+ Với mỗi chủng loại tạo bản ghi mới bao gồm: mã chủ đề, mã sản phẩm, tên sản phẩm...
+ Lu vào kho dữ liệu + Đóng kho
+ Đóng giao diện
VI.4.2. Modul tra cứu sản phẩm:
- Dữ liệu vào: mục chủ đề
- Dữ liệu ra: thông tin về các sản phẩm - Mô tả:
+ Mở giao diện tra cứu sản phẩm + Mở kho dữ liệu
+ Xác định chủng loại + chuadung:=true + While chuadung Do
+ duyệt danh sách theo chủ đề đa ra màn hình + Đóng kho dữ liệu
+ Đóng giao diện
VII. Hình ảnh một số giao diện chơng trình:
Giao diện trang chủ:
Trang chủ sẽ hiển thị tất cả những yếu tố liên quan đến giầy thuộc nhiều chủng loại. Ngời xem quan tâm đến vấn đề nào thì có thể kích vào để xem mục đó. Tại đây ngời quản trị cũng có thể đăng nhập để truy cập vào hệ thống.
Kết luận
Đề tài trang web giới thiệu mặt hàng của em mặc dù đã tham khảo qua một số tài liệu nhng do còn nhiều bỡ ngỡ trên thực tế cộng thêm kiến thức về mặt chuyên môn cha đợc đầy đủ, sức trừu tợng, sự phức tạp của đề tài vẫn là điều khiến em cần phải học hỏi và tham khảo nhiều tài liệu hơn nữa.
Chính vì vậy mà trang web vẫn cịn nhiều thiếu xót và mới chỉ dừng lại ở việc áp dụng từ những bài giảng trên lớp và đã đợc thu lại phạm vi so với công việc trên thực tế. Vì cờng độ bài làm có giới hạn, thời gian tìm hiểu, khảo sát lại hạn chế nên không thể nêu ra đầy đủ tất cả các chức năng và sự liên kết của chúng để tạo ra một hệ thống hồn hảo. Chính vì vậy chắc chắn bài làm của nhóm em khơng thể khơng tránh khỏi sự sai sót, thiếu hụt thơng tin...
Qua đề tài này em đã phần nào nắm tốt hơn việc phân tích và thiết kế một hệ thống cụ thể trên thực tế tạo ra những