Tài liệu Đồ án Tốt nghiệp đại học Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha: TRƯỜNG………………………
KHOA……………………
ĐỒ ÁN TỐT NGHIỆP:
Đồ án tốt nghiệp đại học: " Nghiên cứu công
nghệ JSP & Java, xây dựng Website bán hàng
cho công ty cổ phần chế biến gỗ Việt Đức Kha "
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 1
LỜI NÓI ĐẦU
Ngày nay, Internet ngày càng trở nên cần
thiết cho cuộc sống, đặc biệt trong lĩnh vực
kinh doanh. Thương mại điện tử hiện đang là
ngành kinh tế thu lợi nhuận cao của nhiều
nước trên thế giới. Mặc dù vậy, nước ta lại
chưa phát triển loại hình này do các điều
kiện khách quan. Tuy nhiên, sớm hay muộn
thì chắc chắn cũng phải có phần đáp ứng
được nhu cầu của khách hàng và nhà thương
mại. Vì buôn bán là một hoạt động không
thể thiếu trong đời sống hiện nay, và cũng
nhờ sự phát triển của thương mại điện tử mà
các nhà thương mại có cơ hội quảng cáo sản
phẩm của mình rộng rãi hơn.
Với thương mại điện tử, chúng ta không
còn phải đến trực tiếp cửa hàng vừa tốn thời
gian, sức khỏe. Gi...
58 trang |
Chia sẻ: haohao | Lượt xem: 1109 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Tốt nghiệp đại học Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG………………………
KHOA……………………
ĐỒ ÁN TỐT NGHIỆP:
Đồ án tốt nghiệp đại học: " Nghiên cứu công
nghệ JSP & Java, xây dựng Website bán hàng
cho công ty cổ phần chế biến gỗ Việt Đức Kha "
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 1
LỜI NÓI ĐẦU
Ngày nay, Internet ngày càng trở nên cần
thiết cho cuộc sống, đặc biệt trong lĩnh vực
kinh doanh. Thương mại điện tử hiện đang là
ngành kinh tế thu lợi nhuận cao của nhiều
nước trên thế giới. Mặc dù vậy, nước ta lại
chưa phát triển loại hình này do các điều
kiện khách quan. Tuy nhiên, sớm hay muộn
thì chắc chắn cũng phải có phần đáp ứng
được nhu cầu của khách hàng và nhà thương
mại. Vì buôn bán là một hoạt động không
thể thiếu trong đời sống hiện nay, và cũng
nhờ sự phát triển của thương mại điện tử mà
các nhà thương mại có cơ hội quảng cáo sản
phẩm của mình rộng rãi hơn.
Với thương mại điện tử, chúng ta không
còn phải đến trực tiếp cửa hàng vừa tốn thời
gian, sức khỏe. Giờ đây, chúng ta có thể ngồi
tại nhà mà có thể mua được bất kỳ một món
hàng nào. Thật là tuyệt vời!
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 2
Chính vì thế, em đã chọn đề tài “Nghiên
cứu JSP và Java, xây dựng website bán
hàng cho Công ty Cổ Phần Chế biến gỗ
Việt Đức” nhằm làm quen với thương mại
điện tử và bắt kịp sự phát triển của nước ta
cũng như thế giới. Do thời gian hạn chế, việc
tìm hiểu và xây dựng một ứng dụng trên
công nghệ Java (một công nghệ mới) đối với
em rất khó khăn. Dù vậy, ứng dụng cũng đã
triển khai được phần lớn các yêu cầu chính
mà một ứng dụng thương mại điện tử cần
đáp ứng.
Em xin chân thành cảm ơn thầy Nguyễn
Đức Thuần đã tận tình hướng dẫn, giúp em
hồn thành tốt đồ án tốt nghiệp này.
Em xin chân thành cảm ơn !
Nha Trang, tháng 08 năm 2003.
SVTH : Nguyễn Văn Ty
Lớp : 40TH
MSSV: 8D15075
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 3
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 4
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 5
Chương I
YÊU CẦU CỦA ĐỀ TÀI
PHẦN I
CƠ SỞ LÝ THUYẾT
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 6
1. Về mặt ứng dụng.
Xây dựng hệ thống quản lý các dịch vụ bán hàng trên mạng, trong đó hệ thống
cho phép các dịch vụ đăng ký một không gian để bán những mặt hàng mình có trên
mạng. Mỗi dịch vụ sẽ có một account riêng trong hệ thống, họ có thể cập nhật các mặt
hàng, thay đổi thông tin của dịch vụ và quản lý những đơn đặt hàng của khách mua
hàng thông qua hệ thống. Tuy nhiên, dịch vụ hay mặt hàng của dịch vụ chỉ thực sự
hoạt động khi đã thanh tốn những chi phí cần thiết cho hệ thống. Đối với những khách
hàng vào hệ thống để mua hàng, hệ thống phải hỗ trợ sao cho khách hàng có thể tìm
kiếm, chọn và đặt hàng một cách dễ dàng. Khi khách hàng đặt mua sản phẩm, hệ thống
sẽ chuyển đơn đặt hàng này đến dịch vụ bán hàng. Việc giao và nhận hàng diễn ra nội
bộ giữa người bán với người mua, hệ thống không tham gia trực tiếp vào việc bán
hàng. Hệ thống đóng vai trò như một siêu thị ảo, môi giới cho khách mua hàng với
dịch vụ.
Về phía khách hàng
Các khách hàng có thể đăng kí mua hàng, cũng như việc xem và lựa
chọn những sản phẩm qua mạng nếu họ đồng ý với những sản phẩm đó.
Khách hàng có thể dễ dàng xem hàng, hoặc đăng ký mua hàng bất cứ
lúc nào thông qua mạng máy tính khi mà máy chủ đã khởi động.
Các khách hàng có thể dễ dàng tìm thấy sản phẩm mà mình cần, việc
đăng kí mua hàng chỉ thông qua thao tác nhấn chuột trên sản phẩm mà mình lựa chọn.
Các khách hàng còn có thể theo dõi được những sản phẩm mới mà công
ty chuẩn bị bán ra trong một thời gian sắp tới.
Khi cần thiết thì khách hàng có thể hỏi đáp thông qua công ty, hoặc
thông qua diễn đàn nhằm góp ý cũng như việc thắc mắc với công ty. Diễn đàn sẽ giúp
cho khách hàng giải quyết các vấn đề mà mình không giải quyết được.
Về phía người quản lý
Người quản lý có thể theo dõi thành viên, đơn hàng của các khách hàng
đang tham gia mua hàng của công ty mình (như số lượng mặt hàng, số tiền, của khách
hàng …) và nắm các thông tin của khách hàng như email, địa chỉ để liên lạc khi cần.
Người quản lý có thể thêm sản phẩm, xố sản phẩm, thêm người quản lý,
người sử dụng thông qua chương trình đã được xây dựng.
2. Về mặt kỹ thuật
Bài tốn đòi hỏi hệ thống phải có những khả năng về kỹ thuật như sau:
Ứng dụng triển khai trên môi trường JSP.
Hỗ trợ nhiều hệ điều hành (cho phía client).
Hỗ trợ nhiều trình duyệt (như IE, Netscape..)
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 7
Hỗ trợ nhiều người dùng.
Số lượng người tham gia đăng ký mua hàng không giới hạn.
Số lượng các sản phẩm, người đăng ký sử dụng thêm vào không giới hạn.
3. Một số yêu cầu khác
Ngồi các yêu cầu trên, ứng dụng có thể:
Dễ dàng cài đặt.
Dễ dàng sử dụng.
Như vậy, trước những yêu cầu của bài tốn đặt ra như trên, ta cần khảo sát công
nghệ và lựa chọn giải pháp thích hợp để có thể triển khai ứng dụng theo yêu cầu của
bài tốn.
Chương II
NGÔN NGỮ LẬP TRÌNH JAVA ĐỐI VỚI
ỨNG DỤNG MẠNG
I. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH JAVA.
Ông tổ của Java không ai khác chính là James Gosling, một lập trình viên của
công ty Sun Microsystems. Cuối năm 1990 James Gosling được Sun Microsystem
giao nhiệm vụ xây dựng một phần mềm cho các mặt hàng điện dân dụng với mục tiêu
nhỏ gọn và tương thích với nhiều thiết bị phần cứng khác nhau, thế là Java ra đời. Đầu
tiên Java có tên là Oak (cây sồi) nhưng vì có sự trùng tên nên Oak được đổi tên thành
Java như hiện nay.
Java được thiết kế cho mục đích đa nền (không phụ thuộc vào bất kỳ hệ điều
hành nào) nên chương trình Java sau khi biên dịch cho ra một file nhị phân khác với
các file nhị phân thực thi của Windows như .exe hay .com. java biên dịch ra mã nhị
phân gọi là byte-code có đuôi mở rộng là .class và được triệu gọi thực thi trong máy ảo
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 8
Java (Java Virtual Machine – JVM). Máy ảo Java thực sự là một trình thông dịch bình
thường có khả năng thực thi các mã byte-code tương tự như bộ xử lý của máy tính
thực thi các mã nhị phân là các chỉ thị mã máy. Nói đúng hơn máy ảo Java là một kiến
trúc của bộ xử lý nhưng thực thi bằng cơ chế phần mềm thay vì phần cứng. Chính vì lý
do đó mà ta chỉ cần viết máy ảo Java cho từng hệ điều hành thì chương trình Java
(.class) có thể chạy như nhau trong mọi hệ điều hành dưới nền một kiến trúc máy ảo.
Cha đẻ của Java là hãng Sun Microsystem chịu trách nhiệm xây dựng các máy ảo Java
cho những hệ điều hành khác nhau. Nhiệm vụ của lập trình viên là chỉ viết chương
trình mã nguồn Java sau đó biên dịch chương trình ra dạng file thực thi byte-code để
chạy trên máy ảo.
Java có thể dùng để viết chương trình ứng dụng tương tự như mọi ngôn ngữ lập
trình khác. Java thiên về lập trình cho các ứng dụng mạng và Internet. Ngồi ra ta có thể
dùng Java để viết các Applet hoặc Servlet hay trang JSP là những thành phần ứng
dụng dành cho trình duyệt Internet (browser) và trình chủ (Web server).
Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạnh
mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động (the Java TM
Language an Overview – sun Microsystems). Đó là những đặc điểm quan trọng mà
không phải bất cứ một ngôn ngữ lập trình nào cũng có được.
Applet là những mẫu chương trình nhỏ được nhúng và chạy ngay trong trình
duyệt. Applet giúp bạn thực hiện được rất nhiều tương tác bên trong trình duyệt. Có
thể nói Java ra đời và nổi tiếng chính là nhờ khả năng viết Applet của nó. Mặc dù vậy,
ngày nay các Applet không còn được sử dụng nhiều trên các trình duyệt. Chúng được
thay thế bằng ngôn ngữ kịch bản JavaScript. Tuy nhiên vẫn còn nhiều điều mà Applet
có khả năng lập trình mạnh mẽ hơn JavaScript như giao tiếp với Web server, thực hiên
công việc tính tốn phức tạp, vẽ đồ thị, bảo mật…
Servlet là một thành phần đối tượng chủ yếu phục vụ cho mục đích tích hợp và
chạy trên các trình chủ Web server. Servlet giúp xử lý và tạo ra các trang Web động.
Servlet có thể kết hợp với các trang Java Server Page - JSP là các trang Script chạy
phía máy chủ để tạo các trang Web động, tương tác với cơ sở dữ liệu tương tự như
Servlet.
JavaScript và Java hồn tồn khác nhau, mặc dù thống nghe đến tên gọi bạn có
thể nghĩ rằng chúng đều xuất phát từ Java. JavaScript là một ngôn ngữ kịch bản ra đời
và phát triển bởi Nescape Communication trong khi Java được phát triển bởi Sun
Mcrosystem. Mặc dù vậy, ngày nay chúng trở nên thân thiết và gần gũi với nhau hơn
bao giờ hết. Java và JavaScript có cú pháp lập trình rất giống nhau và rất giống với
C/C++ nên rất thuận tiện để người dùng học cả hai ngôn ngữ song song với nhau.
JavaScript thường được dùng để kiểm sốt và điều khiển các hoạt động của trình khách.
JavaScript có thể tạo các hiệu ứng động cho trang Web như thay đổi màu sắc, hiển thị
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 9
ảnh động, tương tác với người dùng bằng chuột, phím, kiểm tra dữ liệu nhập vào trước
khi gởi về trình chủ để xữ lý.
JavaBeans là một thành phần đối tượng được xây dựng từ ngôn ngữ Java, là
những khối mã xây dựng sẵn và có thể dùng lại được. Nó đang trở nên ngày càng phổ
biến đối với các ứng dụng phân tán (distributed application) trên mạng.
Java Server Page - JSP đặc biệt cung cấp cho những nhà phát triển Web một
nền tảng để tạo ra các nội dung động trên máy chủ sử dụng HTML và XML, vì mã
Java có tính bảo mật, nhanh, và độc lập với máy chủ. JSP là phần mở rộng đặc biệt của
Java Servlet, đơn giản hơn Servlet. JSP được nhúng vào các trang HTML để tạo ra các
trang động từ trình chủ phục vụ cho trình khách.
Trên đây là một số đặc tính quan trọng và các nhánh phát triển của ngôn ngữ
Java. Với những đặc tính mạng mẽ như vậy, Java là sự lựa chọn tốt nhất cho các ứng
dụng mạng.
Applet Java:
Applet như đã nói là những mẫu chương trình nhỏ chạy ngay trong trình duyệt
và tương tác với trình duyệt. Vì applet đã nói là những mẫu chương trình nhỏ chạy
ngay trong trình duyệt và tương tác với trình duyệt. Vì vậy applet phải tuân thủ theo
một cấu trúc nhất định để có thể chạy được trên các trình duyệt khác nhau.
1. Tạo một applet:
Khuôn mẫu của một applet thể hiện ở bốn phương thức sau:
Error!
Trong đó :
appletName: tên của applet.
Init: để khởi tạo một applet khi một applet được nap (loaded) hay được nạp lại
(reloaded).
Start: bắt đầu hoạt động của applet khi applet được nạp hay khi người dùng
thăm lại trang chứa applet.
Stop: chấm dứt hoạt động của applet khi người dùng rời khỏi trang chứa applet
hay đóng trình duyệt.
pubilc class appletName extendes
Applet
{
public void init() {…}
public void start() {…}
public void stop() {…}
public void destroy() {…}
}
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 10
Destroy: thực hiện việc dọn dẹp chuẩn bị cho applet thốt hẳn (unloading).
Không phải applet nào cũng dùng đủ 4 phương thức này, các phương thức bị bỏ
qua khi viết một applet sẽ được trình duyệt tự thực hiện khi nạp applet đó.
* Vòng đời của một applet:
Nạp một applet:
Khi một applet được nạp có các sự kiện xảy ra như sau:
Một instance của lớp con applet được tạo ra, có nghĩa là một đối tượng applet
được tạo ra.
Đối tượng applet này tự khởi tạo mình, có nghĩa là tự cài đặt, nhận các giá trị
(phương thức init() được gọi đến).
Đối tượng applet này bắt đầu chạy (phương thức start() được gọi).
Rời khỏi hay trở về trang Web:Khi người dùng sang trang mới (không chứa
applet của ta), applet thực hiện phương thức stop(). Khi người dùng trở về trang chứa
applet, applet lại kích hoạt phương thức start(). Quá trình này cũng xảy ra khi người
dùng thu nhỏ cửa sổ (minimize) rồi mở lại (restore).
Nạp lại một applet:Thông thường các trình duyệt cho phép người dùng nạp lại
applet, nghĩa là người dùng đã thốt khỏi applet rồi lại nạp applet lại một lần nữa. Vì
mỗi khi thốt khỏi applet phương thức stop() sẽ được gọi, sau đó destroy sẽ được gọi để
thực hiện việc dọn dẹp cho hệ thống. Như thế applet sẽ giải phóng tất cả các tài
nguyên mà nó đã dùng. Cuối cùng applet chính thức bị xố bỏ khỏi bộ nhớ. Và khi
được nạp lại, quá trình nạp sẽ xảy ra y như lần đầu applet được nạp.
Thốt khỏi trình duyệt: Khi ta chưa đóng trang Web chứa applet mà đã thốt khỏi
trình duyệt, applet sẽ lập tức tự khởi động phương thức stop() rồi thực hiện phương
thức dọn dẹp destroy() trước khi trình duyệt bị đóng.
2. JavaBeans.
JavaBeans do Sun Microsystem phát triển dựa trên nền tản của Java. JavaBeans
là những giao tiếp lập trình được dùng để tạo ra những khối mã xây dựng sẵn và có thể
dùng lại được. Những thành phần JavaBeans có thể được nhúng vào trong một ứng
dụng, liên kết với các thành phần JavaBeans khác hay được dùng để kết nối với các
ứng dụng. Bằng cách dùng các thành phần JavaBeans các nhà phát triển ứng dụng có
thể giảm các khối lượng mã mà họ phải viết. Họ có thể tự tạo ra các thành phần
JavaBeans riêng biệt hoặc mua lại chúng từ các nhà phát triển thứ ba khác.
Trong thời gian qua, môi trường Internet đã trở thành động lực chính cho hướng
tiếp cận thành phần (component) dựa trên Java. Nó đang trở nên ngày càng phổ biến
với các ứng dụng phân tán (distributed application) trên mạng. Theo mô hình này một
thành phần của ứng dụng sẽ chạy trên máy khách (client), một phần chạy trên lớp
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 11
trung gian, phần còn lại sẽ chạy trên máy chủ (server) với tác vụ xử lý cơ sở dữ liệu
hay tính tốn phức tạp. Các ứng dụng Java xây dựng bằng các thành phần JavaBeans có
thể đáp ứng cho cả hai phía client và server.
Không có một bí ẩn nào trong việc tạo ra một lớp đối tượng JavaBeans. Ta xây
dựng lớp đối tượng JavaBeans bằng cách cài đặt giao diện (interface)
java.io.Serializable. Tiếp đến ta thiết lập và xây dựng các phương thức mang tên get,
set để trình bày cách gọi những thuộc tính của Beans trong trang JSP.
Cấu trúc của một đối tượng Beans như sau:
Error!
Các thuộc tính (property) của thành phần JavaBeans:
Thuộc tính là một trong những khía cạnh quan trọng nhất trong JavaBeans,
thuộc tính biểu diễn những trạng thái (state) mà một thành phần JavaBeans có thể có.
Người dùng đa số tương tác với JavaBeans qua các thuộc tính của nó. Bằng cách thay
đổi các thuộc tính các nhà phát triển ứng dụng sẽ đem đến cho đối tượng thành phần
một diện mạo (apperance) và một cách hành xử (behavior) khác.
Thuộc tính thể hiện sự thay đổi (bound property):
JavaBeans là từng thành phần riêng biệt nhưng vẫn có thể kết nối được với
nhau qua cơ chế gởi thông báo (message). Khi thuộc tính của một thành phần
JavaBeans A thay đổi nó có thể thông báo cho một thành phần JavaBeans B khác biết
để thành phần JavaBeans B này có cơ hội cập nhật lại những thông tin cần thiết đối với
thành phần A mà nó sử dụng.
Public class mybeans implement java.io.Serializable
{
protect int the_value;
// Phương thức khởi dựng Beans
public mybeans {}
//Khai báo phương thức đặt giá trị cho thuộc tính myvalue
public void set_myvalue(int new value)
{
the_value = new_value;
}
//Khai báo phương thức trả về giá trị cho thuộc tính myvalue
public int get_myvalue()
{
return the_value;
}
}
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 12
Cơ chế cài đặt một thuộc tính có thể thông báo cho các thành phần JavaBeans
khác biết khi nó thay đổi như sau: cài đặt hai phương thức dùng để đăng ký và loại bỏ
một đối tượng listener.
Error!
Mỗi thành phần JavaBeans khác phải tự cài đặt một đối tượng listener từ giao
diện PropertyChangeListtener có nhiệm vụ phản ứng lại những thay đổi này, sau đó
đăng ký lại với thành phần JavaBeans A nhờ vào các phương thức trên.
Phương thức cần cài đặt cho giao diện PropertyChangeListtener là:
Error!
Các thủ tục trên đây chỉ thực hiện nhiệm vụ đăng ký và tạo đối tượng listener
mà thôi. Để các đối tượng listener có thể nhận biết sự thay đổi của thuộc tính, ta phải
gọi phương thức firePropertyChange của đối tượng PropertyChangeSupport từ thành
phần JavaBeans A như sau:
Error!
Phương thức này sẽ thông báo đến mọi đối tượng listener (bằng cách gọi
phương thức propertyChange của listener) đã đăng ký với thuộc tính của thành phần
JavaBeans A, sự thay đổi bao gồm giá trị trước khi thay đổi, giá trị sau khi thay đổi và
tên của thuộc tính bị thay đổi.
Thuộc tính ràng buộc (constraint property):
Hạn chế của thuộc tính bound property là các đối tượng listener chỉ phản ứng
lại khi giá trị thuộc tính đã bị thay đổi. Java cung cấp một khả năng khác mạnh hơn đó
là tạo thuộc tính bị ràng buộc (constraint property), tương tự như thuộc tính bound
mỗi lần thuộc tính constraint định thay đổi giá trị (chỉ dự định chứ chưa thay đổi) nó sẽ
thông báo đến tất cả các đối tượng listener đã đăng ký, đối tượng listener có quyền từ
chối không cho phép thay đổi và như vậy thuộc tính vẫn phải giữ nguyên giá trị ban
đầu. Ngược lại nếu đối tượng listener cho phép thì quá trình thay đổi giá trị cho thuộc
tính mới diễn ra tiếp tục.
Để đăng ký đối tượng listener cho thuộc tính ràng buộc, thành phần JavaBeans
phải cài đặt hai phương thức sau đây:
//Đăng ký
public void addPropertyChangeListtener (PropertyChangeListtener lsn)
//Loại bỏ
public void removePropertyChangeListtener (PropertyChangeListtener lsn)
public void propertyChange (PropertyChangevent evt)
Public void firePropertyChange (String propertyName,
Object oldValue, Object newValue)
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 13
Error!
Mỗi thành phần JavaBeans khác phải tự cài đặt một đối tượng listener từ giao
diện VetoableChangeListener có nhiệm vụ phản ứng lại những thay đổi này (cho phép
hay không cho phép thuộc tính thay đổi), sau đó đăng ký với thành phần JavaBeans
nhờ vào các phương thức trên (add dùng để đăng ký còn remove dùng để loại bỏ đối
tượng listener).
Phương thức cần cài đặt cho giao diện VetoableChangeListener là:
Error!
Nếu đối tượng listener không đồng ý thay đổi thuộc tính nó sẽ ném ra ngoại lệ
PropertyVetoException, thành phần JavaBeans sẽ bắt lấy và huỷ bỏ quá trình thay đổi
trị cho thuộc tính.
Cũng như thuộc tính dạng bound, khi thuộc tính constraint có dự định thay đổi
giá trị trong phương thức setter nó cần thông báo cho các đối tượng listener đã đăng ký
với nó bằng phương thức fireVetoableChange của đối tượng VetoableChangeSupport
từ thành phần JavaBeans như sau:
Error!
Phương thức này sẽ thông báo đến mọi đối tượng listener (bằng cách gọi
phương thức vetoableChange của listener) đã đăng ký với thành phần JavaBeans.
* Xử lý tình huống của thành phần JavaBeans:
Đối tượng nào sản sinh ra tình huống được gọi là nơi phát sinh tình huống
(event source), đối tượng nào dùng để tiếp nhận và xử lý các tình huống phát sinh từ
đối tượng khác được gọi là đối tượng listener.
Các tình huống nội tại (event state):
Một thành phần JavaBeans ngồi việc gởi tình huống đến những đối tượng khác
còn phải lo xử lý các tình huống mà bản thân hệ thống gởi đến mình.
Nếu xét về vai trò thì bản thân hệ thống là nơi phát sinh tình huống còn thành
phần JavaBeans phải tiếp nhận và xử lý các tình huống này.
public void addVetoableChangeListener (VetoableChangeListener lsn)
public void removeVetoableChangeListener (VetoableChangeListener lsn)
public void vetoableChange (PropertyChangevent evt)
throws PropertyVetoException
public void fireVetoableChange (String propertyName, Object oldValue,
Object newValue)
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 14
Để nhận biết được tình huống mà hệ thống đưa đến, thành phần JavaBeans phải
xây dựng một đối tượng listener và đăng ký đối tượng này với hệ thống. Các đối tượng
mà Java đã thiết kế sẵn dành cho từng tình huống cụ thể như sau:
ComponentListener
Listener dùng để nhận biết các tình huống khi đối
tượng bị thay đổi kích thước (resize), di chuyển (move),
hiện ra (show) hay dấu đi (hidden).
FocusListener
Listener nhận biết tình huống là Focus (là tình huống
mà đối tượng nhận nhiều quyền ưu tiên nhất)
KeyListener Listener nhận biết các tình huống xuất phát từ bàn phím.
MouseListener
Listener nhận biết tình huống xuất phát từ việc bấm
chuột như kích chuột trái, kích chuột phải hay kích đôi.
MouseMotionListener Listener nhận biết tình huống di chuyển chuột.
WindowListener Listener nhận biết tình huống một cửa sổ bị đóng lại, mở ra, thu nhỏ thành biểu tượng…
ActionListener Listener nhận biết tình huống mà đối tượng sẽ phải thực thi một tác vụ nào đó.
AdjustmentListener
Listener nhận biết tình huống mà đối tượng thay đổi
giá trị (như vị trí thanh trượt của thành phần scrollbar
chẳng hạn).
ItemListener
Listener nhận biết tình huống mà một phần tử thay đổi
trạng thái (như trong các thành phần checkbox,
choice…).
Có hai cách để tạo đối tượng listener giúp thành phần JavaBeans tiếp nhận tình
huống mà hệ thống đưa đến. Cách thứ nhất là tạo ra một đối tượng listener riêng biệt
sau đó thành phần JavaBeans sẽ đăng ký với hệ thống đối tượng listener này. Cách thứ
hai là dùng chính bản thân thành phần JavaBeans cài đặt cho giao diện listener và đăng
ký với hệ thống qua biến this.
3. Java Script.
3.1. JavaScript là gì?
Về nguồn gốc thì Java và JavaScript không liên quan gì với nhau. Java do Sun
Microsystem khởi xướng còn JavaScript tiền thân lại ra đời từ ngôn ngữ đặc tả
(scripting language) do hãng Netscape Communications đưa ra với tên là LiveScript.
Sau một thoả thuận giữa Sun và Netscape ngôn ngữ LiveScript và Java đã cùng bắt tay
nhau để tạo nên ngôn ngữ JavaScript. Tuy nhiên Java và JavaScript vẫn khác nhau về
cơ bản. Java là một ngôn ngữ lập trình mạnh mẽ, có thể dùng để viết applet hay bất kỳ
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 15
một ứng dụng nào (chạy độc lập hoặc chạy trên mạng) còn JavaScript chỉ là một ngôn
ngữ đặc tả dùng để thay đổi tương tác với bản thân trình duyệt mà thôi.
Sau đây là bảng so sánh các đặc điểm khác nhau cơ bản giữa hai ngôn ngữ Java
và JavaScript:
JavaScript Java
Phát triển từ Netscape
Communications
Phát triển từ sun Microsystem
Các dòng lệnh được thông dịch bởi
trình duyệt (brower).
Các dòng lệnh được biên dịch ra mã máy
(JVM) trước khi cho thực thi.
Nền tảng dựa trên các đối tượng
được xây dựng sẵn (object base). Các
đối tượng này không cho phép thừa
kế để tạo ra những đối tượng mới.
Nền tảng dựa trên cơ sở hướng đối tượng
(object oriented), tất cả đều quy về đối
tượng và có khả năng thừa kế để tạo ra
những đối tượng mới phong phú hơn.
Không cần phải khai báo dữ liệu
trước khi sử dụng.
Dữ liệu cần phải khai báo tường minh
trước khi sử dụng.
Ngăn cấm các chức năng truy xuất
đĩa.
Có thể truy xuất đĩa hay không, do người
lập tình quy định.
3.2. Cú pháp JavaScript:
Cú pháp JavaScript rất giống Java nhưng JavaScript sử dụng biến không cần
khai báo kiểu trong khi đối với Java điều này là bắt buộc.
Các đoạn mã lệnh của JavaScript được đặt trọn trong nội dung của trang Web
giữa hai thẻ:
Error!
Mã của JavaScript không thể dấu được vì nó hiện diện cùng với nội dung trang
Web. Nhưng ta có thể định nơi chứa mã nguồn bằng thuộc tính SCR trong thẻ
như sau:
Error!
Nếu Java hơi khô khan thì ngược lại JavaScript rất sống động với những hình
ảnh cũng như kỹ xảo dùng để tương tác với trang Web. JavaScript cũng có thể điều
khiển được Applet nếu như applet cho phép điều đó.
II. JAVA SERVER PAGE – JSP.
JSP là công nghệ rất mạnh để tạo ra trang HTML về phía trình chủ. JSP là phần
mở rộng trực tiếp của Java Servlet. Bộ diễn dịch JSP sẽ ánh xạ trực tiếp mã Java thành
// Các đoạn mã lệnh của JavaScript được đặt ở đây
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 16
Servlet. Viết JSP ta không cần trải qua quá trình biên dịch tập tin thực thi .class như
trong Servlet. JSP cung cấp mô hình lập trình Web dễ dàng và tiệân dụng hơn Servlet.
1. Cú pháp cơ bản của JSP.
1.1. Sử dụng thẻ bọc mã .
Ưu điểm của trang JSP là khả năng nhúng mã Java giữa các thể định dạng
HTML. Mã Java được đặt trong cặp dấu . Bên trong mã Java nếu muốn kết xuất
dữ liệu HTML ta gọi phương thức println() của đối tượng out. Đối tượng out là đối
tượng mặc định được trình chủ Web server cung cấp dùng để ghi kết xuất gửi về máy
khách. Thẻ HTML và mã Java có thể trộn lẫn lộn với nhau.
Ví dụ:
<% out.println(“Chao Ban”)
%>
1.2. Hiển thị kết xuất bằng cú pháp
Thay vì sử dụng cú pháp để diễn đạt một khối gồm nhiều lệnh ta có thể
sử dụng cú pháp chỉ để hiển thị kết xuất của một giá trị biến hay hàm nào đó.
Ví dụ:
Name
Search
Trong ví dụ trên name là biến chứa tên topic mà ta cần tìm, search là một hàm
trả về tên tìm được. Chú ý, không có dấu (;) ở cuối các biến hoặc biểu thức gọi hàm
trong cú pháp . Bởi vì nội dung của biểu thức nằm trong sẽ được
chuyển thành lệnh out.println() tương đương như sau:
out.println (“<html”);
out.println (“Name”+ name);
out.println(“</html”);
1.3. Chèn chú thích vào mã trang JSP.
Cũng như Java, JSP cho phép ta dùng cú pháp // để chú thích một dòng mã lệnh
trong khi cú pháp /* */ áp dụng cho nhiều dòng. Các dòng lệnh chú thích này sẽ được
bỏ qua khi trình chủ diễn dịch trang JSP.
// đây là chú thích một dòng
/*
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 17
Chú thích
nhiều dòng
*/
JSP còn cung cấp thêm cho ta cú pháp chú thích . Tất cả các khối
lệnh Java và HTML nằm giữa hai dấu chú thích này sẽ được trình biên dịch trang bỏ
qua không quan tâm đến. Ví dụ:
<%--
out.println (“ Đoạn này trình biên dịch sẽ bỏ qua”)
--%>
Dấu chú thích này rất có hiệu quả. Nó giúp ta tạm thời cô lập hoặc che bỏ tác
dụng của một đoạn mã Java nào đó đang bị lỗi trong trang JSP. Ta chỉ tạm thời làm
mất tác dụng của chúng chứ không cần xố bỏ.
1.4. Khai báo phương thức và biến hằng
Một cú pháp nữa mà JSP cung cấp đó là . Cú pháp này cho phép ta
định nghĩa một hoặc nhiều phương thức và biến. Phương thức và biến sau đó có thể
được triệu gọi bất kỳ nơi đâu trong trang JSP.
2. Các đối tượng của JSP:
Trong JSP chúng ta có thể truy cập một số đối tượng của JSP mà không cần
phải khai báo. Trình dịch JSP sẽ nhận dạng những đối tượng này và dịch sang trang
Servlet.
2.1. Đối tượng Request:
Đối tượng Request đại diện cho đối tượng
javax.servlet.http.HttpServletRequest. Giao diện HttpServlet được định nghĩa như một
đối tượng truy cập đến thông tin header của giao thức HTTP được gởi về trình khách.
Đối tượng request thường được truyền như đối số cho phương thức service(), ví dụ:
Error!
Một trong những ứng dụng thông thường nhất của đối tượng request là nắm giữ
các tham số. Chúng ta có thể thấy điều này bằng cách gọi phương thức getParameter()
của request. Phương thức này thừa kế từ lớp cha là javax.ServletRequest. Phương thức
này nhận tên tham số và trả về giá trị chuỗi tương ứng với tên của tham số đó. Phương
public void jspService (HttpServletRequest request,
HttpServiceResponse response) throws IOException,
Servlet ( )
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 18
thức getParameter() sẽ trả về giá trị của tham số mà nó giữ, nếu tham số này là null, nó
sẽ trả về giá trị null.
Ngồi ra, vì đối tượng request đại diện cho đối tượng
javax.servlet.http.HttpServletRequest nên có thể sử dụng các phương thức của
javax.servlet.http.HttpServletRequest trên request như getSession(), getCookies(),
getRemoteUser()…
2.2. Đối tượng Response:
Một đối tượng khác của JSP là đối tượng response. Đối tượng response cho
phép phản hồi thông tin xử lý từ trình chủ trở về trình duyệt. Hầu hết ứng dụng thông
thường của đối tượng response là dùng để xuất HTML ra trình duyệt. Đối tượng
response thường gọi phương thức getWriter() để thực hiện kết xuất.
Các phương thức mà đối tượng respons thường sử dụng được liệt kê như sau:
- response.sendRedirect(java.lang.String location): gởi đối tượng
response một lần nữa đến một trang JSP được chỉ định trong đối số
của phương thức.
- response.setContenType(java.lang.String type): Định dạng nội dung
xuất là kiểu type - đối số của phương thức.
2.3. Đối tượng Session:
Đối tượng session tham chiếu đến đối tượng javax.servlet.http.HttpSession. Đối
tượng session dùng để lưu các đối tượng khác từ những yêu cầu của client. Chúng đưa
ra hầu hết trạng thái đầy đủ của HTTP.
Đối tượng session được khởi tạo bằng cách gọi phương thức
pageContext.getSession() để tạo ra trang servlet. Cú pháp như sau:
Error!
Khi cần một biến nào đó có giá trị tồn cục từ khi mở cho đến khi kết thúc trình
duyệt, ta chọn đối tượng session. Đối tượng session sẽ tạo biến cục bộ cho phép lưu
một giá trị nào đó từ trang JSP này đến trang JSP khác trong suốt phiên làm việc của
chúng ta.
Để đối tượng session có thể lưu giữ những biến của chương trình ta cần phải
khai báo như sau:
Error!
Trong đó name là tên biến value là giá trị của biến.
session = pageContext.getSession()
session.setAttribute(java.lang.String name, java.lang.Object value)
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 19
Khi cần truy xuất một biến nào đó của đối tượng session ta cần phải sử dụng
phương thức getAtribute() như sau: name chính là tên của biến mà ta cần truy xuất.
Error!
2.4. Đối tượng Application:
Đối tượng application tham chiếu đến javax.servlet.ServletContext cho phép
lưu giữ cấu hình tồn cục của Servlet và JSP. Cách đối tượng application khởi tạo như
sau:
Error!
Trong đó pageContext là một đối tượng JspFactory.
Đối tượng application có phạm vi hoạt động ở cấp ứng dụng, nghĩa là có thể giữ
giá trị của tất cả các trang JSP ở những session khác nhau cho tới khi JSP engine bị
đóng lại.
Tương tự như session, ta có thể gọi phương thức application.setAtribute() để
lấy về giá trị lưu giữ trong application.
Phương thức application.setAtribute() được dùng để đặt trị cho biến cần chứa
trong application.
2.5. Đối tượng Out:
Đối tượng out đùng để ghi kết xuất gởi về trình duyệt. Đối tượng out hình thành
từ lớp java.io.Writer.
Ví dụ:
Error!
dùng để ghi câu “Hello world!” lên trình duyệt của máy khách.
2.6. Đối tượng Config:
Đối tượng config tượng trưng cho lớp ServletConfig, nó được định nghĩa là đối
tượng tạo bởi servlet chứa các thông tin cấu hình của servlet. Với thông tin cấu hình
này servlet sẽ truy cập đối tượng ServletContext. Phương thức khởi dựng như sau:
Error!
pageContext là một đối tượng JspFactory.
Trong nhiều trường hợp ta không cần phải sử dụng đối tượng config. Truy cập
đến ServletContext thông qua đối tượng application cũng đạt được kết quả tương tự.
2.7. Đối tượng Exception:
Đối tượng Exception chỉ tồn tại trong trang xử lý lỗi (error page). Nó dùng để
tham chiếu đến nguyên nhân gây ra lỗi mà trang xử lý lỗi có liên quan.
out.print(“Hello world!”);
session. getAttribute(java.lang.String name)
application = pageContext.getServletContext();
config = pageContext.getservletconfig():
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 20
Lỗi có thể xuất hiện trong quá trình hoạt động của trang JSP ở hai giai đoạn:
giai đoạn thứ nhất lỗi thường phát sinh ở bước khởi tạo. Ở bước này trang JSP nhận
yêu cầu từ trình khách và chuẩn bị thực thi, tuy nhiên trước khi thực thi trang JSP cần
được dịch ra mã .class của Java và quá trình dịch có thể sinh lỗi. Lỗi ở bước này còn
gọi là lỗi thời điểm dịch (translation time error). Giai đoạn thứ hai, trang JSP có thể
phát sinh lỗi trong quá trình phản hồi các yêu cầu xử lý. Lỗi này được gọi là lỗi thời
điểm yêu cầu (request time error).
Kiểu lỗi JSP thứ nhất có thể xuất hiện khi trang JSP lần đầu tiên được triệu gọi.
Trang JSP sẽ đi qua quá trình biên dịch từ tâïp tin nguồn .jsp thành mã Java .java sau
đó được biên dịch thành đối tượng servlet ở mã byte-code là tập tin .class. Lỗi ở giai
đoạn này thường do quá trình biên dịch thất bại hoặc do lỗi cú pháp khi thông dịch từ
JSP sang mã nguồn Java. Lỗi này thường được báo với trạng thái mã lỗi là 500 hoặc
trình chủ Web có thể thông báo những mã lỗi biên dịch của riêng Java. Lỗi tại thời
điểm dịch thường được quản lý bởi bộ thông dịch JSP (JSP engine).
Kiểu lỗi thứ hai của trang JSP liên quan đến quá trình xử lý các yêu cầu
(request). Những lỗi này còn được xem là lỗi lúc thực thi (runtime error). Chúng có thể
xuất hiên bên trong nội dung trang JSP hoặc xuất phát từ lời gọi phương thức nào đó
của một đối tượng. Thường đối với kiểu lỗi này ngoại lệ (excepton) sẽ được phát sinh.
Các ngoại lệ có thể bị đón bắt và xử lý bởi các đoạn mã JSP thích hợp (thường là trong
khối lệnh try{} catch (Exception){}). Tuy nhiên đối với những ngoại lệ phát sinh
nhưng không được người ta viết trang JSP đón bắt xử lý thích hợp thì ngoại lệ và lỗi sẽ
được gởi đến bộ xử lý lỗi của trình biên dịch JSP. Bản thân trình biên dịch JSP sẽ sinh
ra trang thông báo mô tả cụ thể lỗi trả về cho trình khách. Ta có thể hồn tồn đón bắt và
thay thế những trang thông báo lỗi này sử dụng đối tượng exception.
Để tạo ra trang thông báo lỗi ta cần khai báo như sau:
Error!
3. Các hành động của JSP:
Hành động trong JSP là quá trình trừu tượng hố việc thực thi hay yêu cầu JSP
thực hiện một nhiệm vụ nào đó.
a. Hành động :
Hành động được dùng để cung cấp và tạo các giá trị cho các tham
số theo dạng name/value. thường dùng chung với các hành động <JSP:
include>, , . Cú pháp của hành động được
mô tả như sau:
//Chỉ thị trang JSP hiện hành là trang xử lý lỗi
//hiển thị nội dung thông báo lỗi phát sinh
Error: has been reported.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 21
Error!
Name: thuộc tính này trình bày tên của thông số tham chiếu.
Value: thuộc tính này trình bày giá trị của tên được tham chiếu.
b. Hành động :
Hành động cung cấp cấu trúc cho sự phối hợp tài nguyên tĩnh và
hành động của trang JSP hiện tại. Cú pháp của hành động này như sau:
Error!
Error!
Page: thuộc tính này trình bày quan hệ đường dẫn của tập tin ta muốn include.
Flush: thuộc tính này trình bày giá trị Boolean là true hay false.
Cú pháp đầu tiên mô tả yêu cầu nhúng (include) tập tin cần đưa vào trang JSP.
Cú pháp thứ hai chứa đựng phần tử con param được dùng để làm tham số cho mục
đích include.
c. Hành động :
Hành động cho phép trình dịch JSP gởi đi tại thời điểm thực thi
một yêu cầu hiện hành đến tài nguyên tĩnh, servlet, hay trang JSP khác. Khi hành động
này thực thi nó sẽ kết thúc trang hiện tại. Hành động có thể chứa hành
động . Những thuộc tính này cung cấp các giá trị cho thông số yêu cầu
dùng cho việc chuyển hướng.
Cú pháp của hành động được mô tả như sau:
Error!
< jsp: forward page =
“relativeURLspec”>
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 22
Page: thuộc tính này diễn tả quan hệ URL của đích mà hành động <jsp:
forward> sẽ chuyển đến.
Hành động thường được dùng như một điều kiện trong JSP để
chuyển hướng xử lý.
d. Hành động :
Hành động cho phép JSP tạo trang HTML chứa đựng tính hợp lệ
của cấu trúc trình duyệt máy khách, ví dụ như đối tượng Object hay đối tượng nhúng (Embed).
Hành động tạo một thẻ hay đưa ra dòng xuất
của đối tượng response.
Cú pháp của hành động như sau:
Error!
Thuộc tính của hành động cho phép cấu hình dữ liệu để thể
hiện phần tử đó.
Type: thuộc tính này thể hiện loại plugin cần đưa vào. Ta có thể dùng applet
làm một thành phần nhúng.
Code: thuộc tính này cho biết tên của lớp (class) sẽ được nhúng.
Codebase: thuộc tính này là tham chiếu cơ sở hay đường dẫn liên hệ đến tập
tin plugin .class.
4. JDBC và ODBC (Java Database Connectivity và Open Database Connectivity).
4.1. JDBC.
JDBC (Java Database Connectivity) là giao thức của Java dùng để thực hiện
câu lệnh SQL. JDBC cung cấp tập hợp các lớp và giao diện cho phép phát triển các
ứng dụng Java và ứng dụng Web liên quan đến truy xuất cơ sở dữ liệu. Tương tác căn
bản nhất của của JDBC được liệt kê như sau:
Mở một kết nối với cơ sở dữ liệu (Open connection).
Thực thi các câu lệnh SQL (Execute SQL).
Xử lý dữ liệu (Process results).
<jsp:plugin type = “pluginType” code =
“classFile” codebase = “relativeURLpath” >
. . .
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 23
Đóng kết nối (Close connnection).
Đoạn mã sau đây sẽ diễn giải từng bước cách thực hiện kết nối với cơ sở dữ liệu
bằng JDBC:
// Bước 1. Khai báo biến
Connection cn;
Statement stat;
ResultSet rs;
// Mở kết nối cơ sở dữ liệu ODBC với tên nguồn dữ liệu (datasource
name)Woodstore thông qua ODBC
static final String DBDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
static final String strConn ="jdbc:odbc:woodstore";
// Bước 2. Tham chiếu đến đối tượng cơ sở dữ liệu
stat = conn.createStatement();
// Bước 3. Thực hiện câu lệnh SQL
sSQL = "select * from items where " + sWhere;
// Bước 4 Xử lý dữ liệu
While (rs.next() ){
…
}// Kết thúc vòng While
//Bước 4. Đóng kết nối
rs.close();
stat.close();
con.close();
4.2. ODBC
Open Database Connectivity (ODBC) là một trong những kỹ thuật giao tiếp cơ
sở dữ liệu kiểu cũ được Microsoft cung cấp. Nó chính là bậc tiền bối của ADO. Một
trong những lý do chính của Microsoft khi giới thiệu kỹ thuật này là cho phép lập trình
viên có một phương pháp dễ dàng đễ truy cập nội dung của các cơ sở dữ liệu không
thuộc về một định dạng quen thuộc đối với lập trình viên. Nói cách khác, ta không cần
biết đến ngôn ngữ lập trình Xbase vẫn có thể truy cập đến một file DBF hay Access
Basic để lấy dữ liệu trong một file MDB. Vì SQL là ngôn ngữ không thân thiện lắm
đối với người sử dụng nên ta phải sử dụng qua một công cụ trung gian đóng vai trò
thiết kế để thể hiện các câu lệnh của SQL cho người sử dụng dễ thao tác hơn, công cụ
đó chính là JRUN, để JRUN có thể truy xuất các tập tin MDF của SQL ta phải sử dụng
cầu nối ODBC.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 24
Ta có thể thấy rằng ODBC làm việc như phần ruột của WINDOWS, nó sẽ sử
dụng các trình điều khiển trong các DLL để thi hành công việc. ODBC có hai tập hợp
các trình điều khiển: một tập hợp sử dụng tiếng nói của trình quản lí cơ sở dữ liệu và
tập kia cung cấp phương pháp giao tiếp thông thường cho ngôn ngữ lập trình. Sự kết
hợp của hai tập thông qua một giao diện chấp nhận được cho phép JRUN truy cập nội
dung của cơ sở dữ liệu bằng cách sử dụng một tập hàm chuẩn các hàm gọi. Dĩ nhiên
có nhiều kiểu tiện ích DLL đi kèm với ODBC. Ví dụ như một trong các DLL sẽ cho
phép ta làm chủ nguồn dữ liệu ODBC. Còn giao diện chủ cho ODBC có trog file CPL
(bảng điều khiển) ở thư mục SYSTEM .
ODBC đưa ra đảm bảo rằng có thể cung cấp được phương pháp để lấy nội dung
trong cơ sở dữ liệu mà không có vấn đề gì. Mặc dù trong một số trường hợp, nó không
cung cấp được cách tốt nhất để có thể chuyển đổi dữ liệu giữa trình quản lí cơ sở dữ
liệu và JRUN, nhưng nói chung là tốt. Chỉ có một điều duy nhất cần chú ý là tốc độ thi
hành của nó rất chậm. Nhưng các phiên bản mới của ODBC đã có những cải tiến đáng
kể về tốc độ. Do đó ngày nay nó đã được đánh giá khả quan hơn nhiều.
Hầu như công việc lập trình ứng dụng mà JSP và servlet thường thực hiện nhất
đó là lưu trữ và truy xuất cơ sở dữ liệu.Việc truy xuất cơ sở dữ liệu trong JSP và
servlet dựa vào trình truy xuất ODBC theo chuẩn java.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 25
Chương III
ĐẶC TẢ TÍNH NĂNG
PHẦN II
CÀI ĐẶT ỨNG DỤNG
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 26
Dựa vào yêu cầu của bài tốn, ta nhận thấy hệ thống xây dựng phục vụ chủ yếu
cho ba vấn đề sau:
* Quản trị hệ thống.
* Diễn đàn (forum).
* Khách mua hàng.
I. QUẢN TRỊ HỆ THỐNG
Quản trị hệ thống là người làm chủ ứng dụng, họ có quyền kiểm sốt mọi hoạt
động của hệ thống. Mỗi quản trị hệ thống sẽ được cấp một username và password, để
thực hiện những chức năng của mình, họ phải đăng nhập vào hệ thống bằng username
và password của họ.
Nếu như quá trình đăng nhập thành công thì quản trị hệ thống có những chức
năng sau:
* Chức năng của quản trị đối với quản trị:
Thay đổi những thông tin của quản trị.
Thêm quản trị.
Xóa bỏ quản trị.
* Chức năng của quản trị đối với sản phẩm:
Thêm sản phẩm mới.
Xóa sản phẩm.
Cập nhật lại sản phẩm.
Hiển thị các sản phẩm, hay xóa sản phẩm khi hết hạn sử dụng.
* Chức năng của quản trị đối với đơn đặt hàng:
Hiển thị đơn đặt hàng.
Xóa đơn đặt hàng.
* Chức năng của quản trị đối với khách hàng:
Thêm khách hàng mới.
Thay đổi thông tin khách hàng.
Xố bỏ khách hàng.
II. KHÁCH MUA HÀNG.
Khách mua hàng là những người vào hệ thống để tìm kiếm các mặt hàng cần
mua và đặt hàng với hệ thống.
Khách mua hàng có thể tìm hàng mình cần theo:
Tên mặt hàng (có thể là một ký tự, chữ, câu….).
Tên loại hàng.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 27
Khách hàng có thể thêm bớt những sản phẩm mình muốn hay không muốn mua
vào trong hay ra khỏi giỏ hàng của mình.
Sau khi tìm được hàng mình cần, họ đặt mua hàng với hệ thống. Hệ thống sẽ
chuyển đơn đặt hàng của họ cho dịch vụ mà họ đặt mua.
III. DIỄN ĐÀN (FORUM).
Diễn đàn sẽ giúp khách hàng, cũng như những người trong công ty trao đổi, học
hỏi những kinh nghiệm lẫn nhau.
Chức năng của diễn đàn:
Liệt kê tất cả các topic.
Xem nội dung một topic.
Trả lời một topic.
Xố một topic.
Chương IV
XÂY DỰNG ỨNG DỤNG WOOD STORE
I. HOẠT ĐỘNG VÀ LƯU ĐỒ CỦA ỨNG DỤNG.
1. Hoạt động của ứng dụng.
Một ứng dụng e_commerce đơn giản là web site cung cấp thông tin để khách
hàng có thể liên lạc và biết rõ về sản phẩm và những dịch vụ mà công ty đưa ra. Tiếp
đến khách hàng có thể đặt mua, thanh tốn và hẹn ngày giao hàng hay nhận sự hổ trợ về
dịch vụ từ nhà cung cấp. Tất cả các dịch vụ nêu trên đều diễn ra trên mạng và kiểm sốt
bởi ứng dụng web này. Hai hình thức cơ bản diễn ra trên mạng và kiểm sốt bởi ứng
dụng thương mại điện tử ngày nay là B2B (Business to Business) còn gọi là từ doanh
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 28
nghiệp đến doanh nghiệp, và B2C (Business to Customer) còn gọi là từ doanh nghiệp
đến người tiêu dùng.
Ứng dụng Wood Store của ta là một Web site hổ trợ việc bán các sản phẩm gỗ
trên mạng. Từ trang chủ này, người dùng có thể tìm kiếm, xem các sản phẩm trong
tuần, duyệt theo các thể loại sản phẩm khác nhau. Ngồi ra khách hàng còn có thể đăng
ký thành viên trong web site, tham dự diễn đàn (forum).
Đầu tiên khách hàng có thể tham khảo công ty qua trang giới thiệu. Trang này
sẽ gới thiệu cho ta biết về công, và những điều cần biết.
Hình3.1: Trang giới thiệu về công ty
Cụ thể, khi người dùng kích chuột vào một sản phẩm, họ có thể biết được tên,
giá cả, những chú ý khác về sản phẩm,…
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 29
Hình3.2: Trang chủ
Hình3.3: Trang chi tiết sản phẩm
Nếu muốn mua sản phẩm đó, khách hàng bấm nút Add to Shopping Cart. Sản
phẩm cần mua sẽ được đưa vào giỏ hàng. Giỏ hàng là nơi chứa danh sách các mục
hàng mà người dùng chon mua trong quá trình duyệt Web site. Người dùng có thể thay
đổi số lượng mua, thêm bớt các mục hàng tại đây hoặc quay trở lại chọn các mục hàng
khác. Một khi đã quyết định mua, khách hàng bấm vào nút nhấn Check Out để đi đến
trang xác nhận thanh tốn.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 30
Hình3.4: Trang giỏ hàng
Lúc này, khách hàng thấy rõ tổng số tiền cần phải trả, số mặt hàng cần mua
cùng với số lượng, đơn giá cụ thể. Mục đích để người dùng kiểm tra lại lần cuối những
mặt hàng mình đã chọn.
Nếu đồng ý mua hàng, người dùng bấm vào nút Order Now. Trang điền các
thông tin về giao hàng và thanh tốn sẽ xuất hiện (Hình Creater Order). Tại đây nhiệm
vụ của khách hàng là cung cấp thêm các thông tin để tạo đơn hàng. Những thông tin
này bao gồm: loại hình thanh tốn (bằng tiền mặt, bằng credit card, sec), cách thức giao
hàng, địa chỉ liên lạc,… sau cùng khách hàng nhấn vào nút Save Order để tạo đơn đặt
hàng và hồn tất quá trình giao dịch. Web site của ta sẽ lưu đơn hàng vào cơ sở dữ liệu,
tạo mã số đơn hàng và thông báo đến khách hàng giao dịch đã hồn tất.
Hình 3.5: Trang check out
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 31
Hình3.6: Trang creater Order
Để hổ trợ khách hàng trong quá trình mua sắm trên mạng ta cung cấp thêm cơ
chế tìm kiếm trên Web site. Từ trangchủ, nếu nhập vào một tên sản phẩm nào đó và
nhấn nút search, danh mục các sản phẩm có trong danh sách sản phẩm sẽ hiển thị theo
mong muốn của khách hàng.
Hình 3.7: Trang tìm kiếm(Search)
Ngồi việc tìm kiếm theo tên sản phẩm, để tạo thuận tiện cho người dùng ta bố
trí thêm trang thực hiện tìm kiếm những yêu cầu cao hơn (để đến với trang này người
dùng kích chuột vào liên kết Advance Search của trang chủ). Trang tìm kiếm Advance
Search cho phép tìm mục hàng hay tên sản phẩm, tên công ty sản xuất, giá cao nhất và
giá thấp nhất…
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 32
Hình3.8: Trang tìm kiếm yêu cầu cao hơn (AdvancedSearch)
Ngồi ra, người dùng có thể chọn mục Registration từ trang chủ để đăng ký làm
thành viên của Web site. Trang đăng ký sẽ nhập đầy đủ những thông tin cần thiết giúp
người dùng tận dụng những Web site forum, … Đăng ký làm thành viên cũng là yêu
cầu bắt buộc nếu như khách hàng đó thực hiện mua hàng trên Web site. Những thông
tin này được Web site lưu trữ để liên lạc với khách hàng. Hỗ trợ các dịch vụ hậu mãi
cho khách hàng sau này. Vì những thông tin đăng ký sẽ được sử dụng về sau nên bạn
phải nhập chính xác thông tin này. Nếu nhập sai bạn sẽ được yêu cầu nhập lại các
trường thông tin không hợp lệ.
Hình 3.9: Trang đăng ký (Registration)
Người dùng trước khi lướt qua Web có thể chọn mục Sign In từ trang chủ để
đăng nhập vào Web site. Nếu khách hàng đăng ký làm thành viên của Web site bạn sẽ
được cấp một tài khoản đăng nhập (gồm Username/password). ta sử dụng tài khoản
này để đăng nhập vào hệ thống.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 33
2. Lưu đồ hoạt động của ứng dụng.
2. Các lưu đồ hoạt động của website.
a. Lưu đồ hoạt động của web site phục vụ khách hàng và người quản trị.
b. sơ đồ phân rã các chức năng của ứng dụng.
Trang chủ
(Home page)
Các dịch vụ
forum,…
Xem nội dung chi
tiết một sản phẩm
Chọn sản phẩm cần mua
thêm vào danh mục giỏ
hàng (Shopping Cart)
Xác nhận việc mua
hàng (Check out)
Đặt hàng
Thành Viên? Quản trị
Đăng nhập
(login)
Lưu đơn hàng và hẹn
ngày giao hàng
Tìm kiếm
Yes
No
Sản phẩm
Đăng ký
SƠ ĐỒ PHÂN RÃ CÁC CHỨC NĂNG
ADMIN FORUM KHÁCH HÀNG
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 34
c. Lưu đồ mua hàng trên mạng
d. Lưu đồ xử lý kiểm tra khách hàng mua hàng :
Không tồn tại
Tồn tại
Bắt đầu mua hàng
Màn hình giao tác Kết thúc
Chọn hàng hóa
Đặt hàng
Đăng ký thành
viên
Kết thúc
Xác nhận đơn
hàng
Mở table
members
Kiểm tra người
dùng ?
Tìm kiếm
hàng hóa
Yêu cầu nhập
username-password
Bắt đầu
đăng nhập
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 35
e. Lưu đồ xử lý kiểm tra người quản trị.
Yêu cầu nhập
username-password
Mở table members
Kiểm tra có tồn tại?
Bắt đầu
đăng nhập
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 36
II. XÂY DỰNG ỨNG DỤNG WOOD STORE
1. Thiết kế xử lý.
1.1. Thiết kế xử lý cho người quản lý.
1.1.1. Phân tích các hành động.
Để thiết kế các xử lý phục vụ cho người quản lý, ta cần phân tích kỹ các hoạt
động của người quản lý để có thể thực hiện trong thực tế. Và từ sự phân tích này ta sẽ
có những xử lý thích hợp cho hệ thống.
Các hành động của một công ty trong thực tế để theo dõi quá trình mua bán
hàng hóa sẽ được mô tả bằng bảng sau: Các hành động của người quản lý trong thực tế
được mô tả bằng bảng sau:
STT HOẠT ĐỘNG MÔ TẢ
1 Quản lý khách hàng Quản lý những khách hàng
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 37
2 Quản lý đơn hàng Quản lý các đơn hàng của khách hàng
3 Quản lý sản phẩm Cập nhật(thêm, xố, sửa) các sản phẩm
1.1.2. Thiết kế xử lý.
a. Quản lý khách hàng.
Thay đổi thông tin về khách hàng:
Hoạt động này được người quản lý thực hiện nhằm thay đổi thông tin của khách
hàng như password, họ, tên, email, địa chỉ…
Thêm một khách hàng.
Xố một khách hàng
Một người quản lý có thể xố bỏ một khách hàng nếu khách hàng đó không đủ
những thông tin cần thiết, hoặc khách hàng đó không tuân thủ những qui định của
công ty.
Tóm lại: các hoạt động mà người quản lý có thể tương tác với server để quản lý
khách hàng được mô tả bằng sơ đồ sau:
Như vậy cần thiết kế các khối xử lý sau để đáp ứng các hành động của khách hàng.
XỬ LÝ: Liệt kê danh sách khách hàng(XLKH01)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu liệt kê danh sách khách hàng .
Lấy danh sách khách hàng từ cơ sở dữ liệu .
Đưa ra danh sách khách hàng .
XỬ LÝ: Thay đổi thông tin của khách hàng(XLKH02)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu thay đổi thông tin.
Lấy các thông tin cần thay đổi.
Cập nhật thông tin thay đổi vào cơ sở dữ liệu.
Thông báo quá trình thay đổi thành công.
XỬ LÝ: Thêm khách hàng(XLKH03)
Xử lý này được mô tả như sau:
Tiếp nhận đăng ký của khách hàng.
Yêu cầu các thông tin về khách hàng cần thêm.
Liệt kê danh sách khách hàng
Thay đổi thông tin khách hàng
Thêm khách hàng vào hệ thống
Xóa khách hàng khỏi hệ thống
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 38
Kiểm tra các thông tin cần thêm vào xem có phù hợp không. Nếu hợp lệ thì
tiếp tục, ngược lại báo không hợp lệ và quay lại bước hai của khối xử lý này.
Ghi nhận thông tin của khách hàng vừa thêm vào cơ sở dữ liệu.
Thông báo quá trình đăng ký thành công.
XỬ LÝ: Xố khách hàng(XLKH04)
Xử lý này được mô tả như sau :
Tiếp nhận yêu cầu xố khách hàng.
Lấy danh sách khách hàng cần xố.
Xố khách hàng khỏi cơ sở dữ liệu.
b. Quản lý sản phẩm:
Thay đổi thông tin sản phẩm .
Thêm sản phẩm.
Xố một sản phẩm: khi một sản phẩm nào đó mà người quản lý thấy cần phải
xố đi.
Tóm lại: Các hoạt động mà người quản lý tương tác với Server để quản lý sản
phẩm được mô tả bằng sơ đồ sau:
Như vậy các khối xử lý cần thiết để đáp ứng các hành động của người quản lý
trong lĩnh vực sản phẩm như sau:
XỬ LÝ: Liệt kê danh sách các sản phẩm (XLSP01)
Tiếp nhận yêu cầu liệt kê danh sách sản phẩm .
Lấy danh sách các sản phẩm từ cơ sở dữ liệu
Đưa ra danh sách các sản phẩm .
XỬ LÝ: Thay đổi thông tin sản phẩm(XLSP02)
Tiếp nhận yêu cầu thay đổi thông tin sản phẩm muốn thay đổi.
Lấy các thông tin muốn thay đổi về sản phẩm .
Thay đổi các thông tin này trên tất cả các bảng có liên quan đến mã sản phẩm
cần thay đổi.
Cập nhật lại cơ sở dữ liệu.
XỬ LÝ: Thêm sản phẩm(XLSP03)
Liệt kê các sản phẩm
Thay đổi thông tin sản phẩm
Thêm một sản phẩm
Xoá một sản phẩm
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 39
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu thêm sản phẩm
Lấy mã số sản phẩm (item_id) lớn nhất +1 trong bảng items để tạo khố cho
sản phẩm mới sắp tạo.
Kiểm tra các yêu cầu cần thêm vào xem có phù hợp không, nếu hợp lệ thì tiếp
tục bước 4 của khối xử lý này, ngược lại thì quay lại bước 2 của khối xử lý này.
Ghi nhận thông tin của sản phẩm vừa thêm vào cơ sở dữ liệu.
XỬ LÝ: Xố sản phẩm(XLSP04)
Tiếp nhận yêu cầu xố sản phẩm bằng cách lấy khố của sản phẩm muốn xố.
Xố tất cả các bảng có liên quan đến mã sản phẩm này trong cơ sở dữ liệu.
c. Quản lý đơn hàng:
Xem thông tin đơn hàng .
Xố một đơn hàng
XỬ LÝ: Liệt kê danh sách các đơn hàng(XLĐH01)
Tiếp nhận yêu cầu liệt kê danh sách đơn hàng.
Lấy danh sách các đơn hàng từ cơ sở dữ liệu.
Đưa ra danh sách các đơn hàng.
XỬ LÝ: Xố đơn hàng(XLĐH02)
Tiếp nhận yêu cầu xố đơn hàng bằng cách lấy khố của đơn hàng muốn xố.
Xố tất cả các bảng có liên quan đến mã đơn hàng này trong cơ sở dữ liệu.
Thông báo quá trình xố thành công.
Tổng kết các xử lý
Như vậy, các xử lý phục vụ cho công ty đã được xây dựng. Chúng được tóm
tắt lại bằng bảng mô tả và sơ đồ sau:
Bảng dưới đây chú sẽ chú thích các khối xử lý
XLĐN01
XLKH02
XLKH03
XLKH04
XLKH01
XLSP01
XLSP02
XLSP03
XLSP04
XLKT05
XLĐH01 XLĐH02
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 40
STT KHỐI XỬ LÝ MÔ TẢ
1 XLĐN01 Đăng nhập vào hệ thống
2 XLKT05 Kết thúc phiên làm việc
3 XLKH01 Liệt kê danh sách khách hàng
4 XLKH02 Thay đổi thông tin khách hàng
5 XLKH03 Thêm khách hàng mới
6 XLKH04 Xố khách hàng
7 XLĐH01 Liệt kê danh sách đơn hàng
8 XLĐH02 Xố đơn hàng
9 XLSP01 Liệt kê danh sách sản phẩm
10 XLSP02 Thay đổi thông tin sản phẩm
11 XLSP03 Thêm sản phẩm
12 XLSP04 Xố sản phẩm
1.2. Thiết kế xử lý khách hàng.
Các xử lý được thiết kế trong phần này sẽ đáp ứng các hành động phục vụ
khách hàng trong quá trình tìm kiếm và mua mặt hàng mình cần. Danh sách các xử lý
được mô tả bằng bảng sau:
STT XỬ LÝ HOẠT ĐỘNG
1 Tìm hàng Tìm kiếm hàng hóa
2 Chọn hàng Lựa chọn mặt hàng trong hệ thống
3 Liêt kê hàng chọn Liệt kê danh sách hàng đã chọn
4 Xóa hàng Xóa mặt hàng đã chọn
5 Cập nhật hàng Thay đổi số lượng mua của mặt hàng đã chọn
6 Mua hàng Đặt mua các mặt hàng đã chọn
7 Đăng ký mới Khách hàng phải đăng ký làm thành viên
a. Tìm hàng.
Hành động tìm hàng được thực hiện khi khách hàng cần tìm một mặt hàng nào
đó từ hệ thống. Để thực hiện hành động tìm hàng, khách hàng sẽ đưa ra các từ khóa
cho các mặt hàng cần tìm. Server lấy thông tin về các từ khóa này, tìm kiếm các mặt
hàng thỏa điều kiện trong cơ sở dữ liệu và hiển thị danh sách các mặt hàng tìm được.
XỬ LÝ: Tìm hàng (XLKH01)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu tìm mặt hàng
Lấy các từ khóa tìm hàng từ yêu cầu.
Tìm kiếm các mặt hàng thỏa yêu cầu tìm kiếm trong cơ sở dữ liệu
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 41
Hiển thị danh sách các mặt hàng tìm được.
b. Chọn hàng.
Trong quá trình tìm kiếm các mặt hàng ở hệ thống, khách hàng sử dụng hoạt
động này để chọn mặt hàng khách hàng cần. Hoạt động này sẽ đặt mặt hàng được chọn
vào danh sách các mặt hàng được chọn.
XỬ LÝ: Chọn hàng (XLKH02)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu chọn hàng.
Lấy mặt hàng được chọn từ yêu cầu.
Thực hiện việc đặt mặt hàng được chọn vào danh sách hàng chọn.
Thông báo việc thực hiện chọn hàng thành công.
c. Liệt kê hàng chọn.
Hành động này sẽ liệt kê tất cả các mặt hàng mà khách hàng chọn trong quá
trình tìm hàng. Hành động này là cơ sở để thực hiện hai hành động: cập nhật hàng
chọn và xóa hàng chọn.
XỬ LÝ: Liệt kê hàng chọn (XLKH03)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu liệt kê hàng chọn.
Lấy số hiệu session của khách hàng từ yêu cầu.
Lấy các mặt hàng mà khách hàng đã chọn từ số hiệu session này.
Liệt kê danh sách các mặt hàng được chọn.
d. Xóa hàng chọn.
Hoạt động xóa hàng chọn được thực hiện khi khách hàng có nhu cầu xóa một
mặt hàng mà họ đã chọn trong quá trình tìm kiếm hàng hóa. Để thực hiện hành động
này, khách hàng sẽ cung cấp cho server danh sách các mặt hàng cần xóa.
XỬ LÝ: Xóa hàng chọn (XLKH04)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu xóa hàng chọn.
Lấy danh sách các mặt hàng cần xóa từ yêu cầu.
Xóa các mặt hàng thỏa mãn yêu cầu từ danh sách hàng chọn.
Thông báo việc xóa hàng chọn thành công.
e. Cập nhật hàng chọn.
Hoạt động cập nhật hàng chọn được khách hàng sử dụng để cập nhật số lượng
hàng mà khách hàng đã sử dụng. Khi thực hiện hành động này, khách hàng sẽ cung
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 42
cấp tên mặt hàng cũng như số lượng hàng cần cập nhật. Server sẽ tiếp nhận yêu cầu
này, thay đổi các thông tin cần thiết và thông báo quá trình cập nhật hàng thành công.
XỬ LÝ: Cập nhật mặt hàng (XLKH05)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu cập nhật mặt hàng.
Tiếp nhận mã mặt hàng và số lượng hàng cần cập nhật.
Cập nhật số lượng hàng cần thiết.
Thông báo quá trình cập nhật mặt hàng thành công.
f. Đăng ký mua hàng.
Hoạt động đăng ký mua hàng được khách hàng sử dụng để đăng ký mua các
mặt hàng đã chọn. Khi thực hiện hành động này, khách hàng sẽ cung cấp họ tên, địa
chỉ giao hàng. Server tiếp nhận các thông tin này và cập nhật đơn đặt hàng của khách
hàng vào cơ sở dữ liệu.
XỬ LÝ: Đăng ký mua hàng (XLKH06)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu đăng ký mua hàng.
Lấy thông tin của khách hàng từ yêu cầu.
Từ thông tin này và hóa đơn đặt hàng, cập nhật các thông tin cần thiết vào cơ sở
dữ liệu.
Thông báo quá trình đặt hàng thành công.
g. Đăng kí mới (Tạo mới khách hàng ).
Khách hàng muốn tham gia mua hàng phải đăng kí, bao gồm các thông tin do
công ty bắt buộc thông qua chương trình, để tiện cho việc quản lý. Các bước đăng kí
bao gồm:
XỬ LÝ: Đăng kí mới khách hàng(XLKH07)
Tiếp nhận yêu cầu đăng kí username
Tiếp nhận các thông tin đăng kí của username
Kiểm tra các thông tin này xem có phù hợp không như username, password,
email… nếu không phù hợp thì quay lại bước hai của khối xử lý này, ngược lại thì tiếp
tục.
Lấy max(member_id)+1 theo member_id trong bảng members để tạo khố
cho khách hàng .
Ghi nhận các thông tin vào cơ sở dữ liệu.
Thông báo quá trình đăng kí thành công.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 43
Tổâng kết xử lý
Các xử lý đáp ứng các hoạt động của khách hàng được tổng kết bằng sơ đồ và
bảng sau:
Bảng dưới đây sẽ chú thích các khối xử lý
STT KHỐI XỬ LÝ MÔ TẢ
1 XLKH01 Tìm kiếm hàng hóa
2 XLKH02 Lựa chọn mặt hàng trong hệ thống
3 XLKH03 Liệt kê danh sách hàng đã chọn
4 XLKH04 Xóa mặt hàng đã chọn
5 XLKH05 Thay đổi số lượng đặt mua của mặt hàng đã chọn
6 XLKH06 Đặt mua các mặt hàng đã chọn
7 XLKH07 Đăng ký thành viên mới
8 XLKH08 Kết thúc mua sắm
2. Thiết kế cơ sở dữ liệu.
a. Sơ đồ thực thể kết hợp.
XLKH06
XLKH04
XLKH05
XLKH03
XLKH08
XLKH01 XLKH02
XLKH07
CTDH_MH
MEMBERS
Member_id
Member_login
Member_password
Member_level
First_name
Last_name
Email
Phone
Address
Notes
Bank_type_id
Account_number
SHOPPINGCAR
T
User_id
Item_id
Item_desc
Price
quantity
ITEMS
Item_id
Category_id
Name
Producer
Price
Product_url
Image_url
Notes
Is_recommended
ORDERDETAILS
Order_id
Item_id
Item_desc
Quantity
price
BANK_TYPES
Bank_type_id
Name
CATEGORIE
S
m
em
O
rd
er
de
ta
ils
-
ite
m
s
mem - sho
C
at
eg
or
ie
s
- i
te
m
Ed
it
- i
te
m
s
ba
nk
- m
em
Sho - Items
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 44
b. Thiết kế cơ sở dữ liệu bảng.
* Bảng cơ sở dữ liệu : Xây dựng cơ sở dữ liệu cho wood store bao gồm các
bảng sau:
Editorial_categories:Bảng chứa các đề mục cho trang chủ
KEY COMLUMN NAME DATATYPE LENGTH
K Editorial_cat_id Smallint 2
Editorial_cat_name Varchar 50
Chú thích:
Editorial_cat_id: Mã số đề mục cho trang chủ.
Editorial_cat_name: Tên đề mục cho trang chủ.
Editorials:Bảng chi tiết các đề mục cho trang chủ
KEY COMLUMN NAME DATATYPE LENGTH
K Article_id Smallint 2
Editorial_cat_id Smallint 2
Article_title Varchar 200
Article_desc Varchar 200
Item_id Smallint 2
Chú thích:
Article_id: Mã số chi tiết của nội dung đề mục.
Editorial_cat_id: Mã số đề mục cho trang chủ.
Article_title: Tiêu đề chi tiết của đề mục.
Article_desc: Nội dung chi tiết của đề mục.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 45
Item_id: Sản phẩm mà đề mục mô tả.
Categories: Bảng danh mục các thể loại sản phẩm
KEY COMLUMN NAME DATATYPE LENGTH
K Category_id Smallint 2
Name Varchar 50
Chú thích:
Category_id: Mã số phân loại.
Category_id: Tên phân loại.
Items: Bảng danh mục chi tiết nội dung các sản phẩm
KEY COMLUMN NAME DATATYPE LENGTH
K Item_id Smallint 2
Category_id Smallint 2
Name Varchar 50
Producer Varchar 50
Price Varchar 50
Product_url Varchar 250
Image_url Varchar 100
Notes Varchar 200
Is_recommended smallint 2
Chú thích:
Item_id: Mã số sản phẩm.
Category_id: Mã số phân loại.
Name: Tên sản phẩm.
Producer: Tên công ty sản xuất.
Price: Đơn giá.
Product_url: Đường dẫn chứa ảnh của sản phẩm.
Notes: Giới thiệu sơ về sản phẩm.
Is_recommended: Cờ cho phép giới thiệu với khách hàng sản phẩm ở trang chủ.
Members: Bảng danh mục chứa thông tin thành viên
KEY COMLUMN NAME DATATYPE LENGTH
K Member_id Int 4
Member_login Varchar 20
Member_password Varchar 20
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 46
Member_level Smallint 2
First_name Varchar 30
Last_name Varchar 30
Email Varchar 50
Phone Varchar 50
Address Varchar 50
Notes Varchar 200
Bank_type_id Smallint 2
Account_number Varchar 50
Chú thích:
Member_id: Mã số thành viên.
Member_login: Tên đăng nhập.
Member_password: Mật khẩu.
Member_level: Quyền đăng nhập(1-quyền User thường. 2 - quyền cho người
quản trị).
First_name: Họ
Last_name: Tên.
Email: Địa chỉ Email.
Phone: Điện thoại.
Address: Địa chỉ liên lạc.
Notes: Ghi chú khác.
Bank_type_id: Tên ngân hàng.
Account_number: Số tài khoản ngân hàng.
Orders:bảng chứa đơn đặt hàng
KEY COMLUMN NAME DATATYPE LENGTH
K Order_id Int 4
Member_id Int 4
Payment Varchar 50
Shipping Varchar 50
Orderdate Datetime 8
Chú thích:
Order_id: Mã số đơn hàng.
Member_id:Mã số thành viên.
Payment: Hình thức thanh tốn.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 47
Shipping: Hình thức giao hàng.
Orderdate:Ngày giao hàng.
OrderDetails: bảng chứa chi tiết đơn hàng
KEY COMLUMN NAME DATATYPE LENGTH
K Order_id Int 4
Item_id Smallint 2
Item_desc Varchar 50
Quantity Smallint 2
price Float 8
Chú thích:
Order_id: Mã số đơn hàng.
Item_id: Mã số sản phẩm.
Item_desc: Tên sản phẩm
Quantity: Số lượng mua.
Price: Đơn giá.
Bank_types:bảng chứa các loại ngân hàng
KEY COMLUMN NAME DATATYPE LENGTH
K Bank_type_id Smallint 2
Name Varchar 50
Chú thích:
Bank_type_id: Mã số ngân hàng.
Name: Tên ngân hàng.
ShoppingCart:bảng chứa các thông tin về giỏ hàng
KEY COMLUMN NAME DATATYPE LENGTH
User_id Int 4
Item_id Smallint 2
Item_desc Varchar 50
Price Float 8
quantity Smallint 2
Chú thích:
User_id: Mã số thành viên đăng nhập.
Item_id: Mã số sản phẩm.
Item_desc:Tên sản phẩm
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 48
Price: Đơn giá
Quantity: Số lượng.
3. Các trang dùng cho người quản trị.
3.1. Trang AdminWoodView (Quản trị sản phẩm)
Trang này dùng để xem danh sách các mục hàng hiện có trong kho. Tại đây nhà
quản trị có thể chọn mục thêm mới, sữa đổi hoặc xố đi các mặt hàng đang có.
Vấn đề bảo mật trong trang quản trị này cần phải đặt lên hàng đầu. Bởi những
thông tin quản trị thường là những thông tin quan trọng, chỉ danh cho những người có
thẩm quyền thì mới được phép sử dụng trang quản trị này. Vì lý do này, hầu như các
trang quản trị ta đều gọi hàm checkSecurity() ở đầu trang.
Trang AdminWoodView có 3 liên kết cơ bản, một liên kết cho phép thêm mới
mục hàng (Add new), liên kết thứ hai cho phép hiệu chỉnh nội dung của mục hàng
hiện hành (Edit). Liên kết cuố i cùng cho phép xố mục hàng khỏ i danh
sách (Delete).
3.2.AdminOrderView (Quản trị đơn hàng).
Quản trị đơn hàng chủ yếu giúp người quản lý xem thông tin các đơn hàng mà
khách hàng đã đặt hàng qua mạng. Xem những thông tin mà khách hàng trong cơ sở
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 49
dữ liệu. Trang này giúp cho người quản lý xem và xố các đơn đặt hàng trong bảng
Orders và OrderDetails.
3.3.AdminMemberView (Quản trị người dùng)
Ngồi việc quản lý đơn hàng, thay đổi lượng sản phẩm trong kho, ta cung cấp
thêm các trang cho phép nhà quản trị quản lý các thành viên đăng ký với Web site.
Trang quản trị người dùng này hoạt động giống với các trang quản lý các, nó cơ
chế duyệt xem danh sách các thành viên đã đăng ký, xố thành viên đăng ký.
Chương V
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 50
XÂY DỰNG ỨNG DỤNG FORUM
I. DIỄN ĐÀN (FORUM) VÀ CƠ CHẾ HOẠT ĐỘNG.
1. Diễn đàn.
Trong các ứng dụng Web hoặc các Web site lớn, thường thấy một góc của ứng
dụng mang tên diễn đàn hay còn gọi với tên thông dụng trên Internet là forum. Diễn
đàn là nơi mọi người đưa ra các ý kiến bàn bạc thảo luận liên quan đến một chủ đề nào
đó. Ví dụ diễn đàn có thể giúp cho con người trao đổi kinh nghiệm và học hỏi lẫn
nhau, …
Diễn đàn là nơi khách hàng có thể trao đổi các vấn đề gút mắc với các công ty,
hoặc những người truy nhập vào mà có khả năng tháo gỡ các gút mắc mà khách hàng
yêu cầu. Đây cũng là nơi trao đổi các vấn đề trong công ty.
2. Cơ chế hoạt động.
Đầu tiên truy cập vào trang chủ của web site trên trang chủ sẽ có nút Forum. Ta
nhấn vào nút này sẽ đưa chúng ta đến trang chủ của diễn đàn (trang index.jsp).
Nơi đây ta có thể tham khảo các chủ đề hiện có hoặc thêm vào các chủ đề thảo luận
mới chúng ta gọi từ topic. Mỗi mục ta thêm vào được gọi là “tuyến” hay thread. Hình
2.1 là trang chủ của diễn đàn
Hình 2.1: Trang chủ của diễn đàn
Tại trang chủ, ta có thể sắp xếp các đề mục theo chủ đề, theo tên người gửi bài
hoặc theo ngày tháng, hoặc ta có thể xố đi một chủ đề. Nếu muốn xem nội dung của
một chủ đề đã được mọi người thảo luận trước đó như thế nào, ta có thể kích chuột vào
tên của từng chủ đề. Danh sách và nội dung thảo luận sẽ được trang viewthread.jsp
hiển thị như hình 2.2
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 51
Hình 2.2: Trang xem nội dung chủ đề
Từ trang chủ, ta cũng có thể chọn hyperlink New Thread để tạo một mục mới
(một chủ đề mới) hình 2.3.
Hình 2.3: Tạo một chủ đề mới
Từ trang chủ, ta có thể nhập vào một chuỗi thông tin và nhấn nút Search xem đã
có người thảo luận về thông tin mà ta cần tìm hay chưa hình 2.4.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 52
Hình 2.4 là kết quả tìm kiếm về chủ đề
Một khi danh sách các đề mục khá dài, để hiển thị, sử dụng kỹ thuật phân trang
chỉ cho hiển thị 5 đề mục trên một trang. Ta đã hiểu qua cách hoạt động của diễn đàn.
II. XÂY DỰNG ỨNG DỤNG FORUM.
1. Thiết kế diễn đàn.
1.1. Thiết kế xử lý.
Các hoạt động chính của diễn đàn trong chương trình bán hàng là:
Liệt kê tất cả các topic của diễn đàn.
Tìm kiếm một topic.
Tạo mới một topic.
Trả lời một topic.
Xố một topic.
Tóm lại: Cơ chế một diễn đàn được mô tả bằng sơ đồ sau:
Error!
XỬ LÝ: Liệt kê tất cả các topic
Các topic ở đây là các vấn đề mà khách hàng muốn trao đổi với công ty, hoặc
muốn các thành viên trong công ty với nhau nhằm bàn bạc về một vấn đề nào đó. Xử
lý này được mô tả như sau:
Tiếp nhận yêu cầu liệt kê các topic.
Lieät keâ taát caû caùc topic Tìm kieám moät topic
Taïo môùi moät topic
Traû lôøi moät topic
Lieät keâ taát caû caùc ñaùp öùng
Xoaù moät topic
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 53
Truy xuất cơ sở dữ liệu (bảng messages)
Xuất ra màn hình các topic.
XỬ LÝ: Tạo mới một topic
Khi cần một khách hàng có thể trao đổi các vấn đề mà cần bàn bạc đến các
khách hàng khác và mong có ý kiến trao đổi của nhiều người. Việc tạo mới một topic
được mô tả như sau:
Tiếp nhận yêu cầu tạo mới một topic.
Tiếp nhận các nội dung của việc tạo topic như tên topic, người tạo topic và nội
dung topic.
Lấy max(message_id)+1 trong bảng messages để tạo khố cho topic.
Lưu vào trong cơ sở dữ liệu.
XỬ LÝ: Tìm kiếm theo nội dung topic
Yêu cầu này đặt ra khi có quá nhiều topic, người sử dụng chỉ muốn tìm kiếm
một topic có chủ đề giống chủ đề mình cần tìm. Mô tả việc tìm kiếm một nội dung
topic như sau:
Tiếp nhận yêu cầu tìm kiếm topic
Lấy thông tin tìm kiếm.
Truy xuất cơ sở dữ liệu có topic có chữ giống với nội dung tìm kiếm.
Liệt kê các topic thoả yêu cầu tìm kiếm.
XỬ LÝ: Liệt kê tất cả các đáp ứng cho một topic
Khi khách hàng hoặc thành viên của công ty chọn một topic để xem xét các trả
lời cho topic tương ứng thì yêu cầu này cần phải thực hiện như sau:
Tiếp nhận yêu cầu cần liệt kê.
Lấy mã số của tên topic cần liệt kê (mã số = message_id).
Truy xuất cơ sở dữ liệu tương ứng với message_id đó.
Liệt kê tất cả các đáp ứng của topic.
XỬ LÝ: Đáp ứng một topic
Mỗi khách hàng hoặc thành viên của công ty có thể trao đổi kinh nghiệm về
một vấn đề mà mình biết cho các khách hàng hoặc thành viên khác mà họ đang quan
tâm vấn đề đó. Các bước xử lý được mô tả như sau:
Tiếp nhận yêu cầu đáp ứng.
Lấy mã số của topic cần đáp ứng.
Ghi nhận các thông tin của người đáp ứng (tên, nội dung đáp ứng) vào cơ sở dữ liệu.
XỬ LÝ: Xố một topic
Tiếp nhận yêu cầu xố một topic
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 54
Lấy mã số của topic cần xố.
Xố tất cả nội dung của topic trong cơ sở dữ liệu
1.2. Thiết kế bảng dữ liệu
Xây dựng diễn đàn bằng JSP cho Web site này, chúng ta cần một bảng cơ sở dữ
liệu để lưu nội dung của chủ đề bàn bạc, tên tác giả, người gửi bài, ngày tháng bài
được gởi, … cùng các trang JSP tương tác khác.
Messages:Bảng chứa thông tin của diễn đàn
KEY COMLUMN NAME DATATYPE LENGTH
K Message_id Smallint 2
Message_parent_id Smallint 2
Topic Varchar 50
Author Varchar 50
Date_entered Datetime 8
Message Varchar 300
Chú thích:
Message_id: Khố duy nhất cho mỗi đề mục.
Message_parent_id: Quan hệ với đề mục cha (NULL nếu là đề mục gốc).
Topic: Tiêu đề cần thảo luận của đề mục.
Author: Tên người gởi bài.
Date_entered: Ngày gởi bài.
Message: Nội dung cần thảo luận.
2. Chức năng các trang JSP cho ứng dụng forum: bao gồm các trang sau.
2.1. Trang index.jsp
Trước hết là trang index.jsp, đây là trang chủ của một ứng dụng. Trong trang
này ta đọc từ bảng dữ liệu message các chủ đề hiện có. Hiển thị các chủ đề và phân
trang chúng(5 mẫu tin đọc được trên một trang). Người dùng có thể kích chuột vào các
liên kết Previous hoặc Next để đi đến các trang dữ liệu khác. Ta cũng được cung cấp
cơ chế sắp xếp dữ liệu theo tên đề mục (topic), tên người gửi, ngày tháng bài được
gửi… Trang chủ index.jsp cũng bao gồm một thẻ trỏ đến trang search.jsp thực
hiện thao tác tìm kiếm khi ta nhấn vào search (submit).
2.2. Phần tiêu đề trang: chỉ là file chứa các hình ảnh tiêu đề và logo dành cho
ứng dụng sẽ xuất hiện ở mọi trang giao diện JSP khác.
2.3. Trang viewthread.jsp
Khi người dùng kích chuột vào một hyperlink của một chủ đề cần thảo luận ta
sẽ sử dụng trang viewthread.jsp để hiển thị chi tiết các mục trả lời đã được gởi lên.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 55
Mỗi chủ đề cung cấp số mid (message_id) trên đường liên kết URL dạng query string,
trang viewthread.jsp sử dụng tham số này để tìm ra chủ đề chính cũng như các câu trả
lời con liên quan (căn cứ vào trường message_parent_id).
2.4. Trang newthread.jsp
Nếu người dùng muốn tạo một chủ đề mới, họ có thể kích chuột vào mục
newthread của trang chủ. Trang newthread.jsp dưới đây sẽ hiển thị giao diện để người
dùng nhập vào tên người gởi bài, tên chủ đề và nội dung.
2.5. Trang savethread.jsp
Nhiệm vụ của trang này khá đơn giản. Đầu tiên nó tiếp nhận dữ liệu do trang
newthread.jsp gửi lên. Tiếp đến, là tạo khố cho mục dữ liệu chèn vào. Khố được tạo
bằng cách lấy giá trị lớn nhất của trường message_id hiện hành cộng thêm 1. sau cùng
lệnh SQL INSERT được gọi để chèn dữ liệu vào bảng.
2.6. Trang reply.jsp
Trong quá trình xem trả lời của các mục thảo luận, người dùng có thể nhấn vào
nút Reply để phản hồi hoặc góp thêm ý kiến vào mục thảo luận. Trang reply.jsp rất
giống với trang newthread.jsp, tuy nhiên trang reply.jsp liên quan đến các đề mục đã
có.
2.7. Trang savereply.jsp
Tương tự như trang savethread.jsp trước đây, trang savereply.jsp thực hiện chức
năng lưu câu trả lời vào bảng dữ liệu. Tuy nhiên, vì đây là câu trả lời liên quan đến đề
mục đã có, ta lấy khố của đề mục cha từ đối số gửi lên bởi trang reply.jsp mang tên
mid. Sau cùng, lệnh INSERT của SQL được gọi để chèn dữ liệu cho câu trả lời vào
bảng dữ liệu.
2.8. Trang search.jsp
Một khi trang web của ta được nhiều người sử dụng truy cập và thảo luận trên
forum, lượng đề mục cũng như số luợng câu trả lời sẽ tăng lên. Chúng ta cần cung cấp
cơ chế cho phép người dùng tìm kiếm xem một đề mục nào đó đã được thảo luận trước
đó hay chưa. Trang search.jsp sẽ thực hiện công việc này.
Cơ chế hiển thị của trang search.jsp rất giống với trang index.jsp, tuy nhiên
trang search.jsp thực hiện chức năng tìm kiếm trong mệnh đề WHERE của câu lệnh
SQL dựa vào dữ liệu từ ô nhập liệu mang tên s_topic. Trang search.jsp được gọi từ
thuộc tính action của thẻ trong trang index.jsp. Nội dung như sau
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 56
Chương VI
HẠN CHẾ – HƯỚNG CẢI TIẾN
1. Hạn chế
Như vậy, em đã thiết kế thành công và đã hiện thực được mô hình bán hàng qua
mạng (thương mại điện tử). Nhưng với lượng thời gian có hạn và nội dung đề tài quá
lớn, nên không thể hồn thiện tất các chức năng cần thiết cho mô hình. Chính vì lý do
này, hệ thống còn một số hạn chế nhất định là điều khó tránh khỏi.
Dưới đây là một số hạn chế mà không thể xây dựng:
Quá trình kiểm tra và thử nghiệm hệ thống chưa được chú ý vì lý do không đủ
nhân lực và thời gian thực hiện còn hạn hẹp.
Hệ thống giúp đỡ sử dụng của hệ thống chưa được xây dựng. Hạn chế này sẽ
gây khó khăn rất nhiều cho người dùng cuối (end user).
Hệ thống chỉ có bản cài đặt trên môi trường windows, chưa có bản cài đặt chính
thức, thống nhất cho các môi trường khác.
Và một số hạn chế khác sẽ phát sinh trong quá trình kiểm tra của các beta tester.
Công cụ xây dựng này còn quá đơn giản.
Chương trình xây dựng phức tạp nên việc cập nhật, nâng cấp chương trình hơi
khó thực hiện.
2. Hướng cải tiến
Nhìn chung, em đã thực hiện và xây dựng được các phần chính của hệ thống. Ở
mức độ vừa và nhỏ, hệ thống có thể được áp dụng vào thực tế. Tuy nhiên, hệ thống
cần có có một số cải tiến sau trong tương lai.
Có thể nâng cấp và cải tiến để đưa vào vận hành sử dụng.
Xây dựng hệ thống trợ giúp cho người sử dụng.
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 57
Các file đính kèm theo tài liệu này:
- Đồ án tốt nghiệp đại học- Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha.pdf