MỤC LỤC
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 7
I. Bối cảnh 7
II. Ý nghĩa 7
III. Phương pháp thực hiện 7
IV. Phạm vi thực hiện của đề tài 9
CƠ SỞ LÝ THUYẾT 10
I. GIỚI THIỆU JSP 10
I.1. Giới thiệu 10
I.2. Biên dịch trang JSP 10
I.3. Các Đối Tượng Mặc Định Của Trang JSP 12
II. GIỚI THIỆU VỀ STRUTS FRAMEWORD 14
II.1. Giới thiệu 14
II.2. Cách làm việc của struts 17
II.3. Các thành phần của struts 20
III. NGÔN NGỮ JAVASCRIPT 30
IV. CÔNG NGHỆ AJAX 31
IV.1. Giới thiệu 31
IV.2. Cơ chế và nguyên lý hoạt động 31
IV.3. Các khái niệm liên quan Ajax 33
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 37
I. Phân tích yêu cầu 37
I.1. Yêu cầu trang web 37
I.2. Yêu cầu người dùng 37
I.3. Yêu cầu quản lý 38
II. Đặc tả yêu cầu 39
II.1. Mô hình USE-CASE của hệ thống 39
II.2. Đặc tả các USE-CASE của hệ thống 39
CÀI ĐẶT VÀ TRIỂN KHAI CHƯƠNG TRÌNH 55
I. Thiết kế cơ sở dữ liệu 55
I.1. Mô hình ý niệm dữ liệu 55
I.2. Chi tiết về các bảng trong cơ sở dữ liệu 56
I.3. Sơ đồ quan hệ giữa các bảng 60
II. Thiết kế chương trình 61
II.1. Sơ đồ phân rã chức năng 61
II.2. Một số môdun chính 62
KẾT QUẢ THỬ NGHIỆM 67
I. Trang chính 67
II. Trang danh mục khách sạn 68
III. Trang chi tiết một khách sạn 69
IV. Trang ẩm thực Đà Nẵng 70
V. Phần quản lý của người dùng 71
VI. Trang quản lý thông tin khách sạn đăng 71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73
I. Những kết quả đã đạt được 73
II. Tính khả thi, ưu điểm của website 73
III. Những hạn chế của đề tài 74
IV. Hướng phát triển đề tài 74
75 trang |
Chia sẻ: netpro | Lượt xem: 4185 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng Struts Framework xây dựng trang vàng cho du lịch Đà Nẵng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
việc với những file này có thể không giống như “Phát triển JAVA”. Dùng nó chỉ để làm cho ứng dung của bạn dễ quản lý hơn. Trong phần này chúng ta chỉ xem một chút về công dụng của nó đối với ứng dụng của bạn.
II.3.1.1 Web.xml file
Mục đích và định dạng của việc cài đặt ứng dụng web được tạo bởi Sun Servlet. Về căn bản, nó dùng để nói cho thành phần servlet biết làm thế nào để cấu hình các servlet và một vài đối tượng cấp cao hơn mà ứng dụng bạn cần.
Struts framework bao gồm hai thành phần mà cần được cấu hình thông qua ứng dụng của bạn đó là ActionServlet và sự lựa chọn thư viện tag. Trong hầu hết các ứng dụng đều sử dụng thư viện tag, nhưng đó không phải là yêu cầu bắt buộc. Ứng dụng mà chỉ dùng XLST và khung mẫu Velocity thì không cần phải cấu hình những thư viện tag này.
Một ví dụ về web.xml
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"">
action
org.apache.struts.action.ActionServlet
application
Application
config
/WEB-INF/conf/struts-config.xml
debug
2
detail
2
2
action
*.do
index.jsp
/tags/struts-bean
/WEB-INF/lib/struts-bean.tld
/tags/struts-html
/WEB-INF/lib/struts-html.tld
/tags/struts-logic
/WEB-INF/lib/struts-logic.tld
II.3.1.2 Struts-config.xml
File này để tải một vài thành phần struts. Cùng với nhau, những file này sẽ tạo nên cấu hình của struts. File cấu hình struts và ActionServlet làm việc cùng nhau để tạo nên lớp điều khiển cho ứng dụng của bạn. Trong phần này chúng ta sẽ khám phá vì sao chúng ta câng file struts-config.xml.
Struts-config sẽ xuyên suốt ứng dụng của bạn. Nó biết được những trường nào trên form của bạn. Nó biết nơi mà trang JSP có thể được tìm thấy. Nó biết về mọi Action mà ứng dụng bạn thực hiện và biết chính xác các nguồn mà những Action này cần.
Điều này giống như là rất nhiều các thông tin được lưu trữ trong một nơi. Nhưng bằng việc lưu trữ những thông tin này cùng nhau, nhiều lập trình viên cảm thấy ứng dụng của họ dễ dàng được tạo và quản lý.
Nhiều thành phần trong struts được cấu hình là một đối tượng Java. Đối tượng ActionForm để định nghĩa về các trường và form. Đối tượng ActionForward được biết là nơi để tìm kiếm trang JSP. Đối tượng ActionMapping biết cái Form nào và cái Forward nào được dùng với các câu lệnh để ứng dụng bạn có thể hiểu được.
Các thành phần trong struts-config
ActionFrom cung cấp một nơi lưu trữ thông tin được nhập vào với HTTP request. Nhưng để lưu trữ thông tin nhập vào đầu tiên controller phải tạo một ActionForm và lưu chúng vào trong đối tượng request hoặc session, nơi mà phần khác của framework struts như JSP có thể tìm thấy nó.
Struts-config file cung cấp thẻ để liệt kê tất cả các ActionForm được sử dụng bởi modun. Mỗi một ActionFormBean được tạo ra tương ứng với một thẻ .
Dưới đây là ví dụ về khai báo ActionForm
Ví dụ 8 : Ví dụ khai báo ActionForm
<form-bean
name="menuForm"
type="org.apache.struts.scaffold.MenuForm"/>
<form-bean
name="logonForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
ActionForm lưu trữ dữ liệu mà ứng dụng cần. ActionForwards liệt kê danh sách các đường dẫn ứng dụng sẽ dùng. ActionMapping sẽ miêu tả cái gì sẽ vận hành hoặc câu lệnh mà ứng dụng sẽ thực thi.
Đối tường Action sẽ điểu khiển chính xác công việc của một hệ thống. ActionMapping dùng để gói những hệ thống đó chi tiết.
Một chi tiết quan trọng là cái URI nào được dùng để gọi đối tượng Action. Một URI của Action được dùng như một sự xác định logic, hoặc đường dẫn cho ActionMapping. Khi trình duyệt gửi yêu cầu cho 1 URI của Action, ActionServlet sẽ tìm một cái ActionMapping tương ứng. ActionMapping sẽ nói cho Servlet biết cái Action nào sẽ được dùng cho cái URI đó.
Bên cạnh đường dẫn URI và loại Action, ActionMapping còn có một vài thuộc tính khác mà có thể dùng để điều khiển hành vi của đối tượng Action.
Bạn cũng có thể dùng ActionMapping như một forwards đơn giản chuyển đường dẫn sang một đường dẫn khác. Nhưng hầu hết chúng được sử dụng để kết nối đến một đối tượng Action.
Ví dụ 9 : Ví dụ về ActionMapping
<action
path="/logoff"
type="app.LogoffAction"/>
<action
path="/logonSubmit"
type="app.LogonAction"
name="logonForm"
scope="request"
validate="true"
input="/pages/Logon.jsp"/>
<action
path="/logon"
type="app.ContinueAction">
<forward
name="continue"
path="/pages/Logon.jsp"/>
<action
path="/welcome"
type="app.ContinueAction">
<forward
name="continue"
path="/pages/Welcome.jsp"/>
Struts cho phép nhiều moodun dùng chung một Controller Servlet. Mỗi moodun có một cấu hình riêng của nó và có thể phát triển độc lập với các modun khác. Một thẻ cho phép mỗi modun có một sự khác nhau về tham số cấu hình cho ActionServlet.
Dưới đây là một ví dụ thẻ thiết lập nocache và null và load một xử lý yêu cầu tự chọn.
Ví dụ 10 : Ví dụ thẻ controller
<controller
nocache="true"
null="true"
processorClass="com.myCompany.struts.RequestProcessor"/>
Mỗi modun nên có một nguồn thông điệp mặc định. Đây là một thành phần của struts, giống như thư viện tag cho JSP sẽ được dùng khi không có cái nào khác được chỉ định.
Thẻ được dùng để khai báo những dữ liệu mà ứng dụng bạn sẽ sử dụng. Dưới đây là ví dụ về khai báo nguồn thông điệp ảnh.
Ví dụ 11: Ví dụ khai báo nguồn thông điệp ảnh
<message-resources
parameter="resources.application"/>
<message-resources
parameter="resources.image"/>
Nó không thường được dùng cho một Action khi cần một nguồn dữ lieu đặc biệt nào để thực hiện công việc của nó. Nó có thể dùng để tại ra kết nối cơ sở dữ liệu mà không phải dùng DataSource. Nó có thể tạo ra một bean để xài trong form. Nó cũng có thể để đọc một file cấu hình để tạo một loạt đối tượng. Giống như strut-config làm.
Dưới đây là một plug-in để khởi tạo việc xác định tính hợp lệ của dữ liệu.
Ví dụ 12 : Ví dụ Plug-in khởi tạo việc xác định tính hợp lệ của dữ liệu
<set-property
property="pathname"
value="/WEB-INF/validator-rules.xml"/>
<set-property
property="pathname"
value="/WEB-INF/validation.xml"/>
ActionForm
ActionForm là một JavaBean tùy chọn liên kết với một hoặc nhiều ActionMappings . Giống như bean sẽ có các thuộc tính của nó được khởi tạo từ các tham số yêu cầu tương ứng với Action.execute method được gọi.
Khi những thuộc tính của bean được gán dữ liệu, trước khi gọi Action xử lý, thì hàm validatetion sẽ được gọi, điều này để kiểm tra tính hợp lệ của dữ liệu trước khi xử lý. Nếu quá trình kiểm tra tính hợp lệ gặp vấn đề, nó sẽ tạo ra một đối tượng errormessage để thông báo và chuyển về trong chứa form nhập.Nếu hàm validatetion trả về null, có nghĩa là dữ liệu hợp lệ và Action.execute sẽ được gọi.
Để khởi tạo một ActionForm, bạn phải kế thừa từ lớp ActionForm của struts. Với mỗi thuộc tính của lớp nên cung cấp hàm setter và getter để lấy và gán dữ liệu cho các thuộc tính.
Bởi vì ActionForm là một JavaBean cho nên cũng nên kế bởi Serializable , theo yêu cầu của đặc tả JavaBean.
Action
II.3.3.1 Struts Action Class
Lớp Action trong struts được extends từ class org.apache.struts.action.Action.Nó hoạt động như sự gắn kết giữa lớp View và Model. Mặc khác nó cũng truyền dữ liệu từ lớp View đến lớp business xử lý và cuối cùng trả dữ liệu đã xử lý từ lớp bussiness về View.
Lớp Action xử lý các HTTP request, và tạo sự phản hồi từ HTTP response.
Các tham số : mapping : ActionMapping sử dụng để chọn trường hợp này :
form : Tùy chọn ActionForm cho yêu cầu (nếu có)
request : The HTTP request
response : The HTTP response
II.3.3.2 Struts DispathAction Class
Lớp org.apache.struts.actions.DispatchAction cho phép một người sử dụng để thu thập các chức năng liên quan trong một action đơn lẻ. Nó giúp loại bỏ sự cần thiết của việc tạo ra nhiều Action độc lập cho mỗi chức năng. Với các action mà extend từ DispatchAction thì sẽ thực hiện được nhiều hành động phụ thuộc vào tham số truyền từ url mà được điều khiển bởi controller.
Ví dụ 13 : Ví dụ về DispathAction
Định nghĩa form Bean trong struts-config.xml file
Phát triển Action Mapping trong the struts-config.xml
<action path="/DispatchAction"
type=" package.Dispatch_Action"
parameter="parameter"
input="/pages/DispatchAction.jsp"
name="DispatchActionForm"
scope="request"
validate="false">
Phát triển trang jsp
Dispatch Action ExampleDispatch Action ExampleCall Add Section Call Edit Section Call Search Section Call Save Section
II.3.3.3 Struts LookupDispathAction Class
Lớp org.apache.struts.actions.LookupDispatchAction là lớp con của lớp
org.apache.struts.actions.DispatchAction . Nó giống lớp DispatchAction chỉ ngoại trừ là nó sử dụng một Java Map and ApplicationResource.properties to dispatch giao thức.
Ví dụ 14 : Ví dụ về LookupDispathAction
Application.properties Trong cùng cấu trúc thư mục nơi class đã lưu
package.add=addpackage.edit=editpackage.search=searchpackage.save=save
Định nghĩa Message Resources in struts-config.xml
Action Mapping in the struts-config.xml
LookupDispatchAction.jsp
Dispatch Action ExampleDispatch Action ExampleCall Add Section Call Edit Section Call
II.3.3.4 Struts ForwardAction Class
Lớp org.apache.struts.actions.ForwardAction cho phép người dùng để chuyển tiếp yêu cầu đến URL được chỉ định.
Ví dụ 15 : Ví dụ về ForwardAction
Action Mapping trong struts-config.xml
Struts Tags
Struts đưa ra các thư viện thẻ để hỗ trợ việc lập trình View logic trong JSP. Các thư viện thẻ JSP cho phép các JSP author sử dụng các thẻ giống HTML.
+ HTML: Sử dụng để generate các HTML form tương tac với Struts API
+ Bean: Sử dụng để làm việc với các Java bean object trong JSP
+ Logic: Sử dụng để implement các logic điều kiện đơn giản trong JSP
+ Nested: Sử dụng để cho phép các mức nested tùy ý
Để sử dụng các Struts Tags ta phải include :
NGÔN NGỮ JAVASCRIPT
Script có thể xem như một công cụ nhỏ nhằm hỗ trợ ngời lập trình tạo ra các ứng dụng nhanh chóng, đơn giản chứ không mang tính chuyên nghiệp nh một ngôn ngữ lập trình thật sự.
JavaScript là một loại Script cho phép phát triển các ứng dụng trên Internet ở cả phía Client và Server bằng cách viết các chơng trình với cú pháp hoàn toàn giống Java.
+ JavaScript là một ngôn ngữ script, dùng để phát triển các ứng dụng Internet ở Client và Server.
+ JavaScript có thể viết kèm trong file HTML để xây dựng một trang Web chặt chẽ, phong phú về nội dung và hình thức, như kiểm tra tính tơng thích và thông báo lỗi trong quá trình nhập liệu...
Cách viết JavaScript trong một trang HTML như sau:
//Các hàm của JavaScript đặt ở đây
CÔNG NGHỆ AJAX
Giới thiệu
+ “Công nghệ Ajax” chỉ mới xuất hiện vào khoảng tháng 2 năm 2005.
+ Ajax - Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ) là công cụ cho phép tăng tốc độ ứng dụng Web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết thay vì phải tải đi tải lại toàn bộ trang Web.
+ Ajax không phải là một công nghệ đơn lẻ mà nó là tập hợp của nhiều công nghệ.
AsynchronousJavascript + CSS + DOM + XMLHttpRequest
+ Ajax bao gồm:
-Thể hiện Web theo tiêu chuẩn XHTML và CSS.
-Nâng cao tính năng động và phản hồi bằng DOM (Document Object Model).
-Trao đổi và truy cập/tác động lên thông tin, dữ liệu bằng XSL và XSLT.
-Nhận thông tin không đồng bộ (Synchronous) dùng XMLHttpRequest.
-Và tất cả các kỹ thuật trên được liên kết lại với nhau bằng Javascript.
Cơ chế và nguyên lý hoạt động
Cơ chế : Như vậy Ajax nó đóng vai trò như một lớp trung gian giữa giao diện trên trình duyệt và máy chủ xử lý thông tin. Có thể mô tả một cách cụ thể cách thức hoạt động của Ajax như sau :
● Ajax thực hiện tương tác với máy chủ bằng cách sử dụng đối tượng XMLHttpRequest, nhận kết quả trả về dưới dạng XML và phân tích kết quả bằng công nghệ DOM
● Tương tác giữa Ajax và giao diện người dùng được thực hiện thông qua các mã Javascript và XHTML+CSS.
Cơ chế : - Công nghệ Ajax thì sẽ cho phép tạo ra một Ajax Engine. Khi đó các yêu cầu gởi request và nhận Response sẽ do Ajax Engine thực hiện.
- Web server gởi trả dữ liệu dưới dạng XML và Ajax Engine sẽ tiếp nhận, sau đó thực hiện phân tích chuyển hoá thành XHTML+CSS cho trình duyệt hiển thị.
- Các việc này được thực hiện trên Client nên giảm tải rất nhiều cho Server, đồng thời với người sử dụng thì sẽ thấy kết quả hiển thị ngay tức thì mà không cần nạp lại nguyên cả trang.
Nguyên lý hoạt động : Để minh họa cho cơ chế Ajax xin đưa ra hai mô hình tương tác như sau :
+ Mô hình thứ nhất là mô hình tương tác giữa máy chủ và máy khách trong các ứng dụng Web truyền thống .
+ Mô hình thứ hai thể biểu diễn quá trình tương tác giữa máy chủ và máy khách trong các ứng dụng Web có sử dụng công nghệ Ajax.
Hình 3 : Mô hình xử lý của Ajax
+ Một trong những điểm mấu chốt của công nghệ Ajax là không tương tác trực tiếp với máy chủ như truyền thống mà là qua một lớp trung gian của Ajax.
+ Chính điều đó sẽ tạo ra sự ngạc nhiên về cơ chế xử lý này vì sẽ phải qua thêm một lớp trung gian và như vậy thì sẽ làm chậm đi quá trình tương tác.
Tuy nhiên thực tế thì không như vậy, nguyên nhân là :
- Không phải lúc nào cũng cần phải tương tác với máy chủ như trong trường hợp của Gmail, một khi giao diện của Gmail đã được tải về xong thì những tác vụ như chuyển từ thư mục này hay sang xem thư mục khác không nhất thiết phải đòi hỏi gọi lại máy chủ.
- Bằng cách chỉ nhận những thông tin cần thiết (ở dạng XML), dung lượng truyền tải giữa máy khách và máy chủ sẽ giảm đi rất nhiều. Điều này nghĩa là giao diện của ứng dụng chỉ cần tải về một lần (lần đầu)
- Ajax sẽ không phải thực hiện tải lại toàn bộ giao diện đó mỗi khi có tương tác với máy chủ. Thay vào đó Ajax sẽ gởi yêu cầu đến máy chủ và nhận kết quả từ máy chủ về những gì đã thay đổi sau khi máy chủ thực hiện yêu cầu đó.
- Ajax sau đó sẽ thông báo cho phần giao diện (thông qua các lời gọi Javascript) thực hiện các thay đổi tương ứng trên giao diện
- Các tương tác giữa phần giao diện với Ajax là tương tác nội bộ trên trình duỵệt. Việc này giúp cho việc thực hiện các thay đổi được diễn ra rất nhanh (gần như ngay tức thì).
- Vì thế khi duyệt một trang hỗ trợ Ajax, người sử dụng không bao giờ thấy một của sổ trắng (blank) và biểu tượng đồng hồ cát –là những dấu hiệu cho thấy máy chủ đang thực hiện công việc.
Các khái niệm liên quan Ajax
Ngôn ngữ XML
+ XML (Extensible Markup Language) - là một bộ quy luật bao gồm các quy tắc để chia một tài liệu ra làm nhiều phần, rồi đánh dấu và ráp các phần khác nhau lại để dễ nhận diện chúng.
+ Tổ hợp Web toàn cầu W3C gọi XML là “một cú pháp thông dụng cho việc hiển thị cấu trúc trong dữ liệu”.
+ Mục tiêu chính của XML là tách biệt nội dung và dạng biểu diễn của văn bản (Baldwin).
+ Cùng một nội dung ta có thể biểu diễn dưới nhiều hình thức khác nhau : chẳng hạn in ra giấy hoặc đưa lên Web, và có thể áp dụng nhiều thuộc tính trên văn bản như in đậm, in nghiêng, in gạch dưới, dùng màu,...
+ Ngoài ra nhờ việc sử dụng các ký tự thông thường mà con người có thể hiểu được nôi dung của văn bản ngay khi còn đang ở dạng thô, chưa được áp dụng bất kỳ dạng biểu diễn nào
Một trang XML cần phải theo đúng các quy luật sau đây :
+ Trang XML phải bắt đầu bằng câu tuyên bố XML
+ Mỗi bộ phận, gọi là “element” phải nằm giữa Tag Pair.
+ Nếu Tag nào không chứa gì ở giữa thì phải chấm dứt bằng”/>”
Một trang XML cần phải theo đúng các quy luật sau đây :
+ Một trang XML phải có một element độc nhất chứa tất cả các element khác. Đó là root của cây biểu diễn trang XML .
+ Các Tag Pair không được xen kẻ nhau, các Tag Pair phải đánh vần đúng y như nhau kể cả chữ hoa, chữ thường ( và là bất hợp lệ) và các Attribute đều phải nằm giữa hai ngoặc kép (standalone=yes là bất hợp lệ, phải viết standalone=”yes”).
Đối tượng DOM (Document Object Model)
+ Mô hình đối tượng tài liệu là một giao diện lập trình ứng dụng (API).
+ Thông thường DOM có dạng một cây cấu trúc dữ liệu và được dùng để truy xuất các tài liệu HTML và XML.
+ Mô hình DOM hoạt động độc lập với hệ điều hành và dựa theo kỹ thuật lập trình hướng đối tượng để mô tả tài liệu.
+ Trong Ajax mô hình DOM đóng vai trò phân tách dữ liệu truyền dưới dạng XML.
+ Để phân tích một văn bản XML bằng máy tính ta thường dùng một trong hai hoặc cả hai mô hình phân tích là SAX (Simple API for XML) và DOM.
+ Theo mô hình phân tích DOM, toàn bộ nội dung của một văn bản XML sẽ được lưu giữ vào bộ nhớ trong dưới dạng một cấu trúc cây
+ Trong Ajax XHTML cùng với CSS đóng vai trò hiển thị dữ liệu cho trang Web.
+XHTML là một chuẩn kết hợp giữa HTML và XML và trở thành một định dạng riêng cho web. XHTML cho phép HTML được mở rộng bằng các thẻ sở hữu.
+ Ngoài ra XHTML cũng được mã hoá chặt chẽ hơn HTML và phải tuân thủ nhiều quy tắc cấu trúc hơn HTML
Giới thiệu về XHTML
+ Trong XHTML tất cả các thẻ phải được đóng, các thuộc tính phải được cho vào dấu ngoặc kép (“”), và đặc biệt tất cả các thẻ và thuộc tính đều phải viết bằng chữ cái thường.
+ Mặc dù điều này có thể XHTML bị xem là cứng nhắc nhưng chính điều này lại là ưu điểm của nó: quy chuẩn và nguyên tắc.
+ XHTML là phiên bản kết hợp của HTML nên có những điểm khác cơ bản với HTML
- Các File XHTML cần phải well-formed có nghĩa là các thẻ …phải tuân thủ theo chuẩn .
- Các thể lồng nhau phải đúng trật tự .
- Các thẻ và các thuộc tính của các phần tử phải được viết bằng chữ thường.
- Các thuộc tính của các phần tử phải được đóng nháy kép: ví dụ ,...
- Các thẻ được gọi là noempty cần phải được đóng bằng một thẻ đóng( …)
CSS (Cascading Style Sheets)
+ Tập định kiểu theo tầng, được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML, XHTML, XML, SVG, XUL…
+ Các thông số kỹ thuật của CSS do World Wide Web Consortium (W3C) quản lý. Trong Ajax CSS cùng với XHTML đóng vai trò hiển thị dữ liệu cho trang web .
DHTML
+ Hay HTML động tạo một trang Web bằng cách kết hợp các thành phần ngôn ngữ đánh dấu HTML tĩnh, ngôn ngữ lệnh máy khách (như JavaScript ) và ngôn ngữ định dạng CSS và DOM.
+ Do có khả năng phong phú, DHTML còn được sử dụng như một công cụ để xây dựng các trò chơi đơn giản trên trình duyệt .
Đối tượng XMLHttpRequest
+ Để hiểu được cơ chế hoạt động của Ajax thì chúng ta phải biết được XMLHttpRequest là gì ? Như nhiều chuyên gia đã nhận định một trong những điểm quan trọng nhất của Ajax là nằm ở XMLHttpRequest
+ Điều đó cho thấy rằng, vì XMLHttpRequest có vai trò quan trọng đặc biệt trong công nghệ như vậy nên một ứng dụng của Ajax có thực thi và mang hiệu quả hay không phụ thuộc vào việc trình duyệt có hỗ trợ đối tượng này. Nếu một trình duyệt không hỗ trợ XMLHttpRequest sẽ không thể diễn ra quá trình trao đổi giữa máy client và máy server
+ Thông thường trong một ứng dụng web, để có thể gởi một HTTP Request đến máy chủ bằng JavaScript bạn cần tạo một đối tượng của lớp cung cấp tính năng này. Trong Interner Exploer (IE) thì lớp này tồn tại dưới dạng một ActiveX có tên là XMLHTTP
+ Đối tượng XMLHttpRequest không phải là một chuẩn của W3C (World Wide Web Consortium). Đối tượng XMLHttpRequest được hỗ trợ ở IE 5.0+, Safari 1.2, Mozilla1.0/Firefox, Opera 8.0 và Netcape 7+.
var httpReqquest =new XMLHttpRequest();
+ Do sự khác biệt này nên để các ứng dụng có thể chạy được trên các trình duyệt chúng ta phải khai báo:
if(window.XMLHttpRequest)
{ //Mozilla,Safari ,..
httpRequest=new XMLHttpRequest();
}else if(window.ActiveXObject)
{//IE..
httpRequest=new ActiveXObject(Microsoft.XMLHTTP”);
}
+ Do ActiveX trên IE rất nguy hiểm cho nhiều người dùng nên trong nhiều trường hợp tính năng này bị cấp. Vì vậy bạn cần phải kiểm tra trình duyệt trước khi gọi đối tượng XMLHTTP. Quá trình kiểm tra này được thực hiện thông qua giá trị của window.ActiveXObject
Ví dụ : if(window.ActiveXObject) {
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
else{…}
CHƯƠNG 3
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Phân tích yêu cầu
Yêu cầu trang web
Trang vàng Đà Nẵng là cổng thông tin cho các du khách đến du lich tại Đà Nẵng. Trang vàng Đà Nẵng cung cấp các thông tin:
- Thông tin du lịch
Danh bạ khách sạn
Danh bạ ẩm thực
Địa điểm mua sắm
Vui chơi giải trí
Phương tiện vận chuyển ( Sân bay, bến xe )
Tiện ích công cộng( Ngân hang, bưu điện)
Xây dựng ứng dụng web với struts + Hibernate Framework
Đề tài gồm có 2 phần chính: phần khách hàng và phần quản lý:
Yêu cầu người dùng
Xem thông tin về khách sạn, ẩm thực , địa điểm mua sắm, vui chơi giải trí, tiện ích công cộng.
Tìm kiếm thông tin với các tiêu chí:
Khách sạn : Giá cả
Tiêu chuẩn (Mấy sao)
Vị trí ( Quận, Huyện )
Ẩm thực : Loại món ăn
Giá cả
Vị trí ( Quận, Huyện )
Tên nhà hàng
Mua sắm : Mặt hàng ( Điện tử , thời trang , đồ lưu niệm )
Vị trí ( Quận, Huyện )
Vui chơi giải trí : Loại vui chơi giải trí ( Rạp chiếu phim, cà phê , vũ trường)
Vị trí ( Quận Huyện )
Tiện ích công cộng : Loại tiện ích ( Ngân hàng , Bưu điện)
Vị trí ( Quận, Huyện )
Khi khách hàng đăng kí là thành viên của trang web, khách hàng có thể quảng bá thông tin nhà hàng , khách san..v.v. của mình.( Nhập thông tin theo form).
Khi khách hàng đăng kí là thành viên của trang web. Vào thông tin 1 nhà hàng hoặc khách san. Khách hàng có thể thêm lời bình luận và đánh giá cho nhà hàng hoặc khách sạn đó.
Yêu cầu quản lý
Quản lý các thông tin về nhà hàng, khách sạn, mua sắm, vui chơi giải trí, tiện ích công cộng.
Cập nhật thông tin
Thêm mới
Xóa
Tìm kiếm
Quản lý thông tin các thành viên
Cập nhật thông tin
Thêm mới
Xóa
Tìm kiếm
Đặc tả yêu cầu
Mô hình USE-CASE của hệ thống
Hình 4 : Mô hình USECASE hệ thống
Đặc tả các USE-CASE của hệ thống
Đặc tả USE-CASE đăng nhập
II.2.1.1. Miêu tả
Đối với khách hang: là 1 thành viên của trang web đăng nhập vào hệ thống để chỉnh sửa thông tin cá nhân, đăng 1 quảng cáo về nhà hàng , khách sạn, thông tin du lịch…
Đối với quản trị viên : đăng nhập vào hệ thống để có thể thực hiện các thao tác quản lý (quản lý thành viên, quản lý thông tin trên trang web…).
II.2.1.2. Tác nhân
Khách hàng và quản trị viên chưa đăng nhập vào hệ thống.
II.2.1.3. USE-CASE liên quan
Không có.
II.2.1.4. Các luồng sự kiện
Luồng sự kiện chính
Trên giao diện web và giao diện quản lý người dùng chọn đăng nhập.
Hệ thống hiển thị giao diện đăng nhập, yêu cầu người sử dụng nhập username và password.
Người sử dụng nhập username và password, chọn đồng ý đăng nhập.
Hệ thống tiếp nhận thông tin, kiểm tra username và password của người dùng.
Nếu hợp lẹ hệ thống sẽ chấp nhận đăng nhập, hiển thị thông báo đăng nhập thành công.
Kết thúc USE-CASE.
Các luồng sự kiện khác
Luồng 1:
Tại giao diện đăng nhập, người dùng không muốn tiếp tục, chọn hủy bỏ
Kết thúc USE-CASE
Luồng 2:
Hệ thống kiểm tra thông tin đăng nhập không chính xác
Hệ thống từ chối đăng nhập hiển thị thông báo lỗi
Kết thúc USE-CASE
Luồng 3:
Hệ thống kết nối cơ sở dữ liệu để kiểm tra thông tin, quá trình kết nối không thành công, không thực hiện kiểm tra được
Hiển thị thông báo lỗi
Kết thúc USE-CASE
II.2.1.5. Sơ đồ tuần tự (Sequence Diagram)
Hình 5 : Sơ đồ tuần tự UseCase đăng nhập
II.2.1.6 Sơ đồ lớp (Class Diagram)
Hình 6 : Sơ đồ lớp Usecase đăng nhập
Đặc tả USE-CASE xem thông tin du lịch
II.2.2.1. Miêu tả
Mọi thông tin về du lịch về nhà hàng, khách sạn, món ăn, phương tiện đi lại, tiện ích công cộng đều được load lên trang web. Nhưng chỉ load 1 phần nội dung. Để có thể xem chi tiết từng thông tin bạn cần chọn xem 1 thông tin cụ thể bằng cách nhấp chuột vào hyperlink tiêu đề của mỗi thông tin.
II.2.2.2. Tác nhân
Khách hàng đã và chưa đăng nhập vào hệ thống.
II.2.2.3. USE-CASE liên quan
Không có.
II.2.2.4. Các luồng sự kiện
Luồng sự kiện chính
Trên màn hình giao diện trang web, người dùng chọn xem thông tin theo từng danh mục.
Hệ thống truy vấn cơ sở dữ liệu lấy tất cả thông tin theo danh mục khách hàng chọn và hiển thị trên màn hình.
Bạn chọn vào 1 thông tin trong danh sách các thông tin được trả về
Chi tiết về thông tin đó sẽ được hiển thị.
Kết thúc USE_CASE.
Các luồng sự kiện khác
Kích vào xem thông tin 1 danh mục nhưng không có thông tin nào trong cơ sở dữ liệu.
Một hộp thông báo xuất hiện báo không có dữ liệu nào trong cơ sở dữ liệu.
Kết thúc USE-CASE.
II.2.2.5. Sơ đồ tuần tự (Sequence Diagram)
Hiển thị thông tin một danh mục
Hình 7 : Sơ đồ tuần tự Usecase xem thông tin du lịch phần danh mục
Hiển thị thông tin chi tiết
Hình 8 : Sơ đồ tuần tự Usecase xem thông tin du lịch phần chi tiết
II.2.2.6 Sơ đồ lớp (Class Diagram)
Hình 9 : Sơ đồ lớp Usecase xem thông tin du lịch
Đặc tả USE-CASE tìm kiếm thông tin
II.2.3.1. Miêu tả
USE-CASE cho phép khách hàng có thể lọc các thông tin theo các tiêu chí được lựa chọn. Ví dụ khách sạn sẽ có các tiêu chí như: Mấy sao, giá phòng, ở quận huyện nào …
II.2.3.2. Tác nhân
Khách hàng đã và chưa đăng nhập vào hệ thống.
II.2.3.3. USE-CASE liên quan
Không có.
II.2.3.4. Các luồng sự kiện
Luồng sự kiện chính
Ở màn hình hiển thị thông tin của 1 da
Các file đính kèm theo tài liệu này:
- Ứng dụng struts framework xây dựng trang vàng cho du lịch đà nẵng.doc