Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
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!
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 : 40
TH
MSSV: 8D15075
SVTH: Nguyễn Văn Ty Trang 1
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
SVTH: Nguyễn Văn Ty Trang 2
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
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..)
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.
SVTH: Nguyễn Văn Ty Trang 5
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ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
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ị ả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.
SVTH: Nguyễn Văn Ty Trang 7
SVTH: Nguyễn Văn Ty Trang 8
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
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 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
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.
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.
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à:
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:
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
SVTH: Nguyễn Văn Ty Trang 10
//Đă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
đị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
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
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.
Để 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ị
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ẻ:
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ẻ <SCRIPT> như sau:
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 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.
SVTH: Nguyễn Văn Ty Trang 13
<SCRIPT LANGUAGE = “JavaScript “ SRC =”javacode.txt”>
< SCRIPT>
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.
<html>
// đây là chú thích một dòng
/*
Chú thích
nhiều dòng
*/
</html>
SVTH: Nguyễn Văn Ty Trang 14
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
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
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:
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:
Trong đó name là tên biến value là giá trị của biến.
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.
session. getAttribute(java.lang.String name)
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:
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.
SVTH: Nguyễn Văn Ty Trang 16
session = pageContext.getSession()
session.setAttribute(java.lang.String name, java.lang.Object value)
application = pageContext.getServletContext();
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ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
SVTH: Nguyễn Văn Ty Trang 17
out.print(“Hello world!”);
config = pageContext.getservletconfig():
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ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:
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 <jsp:param>:
Hành động <JSP:param> được dùng để cung cấp và tạo các giá trị cho các tham số theo
dạng name/value. <JSP:param> thường dùng chung với các hành động <JSP: include>,
<JSP:forward>, <JSP: plugin>. Cú pháp của hành động <JSP:param> được mô tả như sau:
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 <jsp:include>:
Hành động <JSP:include> 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:
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 <jsp: forward>:
Hành động <jsp: forward> cho phép trình dịch JSP gởi đi tại thời điểm thực thi một yêu
tượng response.
Cú pháp của hành động <jsp:plugin> như sau:
Thuộc tính của hành động <jsp:plugin> 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.
SVTH: Nguyễn Văn Ty Trang 19
<!-- Cú pháp 1 -->
<jsp: forward page = “relativeURLspec” />
<jsp:plugin type = “pluginType” code =
“classFile” codebase = “relativeURLpath” >
<jsp:param>
. . .
</jsp:param>
</ jsp:plugin >
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
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).
Đóng kết nối (Close connnection).
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.
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.
SVTH: Nguyễn Văn Ty Trang 21
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
Chương III
ĐẶC TẢ TÍNH NĂNG
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).
Tên mặt hàng (có thể là một ký tự, chữ, câu….).
Tên loại hàng.
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.
SVTH: Nguyễn Văn Ty Trang 23
Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuần
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 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