Luận văn: Tìm hiểu Thiết kế và hiện thực Website quảng cáo Công ty Seen

360 1

Miễn phí

Tải về máy để xem đầy đủ hơn, bản xem trước là bản PDF

Tags: #luận văn#luận án#báo cáo#tiểu luận#khóa luận

Mô tả chi tiết

1. Mở đầu

Một trong các hướng phát triển hàng đầu của công nghệ thông tin hiện nay là các công nghệ liên quan đến Internet. Trong hướng này thì quan trọng hàng đầu lại là các hệ thống thương mại điện tử thực hiện trên Internet. Trong đó chuyên mục quảng cáo góp phần không nhỏ cho sự thành công của thương mại điện tử. Tất cả các nhà sản xuất đều muốn sản phẩm của mình sản xuất ra được càng nhiều khách hàng biết đến và được bán ra với doanh thu cao nhất càng tốt. Khi nền kinh tế thị trường phát triển, sản phẩm của nhà sản xuất phải cạnh tranh mãnh liệt thì việc quảng cáo càng chiếm phần quan trọng trong giai đoạn phân phối sản phẩm. Trong thời đại công nghệ thông tin như hiện nay, chúng được nhúng ghép vào hầu hết các sản phẩm và dịch vụ kinh tế xã hội, làm tăng các giá trị hàng hóa và dịch vụ. Cùng với mỗi thay đổi trong phương thức giao tiếp, cũng như nhu cầu gia tăng của số lượng người sử dụng Internet kèm theo việc mua bán hàng hóa và dịch vụ qua Internet ngày càng nhiều nên các nhà sản xuất, các doanh nghiệp cảm nhận được áp lực phải hành động nhanh với những dịch vụ, phương thức quảng cáo mới nhằm phổ biến rộng rãi sản phẩm của doanh nghiệp mình

2. Nội dung

2.1 Giới thiệu yêu cầu đề tài

Thực trạng công ty SEEN và các đặc trưng của Web site

Mục tiêu và những yêu cầu giải quyết khi xây dựng hệ thống

Một số vấn đề về thương mại điện tử

2.2 Phân tích và thiết kế

Yêu cầu đề tài

Hoạt động của Web site

Thiết kế cơ sở dữ liệu

Phân tích và thiết kế chi tiết các chức năng của hệ thống

2.3 Các công cụ liên quan

Các khái niệm cơ bản về Web

Giới thiệu về công nghệ Flash

Giới thiệu về ngôn ngữ Java

JSP ( Java Server Pages )

Truy xuất cơ sở dữ liệu trong JSP

Jrun Web Server

2.4 Thực hiện chương trình

Các trang JSP tham gia vào hoạt động khách hàng

Các trang tĩnh phục vụ ứng dụng

Các trang JSP tham gia vào hoạt động Admin

3. Kết luận

Chương trình là một điển hình của việc phát triển một mô hình cơ sở dữ liệu Client/Server mà trong đó các máy Client không cần phải cài đặt các chương trình riêng biệt, người sử dụng chỉ cần thông qua một trình duyệt web bình thường cũng có thể thực hiện các chức năng giống như một người sử dụng đầu cuối trong một hệ thống cơ sở dữ liệu. Mặc dù đã cố gắng hồn chỉnh các yêu cầu nhưng cuốn báo cáo còn rất nhiều thiếu sót mong thầy hướng dẫn và các thầy cô khác giúp đỡ xem xét và đề xuất thêm các ý kiến cũng như bổ sung các vấn đề phục vụ cho việc xây dựng Web site để em có thể hồn chỉnh hơn về đồ án tốt nghiệp của mình. Em rất biết ơn thầy hướng dẫn và các quí thầy cô

4. Tài liệu tham khảo

Document of Jrun Studio 3.0

Lập trình ứng dụng Web vớI JSP/Servlet  Tác giả: Hồng Đức Hải, Nguyễn Phương Lan.

Luận văn tốt nghiệp các khóa trước

HTML publishing on the Internet for Windows Tác giả: Brent Hestop & Larry Budnick

Nội dung

LUẬN VĂN TỐT NGHIỆP TÌM HIỂU(JAVA SERVER PAGES) – THIẾT KẾ VÀ HIỆN THỰC WEBSITE QUẢNG CÁO – THƯƠNG MẠI ĐIỆN TỬ CHO CÔNG TY SEENLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 1 LỜI CẢM ƠN Trước hết, em xin chân thành cảm ơn thầy Tô Văn Nam, giảng viên khoa công nghệ thông tin trường Đại Học Bách Khoa Hà Nội đã tận tụy hướng dẫn, giúp đỡ em trong suốt quá trình nghiên cứu và hồn thành công việc thực tập tốt nghiệp cũng như việc xây dựng đồ án tốt nghiệp. Cảm ơn các anh chị Phòng Kỹ Thuật công ty SEEN, đặc biệt là anh Nguyễn Quảng đã trực tiếp giúp đỡ em trong việc tìm hiểu đề tài và cung cấp các số liệu của công ty để xây dựng đề tài. Cuối cùng, em xin chân thành cảm ơn các thầy cô giáo đã trực tiếp giảng dạy cùng bạn bè, người thân đã nhiệt tình ủng hộ, động viên em hồn thành đồ án tốt nghiệp.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 2 MỤC LỤC Lời cảm ơn ………………………………………………………………………………..1 Mục lục ……………………………………………………………………………………2 Giới thiệu ……………………………………………………………………….…………3 Chương I. Giới thiệu yêu cầu đề tài….…………….………………………….………4 I. Thực trạng công ty SEEN và các đặc trưng của Web site …………….….4 II. Mục tiêu và những yêu cầu giải quyết khi xây dựng hệ thống ……….…5 III. Một số vấn đề về thương mại điện tử………………………………………5 Chương II. Phân tích và thiết kế….……………………………………………………9 I. Yêu cầu đề tài ………………………………………………………….……….9 II. Hoạt động của Web site ……………………………………………………...9 II.1. Hoạt động của khách hàng………………………………………...9 II.2. Hoạt động của nhà quản trị……………………………………...11 II.3. Sơ đồ dòng dữ liệu của ứng dụng……………………………….14 III. Thiết kế cơ sở dữ liệu ………………………………………………………16 IV. Phân tích và thiết kế chi tiết các chức năng của hệ thống……………..24 Chương III. Các công cụ liên quan ………………………………………….……...36 I. Các khái niệm cơ bản về Web ………………………………………………36 II. Giới thiệu về công nghệ Flash …………………………………….………38 III. Giới thiệu về ngôn ngữ Java ……………………………………………...39 IV. JSP ( Java Server Pages ) …………………………………………………46 V. Truy xuất cơ sở dữ liệu trong JSP …………………………………………52 VI. Jrun Web Server ……………………...…………………………….………53 Chương IV. Thực hiện chương trình………………………………………………..55 I. Các trang JSP tham gia vào hoạt động khách hàng……………………..55 II. Các trang tĩnh phục vụ ứng dụng…………………………………….……65 III. Các trang JSP tham gia vào hoạt động Admin…………………………66 Chương V. Tổng kết đánh giá ……………………………………………….……….72 Phụ lục………………………………………………………………….………..75 Tài liệu tham khảo……………………………………………………………..79Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 3 GIỚI THIỆU Một trong các hướng phát triển hàng đầu của công nghệ thông tin hiện nay là các công nghệ liên quan đến Internet. Trong hướng này thì quan trọng hàng đầu lại là các hệ thống thương mại điện tử thực hiện trên Internet. Trong đó chuyên mục quảng cáo góp phần không nhỏ cho sự thành công của thương mại điện tử. Tất cả các nhà sản xuất đều muốn sản phẩm của mình sản xuất ra được càng nhiều khách hàng biết đến và được bán ra với doanh thu cao nhất càng tốt. Khi nền kinh tế thị trường phát triển, sản phẩm của nhà sản xuất phải cạnh tranh mãnh liệt thì việc quảng cáo càng chiếm phần quan trọng trong giai đoạn phân phối sản phẩm. Trong thời đại công nghệ thông tin như hiện nay, chúng được nhúng ghép vào hầu hết các sản phẩm và dịch vụ kinh tế xã hội, làm tăng các giá trị hàng hóa và dịch vụ. Cùng với mỗi thay đổi trong phương thức giao tiếp, cũng như nhu cầu gia tăng của số lượng người sử dụng Internet kèm theo việc mua bán hàng hóa và dịch vụ qua Internet ngày càng nhiều nên các nhà sản xuất, các doanh nghiệp cảm nhận được áp lực phải hành động nhanh với những dịch vụ, phương thức quảng cáo mới nhằm phổ biến rộng rãi sản phẩm của doanh nghiệp mình. Công ty SEEN (Union for Science of Electronic - Engineering) là một trong những đơn vị hàng đầu trong lĩnh vực điện tử - tự động hóa tại Việt Nam. Với đội ngũ kỹ sư, chuyên gia chuyên sâu trong các lĩnh vực trên, công ty đã tự nghiên cứu thiết kế sản xuất ra nhiều sản phẩm điện tử, tự động và kỹ thuật môi trường. Cùng với việc hợp tác chặt chẻ về kỹ thuật và thương mại với tập đồn Yokogawa - Nhật Bản, một trong những tập đồn hàng đầu về tự động hóa trên thế giới. Cho nên nhu cầu thiết kế, lắp đặt công trình cũng như thương mại ngày càng mở rộng, thị trường sản phẩm cạnh tranh quyết liệt. Trước thực tế như vậy việc xây dựng một Website quảng cáo và bán sản phẩm là một điều cần thiết cho công ty SEEN. Đây cũng là cơ hội tốt để em có một lựa chọn cho việc thực tập, nghiên cứu và xây dựng đề tài tốt nghiệp của mình. Tên đề tài:”Tìm hiểu JSP(Java Server Pages). Thiết kế và hiện thực Website quảng cáo cho công ty SEEN”.Do bước đầu tìm hiểu, hiện thực kiến thức, khả năng và thời gian có hạn, báo cáo này chắc chắn sẽ không tránh khỏi những thiếu sót, rất mong được thầy hướng dẫn và các bạn đóng góp ý kiến để có thể hồn chỉnh hơn trong quá trình nghiên cứu và hiện thực chương trình sau này. Chương I. GIỚI THIỆU YÊU CẦU ĐỀ TÀILuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 4 I. Thực trạng công ty SEEN và các đặc trưng của Web site Liên hiệp khoa học kỹ thuật công trình – SEEN là một trong những đơn vị hàng đầu trong lĩnh vực điện tử - tự động hóa tại Việt Nam. Lĩnh vực hoạt động của công ty: Sản xuất, lắp ráp máy móc thiết bị và các sản phẩm điện - điện tử, lắp đặt công trình kỹ thuật và xử lý môi trường. Buôn bán tư liệu sản xuất, dịch vụ kỹ thuật điện tử, cơ khí và kỹ thuật môi trường. Bên cạnh các sản phẩm tự nghiên cứu, thiết kế sản xuất, SEEN đang hợp tác kỹ thuật – thương mại chặt chẻ với Tập đồn Yokogawa - Nhật Bản, một trong những tập đồn hàng đầu về tự động hóa trên thế giới. Trên cơ sở hợp tác Yokogawa đã chuyển giao công nghệ cho Liên hiệp SEEN một nhóm các sản phẩm đo lường, điều khiển sử dụng cho ngành điện. Từ đó các lĩnh vực hoạt động về sản xuất, thiết kế, lắp đặt công trình cũng như thương mại ngày càng mở rộng, thị trường sản phẩm cạnh tranh. Nếu một khách hàng có nhu cầu thiết kế, lắp đặt một công trình hay mua một sản phẩm của công ty thì điều tất yếu trước tiên là họ phải có độ tin cậy về kỹ thuật, khả năng chuyên môn, kinh nghiệm của người xây dựng công trình cũng như việc đảm bảo về chất lượng sản phẩm. Để khách hàng có được độ tin cậy này thì việc quảng cáo, cung cấp các thông tin nói trên là một điều cần thiết của công ty. Mặt khác, việc phổ biến sử dụng Internet đã tạo ra một bước ngoặc mới trong lĩnh vực thương mại điện tử, nhu cầu sử dụng máy tính để trao đổi và cập nhật thông tin ngày càng tăng. Do đó việc đưa thông tin đáp ứng các nhu cầu của khách hàng và hỗ trợ việc mua bán giữa công ty với khách hàng diễn ra một cách nhanh chóng, tiết kiệm đã trở nên vô cùng cấp thiết. Trước thực tế như vậy nhu cầu xây dựng một Web site quảng cáo và thương mại điện tử là một điều cần thiết cho công ty SEEN. Câu hỏi đặt ra là Web site này thực chất thể hiện cái gì ? Nếu việc giới thiệu quảng cáo trao đổi thông tin với khách hàng qua điện thoại hoặc trực tiếp hay khách hàng đến tại công ty để mua sản phẩm là thủ công thì Web site sẽ thể hiện đầy đủ các thông tin và các chức năng này trên các trang Web. Tận dụng tính năng đa phương tiện của môi trương Web, Web site được xây dựng trên nền tảng HTML và đáp ứng những tình huống từ phía khách hàng cũng như phía quản trị của công ty. Một câu hỏi khác là Web site này trên mạng hoạt động như thế nào ? Do đặc điểm nỗi bật của Web site là trung gian thể hiện việc trao đổi giữa khách hàng và công ty. Khách hàng và công ty không hề gặp nhau nên khách hàng không thể trực tiếp kiểm tra sản phẩm cũng như trao đổi thông tin về nhu cầu thiết kế, lắp đặt một công trình nào đó. Chính vì vậy Web site cần phải thể hiện các chức năng sau: - Quản lý thông tin khách hàng mua sản phẩm. - Quản lý thông tin hỏi đáp (FAQs). - Quản lý thông tin liên hệ, trao đổi của khách hàng. - Quản lý việc thêm, xóa, sửa sản phẩm thương mại của công ty. - Quản lý việc xử lý đơn đặt hàng .Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 5 - Quản lý việc giới thiệu, cập nhật các công trình mà công ty đã thiết kế, lắp đặt trong các lĩnh vực điện tử - tự động, công nghệ môi trường. Ngồi việc thể hiện các chức năng động, trên Web site còn thể hiện đầy đủ các thông tin giới thiệu chung về công ty, về quan hệ hợp tác quốc tế, về việc nghiên cứu và phát triển dự án, về các lĩnh vực hoạt động của công ty thông qua các trang web tĩnh. II. Mục tiêu và những yêu cầu giải quyết khi xây dựng hệ thống. II.1. Mục tiêu xây dựng hệ thống - Nhằm đáp ứng được nhu cầu mở rộng thị trường tiêu thụ sản phẩm và quảng cáo hoạt động của công ty SEEN. - Thông tin trao đổi được lưu trữ và đáp ứng nhu cầu liên hệ của khách hàng. Thông tin về sản phẩm luôn được cập nhật mới đáp ứng các sản phẩm tiên tiến cho phù hợp với nhu cầu của khách hàng. Bên cạnh đó còn tiết kiệm được thời gian và chi phí đi lại cho khách hàng. II.2. Những yêu cầu đặt ra cho một hệ thống được thiết kế để thực thi trên mạng. II.2.1.Hỗ trợ khách hàng: - Quyền duyệt Web site: Thông qua trình duyệt Web, bất kỳ khách hàng nào cũng có thể dạo trên tất cả các trang của Web site để biết được các thông tin sản phẩm và hoạt động của công ty. - An tồn khi mua sản phẩm: Để đảm bảo thông tin của khách hàng khi mua sản phẩm không bị người khác xâm nhập. Mỗi khi khách hàng nào muốn đặt mua sản phẩm sẽ được cấp một Account thông qua việc đăng ký. Nếu khách hàng quên Account thì đăng ký cái khác. Nhằm tạo sự thân thiện khi mua sản phẩm của công ty cũng như hỗ trợ việc hậu mãi hoặc bảo hành sản phẩm sau này. - Truy xuất cơ sở dữ liệu thông qua Internet: Mỗi khách hàng khi mua sản phẩm chỉ được phép truy cập vào cơ sở dữ liệu ở một số trang, một số bảng nhất định nhằm đảm bảo được vấn đề an tồn dữ liệu cho hệ thống. - Áp dụng việc xây dựng chương trình theo mô hình Client/ Server, một số dữ liệu được lưu trữ trên server, việc truy cập và truyền dữ liệu được thực hiện qua mạng nhằm phục vụ cho việc liên hệ giữa khách hàng – công ty, phục vụ cho việc cập nhật cơ sở dữ liệu. II.2.2.Hỗ trợ cho người quản trị của công ty Có thể thao tác trên cơ sở dữ liệu thông qua giao diện web như đọc, ghi, chỉnh sửa, thống kê dữ liệu… Ngồi ra để an tồn cho hệ thống thì người quản trị sẽ có một Account thể hiện quyền truy cập hệ thống riêng. III. Một số vấn đề về thương mại điện tử III.1. Khái niệm: Thương mại điện tử là sử dụng các phương pháp điện tử hiện có để làm thương mại, tức là trao đổi thông tin thương mại thông qua các phương tiện điện tử, không cần sử dụng các giấy tờ trong các giai đoạn của quá trình giao dịch. Hai hình thức cơ bản và thông dụng nhất của ứng dụng thương mại địên tử hiện nay là B2B (Business to Business) còn gọi là từ doanh nghiệp đến doanhLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 6 nghiệp và B2C (Business to Customer) còn gọi là từ doanh nghiệp đến khách hàng. - Business to Business: Đây là mô hình dùng cho các nhà cung cấp với nhau. Mô hình này đặc biệt chú trọng đến vấn đề trao đổi thông tin thương mại có cấu trúc và mua bán tự động giữa hai hệ thống khác nhau. - Busines to Customer: Mua bán (lẻ) giữa các nhà cung cấp với khách hàng. Mô hình B2C sử dụng cho hình thức kinh doanh không có chứng từ. Người tiêu dùng vào Web site của công ty, chọn các sản phẩm cần mua, cung cấp thông tin về mình là khách hàng bằng cách điền vào các form đã định sẵn trên Web site, chọn hình thức thanh tốn điện tử, cách vận chuyển hàng hóa,…Khi đó người dùng coi như đã đặt hàng xong, chỉ chờ hàng hóa đến. Tại phần quản lý của công ty sẽ có chương trình xử lý thông tin mua bán tự động, kiểm tra thông tin khách hàng về vấn đề thanh tốn, các hình thức vận chuyển hàng hóa,… Ứng dụng sẽ hiện thực bên dưới được thực hiện theo mô hình B2C. III.2. Vấn đề thanh tốn điện tử Trong thương mại nói chung và thương mại điện tử nói riêng, vấn đề thanh tốn là quan trọng. Do đó cần phải có phương thức thanh tốn cho phù hợp, hiệu quả, khách hàng tin cậy vào phương thức thanh tốn. Đồng thời bảo mật các thông tin thanh tốn của khách hàng. Hình thức thanh tốn cũng tùy thuộc vào đối tượng thanh tốn: hình thức thanh tốn giữa cá nhân mua hàng trên các site siêu thị điện tử sẽ khác với hình thức thanh tốn giữa các công ty với nhau. Vì thời gian thực hiện đề tài có hạn và do tình hình thanh tốn điện tử tại Việt Nam còn chưa phổ biến nên em không tập trung nghiên cứu sâu về thanh tốn điện tử và không hiện thực phần thanh tốn điện tử. Phần hiện thực ở đây chỉ đi đến quá trình hồn tất việc tạo đơn đặt hàng sau đó người quản trị sẽ gởi mail đến các bộ phận khác như bộ phận thanh tốn hay bộ phận kinh doanh của công ty xử lý đơn hàng, tạo hóa đơn và tiến hành giao hàng. III.3. Hướng giải quyết của vấn đề thanh tốn điện tử Chuyển khoản Email thông Email thông tin thanh tốn tin thanh tốn Mô hình thanh tốn trong thương mại điện tử Ngân hàng A Ngân hàng B Bộ phận thanh toán của bên mua Bộ phận thanh toán của bên bán Thủ tục xử lý hoá đơn Thủ tục xử lý đơn đặt hàngLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 7 4 1 3 2 Quá trình thanh tốn dùng CreditCart Các quá trình: 1. User liên hệ với ngân hàng phát hành CreditCart để có một CreditCart và CreditCart number. 2. Quá trình giao dịch mua bán: Chuyển CreditCart Number và số tiền thanh tốn đã được mã hóa. 3. Web Server gởi khối mã và số lượng tiền đến ngân hàng. 4. Bank 1 giải mã và kiểm chứng với Bank 2 III.4. Sự đồng thời và quản lý giao dịch Trong các ứng dụng nhiều người dùng như các ứng dụng web thì vấn đề về sự đồng thời và quản lý giao dịch là luôn luôn có. Trong các ứng dụng này nhiều người dùng có thể đồng thời cùng sử dụng một tài nguyên của hệ thống, cùng thao tác trên đó và có thể cùng thay đổi tài nguyên đó. Điều này có thể gây ra sai xót cho việc quản lý tài nguyên của hệ thống. Ví dụ, tại cùng một thời điểm có hai khách hàng cùng đặt mua một mặt hàng A nào đó mà số lượng mặt hàng này trong kho chỉ còn có một. Việc quyết định giao mặt hàng đó cho ai cũng là một vấn đề nhưng thường không khó giải quyết. Vấn đề quan trọng hơn là nếu không giải quyết được sự đồng thời thì có thể cả hai khách hàng cùng được quyết định giao hàng hoặc cùng không được giao hàng. Vấn đề này thường được giải quyết bằng cách quản lý giao dịch. Một giao dịch là một đơn vị công việc mà khi thực hiện chỉ dẫn tới một trong hai kết quả: hoặc thành công hoặc thất bại, không có chuyện thành công một phần. Một giao dịch trên thực tế thường gồm nhiều bước, nếu tất cả các bước trong giao dịch đều được thực hiện thành công thì giao dịch mới được xem là thành công. Ngược lại, nếu chỉ có một trong các bước đó mà thất bại thì tồn bộ giao dịch đó thất bại và khi đó thì hệ thống cần phải được trả trở lại trạng thái ban đầu trước khi giao dịch đó được thực hiện. Một số vấn đề liên quan đến sự đồng thời và giao dịch trong đề tài và hướng giải quyết: 1. Xử lý tranh chấp: Khi hai hay nhiều khách hàng đăng ký mua cùng một loại mặt hàng nào đó và yêu cầu được giao hàng vào cùng một thời điểm (shipdate) thì sẽ dẫn đến tranh chấp. Cách giải quyết ở đây là đưa ra một danh sách độ ưu tiên. Có thể là ưu tiên cho những người mua nhiều hàng hơn (ở đây là tổng giá trị của tồn bộ mặt hàng trong đơn đặt hàng), sau đó ưu tiên cho những Bank 1 Bank 2 Mua Web Browser Web Server BánLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 8 người ở gần kho hàng hơn, rồi đến ưu tiên cho những người thanh tốn bằng thẻ tín dụng… Việc đưa độ ưu tiên như trên dựa vào lợi ích mà nó đem lại. Việc chọn những đơn đặt hàng có giá trị cao nhất là vì những đơn hàng này có thể có lãi nhiều hơn, có thể trong đơn đặt hàng này có nhiều hàng hóa hơn mà việc giao nhiều hàng hơn cùng lúc có thể giảm được phí vận chuyển. Việc ưu tiên cho những đơn đặt hàng được thanh tốn bằng thẻ tín dụng là do sự tiện lợi của nó. 2. Quản lý giao dịch: hầu hết các tác vụ thao tác trên cơ sở dữ liệu đều đòi hỏi giao dịch. Bởi vì mỗi tác vụ thường được thực hiện trên nhiều bảng của CSDL, mà việc thay đổi trên nhiều bảng trong cùng một tác vụ thường đòi hỏi việc thay đổi hoặc phải thành công trên tất cả các bảng hoặc không bảng nào được phép thay đổi, do đó phải quản lý giao dịch.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 9 Chương II. PHÂN TÍCH VÀ THIẾT KẾ I. Yêu cầu đề tài: Xây dựng một Web site quảng cáo – thương mại điện tử cho công ty SEEN. Web site chủ yếu thể hiện các thông tin giới thiệu về SEEN và hoạt động của SEEN đồng thời xử lý quá trình bán sản phẩm giữa SEEN với khách hàng là những người sử dụng Internet. Chúng ta có thể hiểu việc bán sản phẩm, thiết bị ở đây cũng gần giống như bán trực tiếp ở công ty. Nhưng nó khác là ở đây khách hàng gián tiếp mua sản phẩm, thiết bị. Tuy nhiên do hệ thống thanh tốn tiền qua mạng ở nước ta chưa phổ biến lắm cho nên chức năng này sẽ được chuyển cho các bộ phận khác của công ty xử lý thủ công dựa trên cơ sở dữ liệu về các thông tin lưu trữ ở khách hàng khi đặt mua sản phẩm, thiết bị. Như vậy nhiệm vụ đặt ra ở đây là làm thế nào để đáp ứng đầy đủ các nhu cầu về liên hệ, trao đổi, đặt mua sản phẩm, thiết bị cũng như việc nắm bắt được đầy đủ các thông tin, hoạt động của công ty SEEN từ phía khách hàng. II. HOẠT ĐỘNG CỦA WEB SITE: Hoạt động của Web site bao gồm hai hoạt động chính: - Hoạt động của khách hàng. - Hoạt động của nhà quản lý công ty SEEN. II.1. HOẠT ĐỘNG CỦA KHÁCH HÀNG: Một khách hàng khi duyệt Web site họ sẽ đặt vấn đề là Web site thể hiện những thông tin gì, hoạt động của công ty ra sao, uy tín, kinh nghiệm và chuyên môn xây dựng hệ thống, thiết kế, lắp đặt công trình như thế nào, liên hệ ra sao. Thông tin gì về những sản phẩm, thiết bị được bán, giá cả và phương thức mua sản phẩm. Vì vậy để đáp ứng những nhu cầu tối thiểu trên, Web site phải đảm bảo cung cấp những thông tin cần thiết, có giá trị và hơn thế nữa là phải dễ thao tác. Sản phẩm khi bán phải có hình ảnh, giá cả, thông tin liên quan đến sản phẩm. Các chức năng chính về hoạt động khách hàng. (1). Xem thông tin giới thiệu về công ty Seen và các công trình mà Seen đã và đang thực hiện. (2). Ghi nhận thông tin trao đổi của người sử dụng. (3). Tìm kiếm, xem danh mục sản phẩm thương mại theo tên, loại. (4). Xem thông tin chi tiết về sản phẩm trong danh mục. (5). Đưa sản phẩm chọn mua vào trong giỏ hàng. (6). Xác nhận việc mua hàng. (7). Tạo đơn đặt hàng. (8). Ghi nhận thông tin của khách hàng mua sản phẩm. (9). Kiểm tra tài khoản và quyền đăng nhập của khách hàng mua sản phẩm. (10). Khách hàng có thể xem đơn đặt hàng của mình.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 10 USER Trang chủ Các trang giới thiệu về công ty SEEN Thông tin các dự án và sản phẩm Công ty Các dịch vụ FAQs, liên hệ, mail… Thương mại Tìm kiếm Chọn xem chi tiết sản phẩm Database Chọn sản phẩm cần mua thêm vào giỏ hàng Xác nhận việc mua hàng Tạo đơn hàng Khách hàng cũ ? Đăng ký Đăng nhập(Login) Lưu đơn hàng và hiển thị đơn hàng No Yes Sơ đồ hoạt động đối với khách hàngLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 11 II.2. HOẠT ĐỘNG CỦA NHÀ QUẢN LÝ PHÍA CÔNG TY: Hiện nay đối với một Web site việc quản lý trên giao diện web là khá phổ biến. Người quản lý giao tiếp và theo dõi khách hàng của mình thông qua các đơn đặt hàng, khách hàng có thể cung cấp thông tin về mình. Nhà quản lý dựa trên thông tin đó để liên hệ, trao đổi các yêu cầu đối với khách hàng nào có nhu cầu tư vấn, thiết kế, lắp đặt một công trình hay xây dựng một hệ thống nào đó và thõa thuận việc thanh tốn, giao sản phẩm đối với khách hàng nào mua sản phẩm, thiết bị của công ty. Đối với người quản trị ngồi việc nhận thông tin từ khách hàng còn phải cập nhật các thông tin về các công trình, hệ thống mà công ty SEEN đã thực hiện nhằm thể hiện các kinh nghiệm công trình của công ty. Cập nhật các thông tin về loại sản phẩm, sản phẩm thương mại của công ty trên Internet. Nhà quản lý phải xây dựng một cơ sở dữ liệu phù hợp, không dư thừa dữ liệu và nhất quán, một giao diện thân thiện giúp khách hàng không bỡ ngỡ khi duyệt Web site. Hoạt động của nhà quản lý được thể hiện bởi các nhiệm vụ chung như sau: - Giới thiệu kinh nghiệm hoạt động công trình của công ty: Khi khách hàng có nhu cầu muốn xây dựng một hệ thống công nghiệp hay thiết kế, lắp đặt một công trình nào đó thì tất nhiên họ sẽ lựa chọn một đối tác phù hợp có đủ độ tin cậy, kinh nghiệm đảm bảo cho công trình của họ thõa mãn các yêu cầu theo ý muốn. Để khách hàng thõa mãn các độ tin cậy trên thì nhà quản lý công ty phải đưa ra và thường xuyên cập nhật các kinh nghiệm công trình, các hệ thống trên thực tế mà công ty SEEN đã thực hiện. Cơ sở dữ liệu sẽ lưu trữ các thông tin như: loại công trình, tên công trình, hình ảnh và các thông tin liên quan. - Giới thiệu sản phẩm thương mại: Khách hàng thường đặt câu hỏi “ Công ty bán những sản phẩm, những thiết bị gì và có những gì mình cần mua không ?”. Khi họ tham quan Web site nếu họ muốn mua sản phẩm thì phải nhanh chóng đưa họ đến danh mục các sản phẩm mà họ cần, đó là nhiệm vụ của nhà quản lý. Việc lưu trữ các thông tin về sản phẩm trong một cơ sở dữ liệu trực tuyến, cơ sở dữ liệu này chứa thông tin về sản phẩm như: Tên sản phẩm, giá cả, hình ảnh, các thông tin mô tả sản phẩm. - Theo dõi khách hàng: Sản phẩm của ai mua? Là câu hỏi đặt ra khi cùng một lúc có nhiều khách hàng mua sản phẩm của công ty trên Web site. Để tránh nhầm lẫn có nhiều cách xử lý, tuy nhiên có ba cách nỗi bật phổ biến nhất hiện nay: - Dùng phương pháp Cookies: Đây là một tập tin (nhỏ) sẽ chứa mã khách hàng và truyền tới trình duyệt web của khách hàng và nằm trong đĩa cứng trong suốt quá trình mua sản phẩm. - Số hiệu IP tạm thời (Temporary IP Number): MỗI giá trị IP do nhà cung cấp dịch vụ Internet (ISP) tự động gán cho bạn mỗi khi đăng nhập Internet có thể giúp nhận diện. Phương thức này trong trường hợp trình duyệt của khách hàng không chấp nhận cookies. - Số xe hàng ngẫu nhiên (Randomly generated cart number): Một con số như vậy có thể được gắn thêm vào URL xuất hiện trong trườngLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 12 “Location” hay “Address” trên trình duyệt của bạn. Bất kỳ khi nào bạn chuyển sang trang khác của một sản phẩm khác con số đó cũng đi theo bạn. - Nhận đơn hàng: Sau khi khách hàng kết thúc giao dịch, đơn hàng được tổng hợp lại và nhà quản trị sẽ chuyển thông tin về đơn đặt hàng đến các bộ phận khác của công ty như thống kê, kế tốn, kinh doanh…xử lý. Quá trình chuyển thông tin này sẽ không được xử lý tự động trên Web site. Sau một thời gian nhất định thì người quản trị sẽ xử lý đơn hàng và các khách hàng cũ nếu cần. - Bổ sung và sửa soạn sản phẩm: Do mục tiêu là thể hiện chức năng thương mại điện tử nên việc chuẩn bị sản phẩm cũng có thể được thực hiện thông qua web. Qua cơ chế Action của form ta có thể thực hiện được tất cả các thao tác để truy cập tới cơ sở dữ liệu. Việc truy cập này được bảo vệ trực tiếp của trình duyệt. Nhà quản lý có thể bổ sung sản phẩm mới, thay đổi giá cả. Đây là chức năng cần thiết không thể thiếu đối với công việc bán sản phẩm. - Thông tin liên hệ của khách hàng: Đối với những khách hàng không mua sản phẩm, sau khi đã duyệt Web site mà muốn liên hệ để yêu cầu công ty xây dựng hay thiết kế, lắp đặt cho họ một hệ thống, một công trình nào đó hay muốn trao đổi một vấn đề có liên quan đến công ty thì Web site sẽ thể hiện chức năng đáp ứng yêu cầu liên hệ này của khách hàng. Các thông tin này được lưu trữ trong cơ sở dữ liệu. Người quản trị sẽ xem các thông tin này, từ đó có thể trao đổi liên lạc với khách hàng. Các chức năng chính của ứng dụng đối với hoạt động của nhà quản trị: (1). Quản lý sản phẩm: Xem, hiệu chỉnh, thêm mới, xóa. (2). Quản lý đơn đặt hàng: Xem, xóa. (3). Quản lý thông tin khách hàng mua sản phẩm: Xem, xóa. (4). Quản lý thông tin liên hệ khách hàng: Xem, xóa. (5). Quản lý dịch vụ hỏi đáp FAQs: Xem, hiệu chỉnh, thêm mới, xóa. (6). Quản lý thông tin về các dự án của SEEN: Xem, hiệu chỉnh, thêm mới, xóa. Đối với một web site thương mại điện tử thực sự hồn thiện thì nhà quản trị cần phải có các chức năng khác như: Thanh tốn điện tử, lập hóa đơn bán, thống kê, quản lý kho hàng…Ở đây vì khả năng và thời gian có hạn nên em chỉ hiện thực được các chức năng cơ bản trên.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 13 SƠ ĐỒ PHÂN CẤP CHỨC NĂNG CỦA NHÀ QUẢN TRỊ HỆ THỐNG QUẢN LÝ Quản lý sản phẩm Quản lý đơn hàng Quản lý khách hàng Khách hàng liên hệ Quản lý dự án Quản lý FAQs Xem Xóa Xóa Xem Xem Xóa Sửa Xóa Thêm Xem Quản lý dự án Quản lý FAQs Xem Thêm Sửa Xóa Xem Sửa Thêm XóaLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 14 II.3. SƠ ĐỒ DÒNG DỮ LIỆU CỦA ỨNG DỤNG Sơ đồ dòng dữ liệu tổng quát (DFD) QL. Đơn hàng KHÁCH HÀNG Tìm Liệt kê SẢN PHẨM GIỎ HÀNG QL.Sản phẩm ADMIN KHÁCH HÀNG Đăng ký KHÁCH HÀNG QL.Khách hàng ADMIN Tạo đơn hàng ĐƠN HÀNG ADMIN (1) (2) (3) (4) (1) (2) (4) (3) (2) (11) (2) (11) (5) (6) (7) (8) (9) (11) (2) (11) (2) (10) (2) (11) (11) (2) GHI CHÚ: (1). Yêu cầu tìm kiếm. (7). Thông tin khách hàng mua sản phẩm. (2). Kết quả. (8). Hồ sơ khách hàng đăng ký. (3). Yêu cầu liệt kê. (9). Quyết định đăng ký. (4). Thông tin sản phẩm. (10). Thông tin đơn đặt hàng. (5). Đưa sản phẩm vào giỏ. (11). Yêu cầu. (6). Thông tin sản phẩm chọn mua.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 15 ` ADMIN Nhập mới Nhập mới Nhập mới Hiệu chỉnh ADMIN SẢN PHẨM (1) (3) (2) (6) (2) (5) (7) (8) (4) (9) (9) (4) (7) (8) GHI CHÚ: (1). Quyết định nhập. (5). Hồ sơ sản phẩm. (2). Yêu cầu liệt kê. (6). Thông tin sản phẩm. (3). Kết quả. (7). Dữ liệu hiệu chỉnh. (4). Danh sách xóa. (8). Dữ liệu sau hiệu chỉnh. (9). Nội dung sau khi xóa. Sơ đồ dòng dữ liệu chi tiết quản lý sản phẩm (DFD) Sơ đồ dòng dữ liệu chi tiết quản lý đơn hàng (DFD) ADMIN Liệt kê Xóa ĐƠN HÀNG (1) (3) (5) (2) (2) (5) (4) (1) GHI CHÚ: (1). Yêu cầu liệt kê. (4). Thông tin đơn hàng. (2). Danh sách xóa. (5). Nội dung sau khi xóa. (3). Kết quả.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 16 III. THIẾT KẾ CƠ SỞ DỮ LIỆU III.1.Các thực thể Yêu cầu:  Cơ sở dữ liệu được thiết kế để lưu trữ các thông tin cần thiết của khách hàng, các cơ sở dữ liệu về sản phẩm đảm bảo được yêu cầu đặt ra của đề tài.  Cơ sở dữ liệu được thiết kế không dư thừa dữ liệu, truy xuất nhanh. Trong quá trình phân tích em đã đưa ra các thực thể của hệ thống như sau: - Thực thể LOAI_SP mô tả danh mục các thể loại sản phẩm. Trong đó lưu trữ các thông tin sau: mã số phân loại, tên phân loại. - Thực thể SANPHAM mô tả chi tiết các thông tin về sản phẩm. Các thông tin được lưu trữ như sau: Mã sản phẩm, mã phân loại, tên sản phẩm, giá sản phẩm, đường dẫn chứa ảnh của sản phẩm, nội dung tóm tắt của sản phẩm. LOAI_SP Maloai Tenloai SANPHAM Ma_sp Maloai Ten_sp Gia Anh_url Mota Sơ đồ dòng dữ liệu chi tiết quản lý khách hàng (DFD) ADMIN Liệt kê Xóa KHÁCH HÀNG (1) (3) (5) (2) (2) (5) (4) (1) GHI CHÚ: (1). Yêu cầu liệt kê. (4). Thông tin khách hàng. (2). Danh sách xóa. (5). Nội dung sau khi xóa. (3). Kết quả.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 17 - Thực thể KHACHHANG : Mô tả các thông tin của khách hàng nào đã đặt mua sản phẩm. Các thông tin này được lưu trữ như sau: mã khách hàng, tên đăng nhập, mật khẩu, quyền đăng nhập(1. Cho người sử dụng thông thường, 2. Cho người quản trị), tên, địa chỉ email, điện thoại, địa chỉ liên lạc, ghi chú khác. - Thực thể LIENHE : Mô tả các thông tin về người sử dụng và nội dung cần trao đổi của người duyệt Web site. Các thông tin này được lưu trữ như sau: tên người liên hệ, mã người liên hệ, email, địa chỉ liên lạc và nội dung cần liên hệ. - Thực thể LOAI_CT : Mô tả danh mục các loại công trình mà công ty SEEN đã thực hiện. - Thực thể DDH: Chứa các thông tin tổng quát về đơn đặt hàng mua sản phẩm của khách hàng. Các thông tin bao gồm: Mã đơn đặt hàng, phương thức thanh tốn, địa chỉ giao hàng, ngày đặt hàng, thời hạn giao hàng. KHACHHANG Ma_KH Ten_KH Username Password Quyen_login Email Dienthoai Diachi Ghichu LIENHE Ma_lh Ten_lh Email_lh Diachi_lh Noidung_lh LOAI_CT Maloai_CT Tenloai_CT DDH Ma_DDH Ma_KH Payment Diachi_giao NgayDH ThoihanLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 18 - Thực thể CONGTRINH: Mô tả thông tin về các hệ thống, công trình mà công ty đã thực hiện. Các thông tin như sau: Mã công trình, tên công trình, hình ảnh, chủ đầu tư, giá trị, năm thực hiện, công nghệ thực hiện, phạm vi. - Mối kết hợp DDH_CHITIET: Chứa các thông tin chi tiết về đơn đặt hàng, các thông tin này được lấy từ giỏ hàng và đơn đặt hàng tổng quát.Các thông tin bao gồm: Mã đơn đặt hàng, mã sản phẩm, tên sản phẩm, số lượng, tổng giá. - Thực thể FAQ: Chứa các câu hỏi và câu trả lời thường gặp. DDH_CHITIET Ma_DDH Ma_sp Ten_sp Soluong TongGia FAQ Id_question Questions Answers CONGTRINH Ma_CT Maloai_CT Ten_CT Anh_CT Investor Giatri Nam Congnghe PhamviLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 19 III.2. Mô hình quan niệm dữ liệu (1,n) (1,n) III.3. Các mối quan hệ thực thể:  Thực thể SANPHAM và LOAI_SP có mối quan hệ 1-n như sau: Một sản phẩm thuộc một loại sản phẩm, một loại sản phẩm có thể có nhiều sản phẩm. (1,1) LOAI_SP Maloai Tenloai SANPHAM Ma_sp Maloai Ten_sp Gia Anh_url Mota LIENHE Ma_lh Ten_lh Email_lh Diachi_lh Noidung_lh LOAI_CT Maloai_CT Tenloai_CT CONGTRINH Ma_CT Ten_CT Anh_CT Investor Nam Phamvi Congnghe L - CT KHACHHANG Ma_KH Ten_KH Username Password Quyen_login Email Dienthoai Diachi L-SP GIO_SP Madangnhap Ten_SP Gia Soluong SP-GIO DDH Ma_DDH Payment Diachi_giao NgayDH Thoihan KHACHHANG-DDH FAQ Id_question Questions Answers (1, n) (1, 1) DDH_CHITIET Ten_sp Soluong TongGia (1, n) (1, n) (1, n) (1, n) (1,1) (1,1) (1,n) SANPHAM LOAI_SPLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 20  Thực thể SANPHAM và GIO_SP (giỏ đựng sản phẩm ) có mối quan hệ 1-n như sau: Giỏ đựng sản phẩm chứa nhiều sản phẩm.  Thực thể SANPHAM và DDH (đơn đặt hàng ) có mối quan hệ n-n như sau: Một sản phẩm có thể thuộc nhiều đơn đặt hàng, một đơn đặt hàng có thể có nhiều sản phẩm. Hai thực thể này tạo nên mối kết hợp DDH_CHITIET (Chi tiết đơn đặt hàng). Mối kết hợp này sẽ lấy khóa của hai thực thể SANPHAM và DDH làm khóa chính đó là Ma_sp và Ma_DDH.  Thực thể KHACHHANG (Khách hàng) và DDH có mối quan hệ 1-n như sau: Một đơn đặt hàng chỉ thuộc một khách hàng, một khách hàng thì có thể có nhiều đơn đặt hàng.  Thực thể CONGTRINH và LOAI_CT có mối quan hệ 1-n như sau: Một công trình chỉ thuộc một loại công trình, ngược lại một loại công trình có thể có nhiều công trình. Từ mô hình quan niệm dữ liệu trên ta xây dựng được các bảng sau: TÊN BẢNG GIẢI THÍCH LOAI_SP Loại sản phẩm. SANPHAM Sản phẩm thương mại. KHACHHANG Thông tin khách hàng đăng ký. GIO_SP Giỏ đựng sản phẩm chọn mua. DDH Đơn đặt hàng. DDH_CHITIET Đơn đặt hàng chi tiết. LOAI_CT Loại công trình. CONGTRINH Công trình. LIENHE Thông tin trao đổi của khách hàng. FAQ Các câu hỏi thường gặp. SANPHAM GIO_SP SANPHAM DDH DDH_CHITIET KHACHHANG DDH SANPHAM LOAI_SPLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 21 III.4. Mô hình tổ chức dữ liệu Từ mô hình quan niệm dữ liệu trên ta xây dựng được mô hình tổ chức dữ liệu như sau: LOAI_SP( Maloai, Tenloai ). SANPHAM( Ma_sp, Maloai, Ten_sp, Gia, Anh_url, Mota ). GIO_SP( Madangnhap, Ma_sp, Ten_sp, Gia, Soluong ). DDH( Ma_DDH, Ma_KH, Payment, Diachi_giao, NgayDH, Thoihan ). DDH_CHITIET( Ma_DDH, Ma_sp, Ten_sp, Soluong, TongGia ). KHACHHANG( Ma_KH, Ten_KH, Username, Password, Quyen_login, Email, Diachi, Dienthoai ). LIENHE( Ma_lh, Ten_lh, Email_lh, Diachi_lh, Noidung_lh ). LOAI_CT( Maloai_CT, Tenloai_CT ). CONGTRINH( Ma_CT, Maloai_CT, Ten_CT, Anh_CT, Investor, Giatri, Nam, Congnghe, Phamvi ). FAQ( Id_question, Questions, Answers ). Chú thích: - Những trường thông tin có gạch chân nét đậm như Ma_sp là khóa chính. - Những trường thông tin có gạch chân nét đứt như Maloai là khóa ngoại. III.4. Mô hình vật lý dữ liệu Từ mô hình tổ chức dữ liệu ta xây dựng được mô hình vật lý dữ liệu dưới đây. Các kiểu dữ liệu dưới đây được xây dựng theo kiểu chuẩn của MSSQL Server 8.0. Các thuộc tính có kí hiệu (K) là khóa chính. Các thuộc tính có kí hiệu ® là có thể rỗng (nullable). LOAI_SP( Maloai, Tenloai ). Tên Field Kiểu dữ liệu Kích thước Mô tả Maloai(K) smallint 2 Mã loại sản phẩm Tenloai nvarchar 50 Tên loại sản phẩm SANPHAM( Ma_sp, Maloai, Ten_sp, Gia, Anh_url, Mota ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_sp(K) int 4 Mã sản phẩm Maloai smallint 2 Mã loại sản phẩm Ten_sp nvarchar 250 Tên sản phẩm Gia varchar 20 Giá sản phẩm Anh_url ® varchar 100 Địa chỉ chứa ảnh sản phẩm Mota ® nvarchar 2000 Các thông tin khác về sản phẩmLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 22 GIO_SP( Ma_sp, Ten_sp, Gia, Soluong ). Tên Field Kiểu dữ liệu Kích thước Mô tả Madangnhap(K) varchar 50 Mã đăng nhập Ma_sp int 4 Mã sản phẩm Ten_sp nvarchar 250 Tên sản phẩm Gia varchar 20 Giá sản phẩm Soluong smallint 2 Số lượng sản phẩm được chọn mua DDH( Ma DDH, Ma_KH, Payment, Diachi_giao, NgayDH, Thoihan ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma DDH(K) int 4 Mã đơn đặt mua sản phẩm Ma_KH nchar 5 Mã số khách hàng đặt mua sản phẩm Payment nvarchar 50 Phương thức thanh tốn. Diachi_giao nvarchar 150 Địa chỉ giao sản phẩm. NgayDH Datetime 8 Ngày tạo đơn hàng. Thoihan nvarchar 20 Thời hạn giao sản phẩm DDH_CHITIET ( Ma_DDH, Ma_sp, Ten_sp, Soluong, TongGia ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_DDH(K) int 4 Mã đơn đặt hàng. Ma_sp int 4 Mã sản phẩm. Ten_sp nvarchar 250 Tên sản phẩm được mua. Soluong smallint 2 Số lượng sản phẩm mua. TongGia float 8 Tổng tiền mua sản phẩm. KHACHHANG( Ma_KH, Ten_KH, Username, Password, Quyen_login, Email, Diachi, Dienthoai ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_KH(K) nchar 5 Mã khách hàng đăng ký Ten_KH nvarchar 50 Tên khách hàng Username nvarchar 20 Tên đăng nhập Password nchar 20 Mật khẩu Quyen_login smallint 2 Quyền đăng nhập (1- quyền user thường, 2- quyền cho người quản trị) Email ® varchar 50 Địa chỉ email Diachi ® nvarchar 100 Địa chỉ liên lạc Dienthoai ® numeric 20 Điện thoại Vì Ma_KH của mỗi khách hàng khi đăng ký là khác nhau nên ta chọn nó làm khóa chính.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 23 LIENHE( Ma_lh, Ten_lh, Email_lh, Diachi_lh, Noidung_lh ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_lh(K) nchar 5 Mã khách hàng muốn liên hệ Ten_lh nvarchar 50 Tên khách hàng liên hệ Email_lh varchar 50 Địa chỉ email khách hàng Diachi_lh ® nvarchar 100 Địa chỉ liên lạc Noidung_lh nvarchar 2000 Nội dung cần trao đổi LOAI_CT( Maloai_CT, Tenloai_CT ). Tên Field Kiểu dữ liệu Kích thước Mô tả Maloai_CT(K) smallint 2 Mã loại công trình Tenloai_CT nvarchar 50 Tên loại công trình CONGTRINH( Ma_CT, Maloai_CT, Ten_CT, Anh_CT, Investor, Giatri, Nam, Congnghe, Phamvi ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_CT(K) int 4 Mã công trình. Maloai_CT smallint 2 Mã loại công trình Ten_CT nvarchar 250 Tên công trình. Anh_CT ® varchar 100 Địa chỉ ảnh. Investor ® nvarchar 250 Chủ đầu tư công trình. Giatri ® varchar 20 Giá trị công trình. Nam ® nchar 12 Năm thực hiện công trình. Congnghe ® nvarchar 100 Công nghệ thực hiện. Phamvi ® nchar 10 Phạm vi thực hiện. FAQ( Ma_question, Questions, Answers ). Tên Field Kiểu dữ liệu Kích thước Mô tả Ma_questions(K) int 4 Mã câu hỏi. Questions nvarchar 350 Câu hỏi. Answers nvarchar 1000 Câu trả lời.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 24 IV. PHÂN TÍCH VÀ THIẾT KẾ CHI TIẾT CÁC CHỨC NĂNG CỦA HỆ THỐNG. IV.1. HOẠT ĐỘNG KHÁCH HÀNG. (1). Xem thông tin giới thiệu về công ty Seen và các công trình mà Seen đã và đang thực hiện. a. Mô tả chức năng: Chức năng này thể hiện các thông tin mô tả về kinh nghiệm xây dựng công trình, lắp đặt hệ thống trên các lĩnh vực điện tử, tự động hóa và công nghệ môi trường.Cũng như việc giới thiệu các sản phẩm mà SEEN đã chế tạo. Ở đây người sử dụng có thể xem danh sách các dự án hoặc có thể xem chi tiết hơn các thông tin này.Các thông tin này được lưu trữ trong database như: Tên công trình, chủ đầu tư, giá trị, năm thực hiện, công nghệ, phạm vi... b.Sơ đồ giải thuật: (2). Ghi nhận thông tin liên hệ trao đổi của người sử dụng. a. Mô tả chức năng: Sau khi dạo trên khắp web site để tham quan, nếu như người sử dụng muốn liên hệ trao đổi với công ty về một vấn đề nào đó chẳng hạn hợp đồng lắp đặt hệ thống tự động …thì khách hàng sẽ cung cấp thông tin về mình gồm: Tên, địa chỉ, điện thoại, email và nội dung thảo luận. Nếu quá trình giao dịch thành công thì database sẽ tạo mã và lưu trữ thông tin này. Ngược lại, thông báo lỗi. b. Sơ đồ giải thuật: Bắt đầu Database Danh mục các dự án Công nghệ môi trường Danh mục các dự án Điện tử - Tự động hóa Xem chi tiết Xem chi tiết Kết thúcLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 25 Yes No (3). Tìm kiếm, xem danh mục sản phẩm thương mại theo tên, loại. a. Mô tả chức năng: Khách hàng tìm các sản phẩm trong database theo lựa chọn: Theo tên sản phẩm, theo loại. Đọc các record từ các bảng LOAI_SP, SANPHAM trong database để tìm kiếm (search) thông tin các sản phẩm thỏa yêu cầu tương ứng. Hiển thị các sản phẩm tìm được hoặc thông báo lỗi không tìm thấy sản phẩm. b. Sơ đồ giải thuật: Bắt đầu Cung cấp thông tin và nội dung liên hệ Tên, địa chỉ, điện thoại, email, nội dung Kiểm tra các thông tin: Thiếu fields, data không hợp lệ Có lỗi ? Tạo mã và ghi nhận thông tin vào Database Ghi nhận lỗi Thông báo lỗi Kết thúcLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 26 (4). Xem thông tin chi tiết về sản phẩm theo lựa chọn. a. Mô tả chức năng: Khách hàng có thể lựa chọn một danh mục sản phẩm nào đó để xem chi tiết các thông tin về sản phẩm thông qua các Hyperlink. Database sẽ được đọc và lấy đúng mã của danh mục sản phẩm được chọn, hiển thị các record và các field từ bảng SANPHAM. Các thông tin này có thể là: Tên sản phẩm, giá, hình ảnh, mô tả… b. Sơ đồ giải thuật. Bắt đầu Khách hàng tìm hay lựa chọn sản phẩm theo tên, loại Đọc database của công ty.Tìm thông tin sản phẩm theo phân loại tương ứng Tìm được ? Hiển thị thông tin sản phẩm tìm được Ghi nhận lỗi. Thông báo lỗi Kết thúc No YesLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 27 No Yes (5). Đưa sản phẩm chọn mua vào trong giỏ hàng. a. Mô tả chức năng: Sau khi khách hàng đã xem chi tiết về sản phẩm và thỏa thuận về giá cả, khách hàng có thể chọn sản phẩm cần mua vào danh sách giỏ hàng. Giỏ hàng là nơi chứa các sản phẩm mà khách hàng đã chọn mua, ở đây sẽ cho khách hàng biết tổng số mặt hàng cần mua cùng với giá phải thanh tốn. Đối tượng session là nơi lý tưởng để lưu trữ thông tin các mặt hàng chọn mua trước khi thanh tốn. Tuy nhiên bất lợi của session là các thông tin ở trạng thái hiện thời này được lưu trữ không được lâu. Mỗi session chỉ có hiệu lực trong một thời gian nào đó, quá thời gian này tất cả dữ liệu lưu trong session sẽ bị hủy bỏ. Để xây dựng một giỏ hàng cần có những phương thức cơ bản thực hiện những công việc sau: AddItem(): Hàm thêm một mục sản phẩm mới vào giỏ hàng. RemoveItem(): Hàm loại một mục sản phẩm ra khỏi giỏ hàng. ClearItem(): Hàm xóa bỏ tất cả các mặt hàng trong giỏ hàng. UpdateQuantity(): Hàm thay đổi số lượng mua của một mục sản phẩm. GetCost(): Hàm trả về tổng số tiền cần phải thanh tốn của các sản phẩm. GetNumOfItem(): Hàm đếm tổng số sản phẩm có trong giỏ. Vậy một sản phẩm lưu trong giỏ hàng cần phải chứa những thông tin gì? Thông thường một sản phẩm cần phải ghi rõ mã số sản phẩm(Ma_sp), tên sản phẩm(Ten_sp), đơn giá(Gia) và số lượng mua(Soluong). Bắt đầu Chọn danh mục sản phẩm Đọc database Mã sản phẩm được chọn ? Thông báo “No product” Hiển thị thông tin chi tiết sản Kết thúcLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 28 Bởi vì giỏ hàng có thể chứa nhiều mục hàng tương ứng với một khóa (Ma_sp) nên ta sử dụng bảng Hashtable của Java để lưu giá trị các mục hàng mà người dùng thêm vào. b. Sơ đồ giải thuật: (6). Xác nhận việc mua hàng. Chức năng này cho phép khách hàng kiểm tra lại một lần cuối các sản phẩm mình đã đặt mua trong giỏ hàng thông qua các thông tin về sản phẩm như: Tên sản phẩm, số lượng, đơn giá, tổng giá …các thông tin này được ấn định. Ở đây người dùng không được phép chọn thay đổi số lượng mặt hàng đã mua cũng như thêm bớt chúng. (7). Tạo đơn hàng. a. Mô tả chức năng: - Trước hết chức năng này sẽ lấy thông tin về các sản phẩm cần mua được lưu trữ tạm trong giỏ hàng như: Tên sản phẩm, số lượng, đơn giá… - Lấy thông tin của khách hàng chứa trong session do quá trình đăng nhập lưu lại. - Khách hàng cung cấp các thông tin khác về đơn hàng như: Phương thức thanh tốn, ngày đặt hàng, thời hạn giao hàng, địa điểm giao hàng. Các thông tin này lần lượt sẽ được lưu trữ trong trong các table của database theo các mã đơn hàng khác nhau. Mã đơn hàng được lưu trữ như sau: Mã số mới = Mã số cũ lớn nhất + 1 Kết thúc quá trình tạo đơn hàng gởi thông báo đến khách hàng quá trình giao dịch đã hồn tất. Bắt đầu Chọn sản phẩm cần mua Giỏ hàng (Thông tin sản phẩm cần mua) AddItem ClearItem UpdateItem RemoveItem Kết thúcLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 29 b. Sơ đồ giải thuật: (8). Ghi nhận thông tin của khách hàng mua sản phẩm. a. Mô tả chức năng: Sau khi đã chọn lựa sản phẩm đưa vào giỏ hàng để tạo đơn đặt hàng, khách hàng phải đăng ký thông tin cá nhân của mình trên Web site. Cơ sở dữ liệu sẽ lưu trữ các thông tin này để cung cấp cho nhà quản trị. Các thông tin đó là: username, password, họ, tên, email, điện thoại, địa chỉ liên lạc... Đăng ký cũng là yêu cầu bắt buộc khi khách hàng mua sản phẩm để lần sau khách hàng muốn mua Bắt đầu Lấy thông tin về các sản phẩm trong giỏ hàng Giỏ hàng: Tên sản phẩm, giá … Các thông tin do khách hàng cung cấp PTTT, ngày đặt hàng, thời hạn… Thông tin khách hàng lưu trong session Mã, tên khách hàng… Thông báo kết thúc quá trình giao dịch. Kết thúc DatabaseLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 30 nữa thì sẽ được sử dụng Account riêng của mình để đăng nhập hệ thống mua sản phẩm mà không cần cung cấp thông tin và có thể được ưu tiên hưởng lợi từ phía công ty. Cơ chế này có tác dụng tạo ra tâm lý quan tâm của công ty đối với khách hàng, coi khách hàng là một người thân thiện. b.Sơ đồ giải thuật: (9). Kiểm tra tài khoản và quyền đăng nhập của khách hàng mua sản phẩm. a. Mô tả chức năng: Sau khi đã đăng ký làm khách hàng của Công ty, khách hàng trong lần sử dụng Web site kế tiếp sẽ trải qua bước đăng nhập (login) để chứng thực quyền truy cập Web site với tư cách là thành viên. Ở đây bước đăng nhập đảm trách hai tác vụ: Nó cho phép khách hàng đăng nhập (login) làm thành viên của Web site Bắt đầu Cung cấp thông tin của khách hàng Tên khách hàng, địa chỉ, điện thoại, email… Kiểm tra các thông tin đăng ký: Thiếu field, dữ liệu không hợp lệ… Có lỗi ? Tạo mã khách hàng và ghi nhận thông tin khách hàng Ghi nhận lỗi Thông báo lỗi Kết thúc Yes NoLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 31 hoặc đăng xuất (logout) thốt ra khỏi chế độ thành viên để đăng nhập trở lại dưới tên một thành viên khác. Kiểm tra tính hợp lệ của thành viên sẽ dựa vào thông tin username và password mà người dùng đã đăng ký trước đó. Nếu kiểm tra thành công username, password và đúng quyền đăng nhập của khách hàng thì sẽ hướng khách hàng đến trang tạo đơn hàng. Quyền đăng nhập ở đây tức là quyền truy cập vào hệ thống theo giới hạn cho phép của khách hàng và người quản trị Web site. Trong ứng dụng này việc kiểm tra sẽ thông qua hai giá trị: 1 - Thể hiện quyền của khách hàng; 2 - Thể hiện quyền của nhà quản trị. Các giá trị này được lưu trữ trong table KHACHHANG của database. b. Sơ đồ giải thật: (10). Xem thông tin về đơn đặt hàng vừa mới tạo. Mô tả: Sau khi kết thúc quá trình tạo đơn hàng, khách hàng sẽ nhận được thông báo kết thúc quá trình giao dịch. Ở đây cũng thể hiện chức năng cung cấp cho khách hàng xem lại các thông tin về đơn đặt hàng mình vừa mới tạo. Chức năng này dựa vào mã đơn đặt hàng được lưu trữ trong database cùng với một số thông tin khác như: Tên sản phẩm, số lượng, giá, tên khách hàng, phương thức thanh tốn, ngày đặt hàng, thời hạn giao hàng, địa điểm giao hàng… Bắt đầu Kiểm tra tính hợp lệ của account và quyền đăng nhập Có lỗi ? Khách hàng nhập thông tin đăng nhập: username, password Thông báo đăng nhập không hợp lệ Hướng đến trang tạo đơn hàng Kết thúc Yes NoLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 32 IV.2. HOẠT ĐỘNG CỦA NHÀ QUẢN TRỊ Trước khi các chức năng dưới đây được thực hiện thì quản trị viên phải thông qua chức năng đăng nhập vào hệ thống. Mô tả: - Quản trị viên sẽ nhập account và mật khẩu của mình vào hộp thoại đăng nhập của hệ thống. - Hệ thống sẽ kiểm tra account và mật khẩu vừa nhập vào. Nếu: + Hợp lệ: Cho đăng nhập vào hệ thống theo quyền của quản trị viên. + Không hợp lệ: Yêu cầu nhập lại. (1). Quản lý sản phẩm. a. Xem, sửa đổi thông tin của sản phẩm Tác vụ này cho phép xem hoặc sửa đổi (nếu muốn) thông tin của sản phẩm có trong kho của hệ thống. Mô tả: - Quản trị viên sẽ chọn danh mục sản phẩm muốn xem hoặc hiệu chỉnh thông tin. - Hệ thống sẽ hiển thị chi tiết thông tin về sản phẩm vừa chọn. - Quản trị viên sẽ tiến hành xem hoặc hiệu chỉnh, sau đó chọn “Submit” yêu cầu chấp nhận thông tin chỉnh sửa. - Hệ thống sẽ cập nhật lại những thông tin có sự hiệu chỉnh. b. Thêm vào một sản phẩm mới Mô tả: - Hệ thống sẽ hiển thị các textbox để quản trị viên có thể điền vào các thông tin về sản phẩm mới. - Quản trị viên nhập đầy đủ các thông tin về sản phẩm mới. - Hệ thống sẽ kiểm tra lại các thông tin nhập và thêm vào kho hàng được lưu trữ trong table SANPHAM của database nếu hợp lệ, hoặc sẽ báo sai ở các trường thông tin không hợp lệ. c. Xóa một sản phẩm Mô tả: - Hệ thống sẽ hiển thị tất cả các danh mục sản phẩm. - Quản trị viên sẽ chọn một danh mục sản phẩm muốn xóa. - Hệ thống sẽ tiến hành kiểm tra điều kiện xóa sản phẩm trong kho. Nếu thỏa điều kiện xóa thì hệ thống sẽ xóa sản phẩm đó và cập nhật các thông tin có liên quan. (2). Quản lý đơn đặt hàng. a. Xem đơn đặt hàng. Tác vụ này giúp cho nhà quản trị có thể nắm bắt được các thông tin về đơn đặt hàng mà khách hàng đã tạo và được lưu trữ trong database. Mô tả: - Quản trị viên chọn danh mục xem đơn đặt hàng. - Hệ thống sẽ hiển thị thông tin chi tiết về tồn bộ các đơn hàng mà khách hàng đã tạo.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 33 Các thông tin này được lưu trữ trong các table của database như tên sản phẩm, tên khách hàng, phương thức thanh tốn, thời hạn giao hàng, địa chỉ giao hàng và chúng được truy vấn bằng câu lệnh SQL. b. Xóa đơn đặt hàng. Mô tả: - Hệ thống sẽ hiển thị tất cả các đơn đặt hàng. - Quản trị viên sẽ chọn mục “Xóa” theo từng đơn đặt hàng. - Hệ thống sẽ tiến hành kiểm tra điều kiện hủy bỏ đơn hàng, nếu hợp lệ thì hệ thống sẽ thực hiện xóa đơn hàng đó theo câu lệnh delete của SQL. (3). Quản lý thông tin khách hàng mua sản phẩm. a. Xem thông tin khách hàng. Tác vụ này cho phép nhà quản trị xem các thông tin về khách hàng đặt mua sản phẩm. Chức năng này rất thuận lợi cho việc theo dõi khách hàng. Mô tả: - Quản trị viên chọn mục thông tin khách hàng. - Thông tin về tất cả các khách hàng mua sản phẩm sẽ được hiển thị. Các thông tin này được lưu trữ trong table KHACHHANG của cơ sở dữ liệu. Chúng có thể gồm: Username, password, tên khách hàng, email, địa chỉ liên lạc, … b. Xóa thông tin khách hàng. Nếu nhà quản trị thấy không cần thiết để lưu trữ các thông tin của một khách hàng nào đó thì có thể thực hiện chức năng này. Mô tả: - Hệ thống hiển thị tồn bộ danh mục các thông tin về khách hàng đăng ký. - Quản trị viên chọn danh mục khách hàng muốn xóa. - Hệ thống sẽ kiểm tra điều kiện hủy bỏ thông tin một khách hàng. Nếu hợp lệ, hệ thống sẽ xóa khách hàng đó. Ngược lại thông báo lỗi. (4). Quản lý thông tin liên hệ của khách hàng. a. Xem thông tin khách hàng liên hệ. Tác vụ này giúp cho nhà quản trị theo dõi thông tin đối với các khách hàng muốn liên hệ với công ty trao đổi về một vấn đề nào đó có liên quan đến việc yêu cầu tư vấn, lắp đặt hay xây dựng hệ thống… Mô tả: - Quản trị viên chọn mục thông tin khách hàng liên hệ. - Hệ thống hiển thị tồn bộ thông tin liên hệ của khách hàng(bao gồm:Tên khách hàng, email, địa chỉ liên lạc, nội dung liên hệ). - Quản trị viên xem và xử lý các thông tin này. b. Xóa thông tin khách hàng liên hệ. Mô tả: - Hệ thống hiển thị tồn bộ các thông tin liên hệ của khách hàng. - Quản trị viên chọn danh mục muốn xóa. - Hệ thống kiểm tra điều kiện hủy bỏ của các thông tin này. Nếu hợp lệ, hệ thống sẽ xóa và cập nhật lại các danh mục. Ngược lại, thông báo lỗi. (5). Quản lý các dự án mà công ty SEEN đã và đang thực hiện.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 34 a. Xem, hiệu chỉnh thông tin về dự án. Chức năng này cho phép quản trị viên xem và hiệu chỉnh (nếu cần thiết) các thông tin về các công trình mà SEEN đã thực hiện trong những năm gần đây và hiện tại. Các thông tin này nói lên kinh nghiệm hoạt động của công ty với địa bàn hoạt động lớn. Mô tả: - Quản trị viên sẽ chọn danh mục công trình muốn xem hoặc hiệu chỉnh thông tin. - Hệ thống sẽ hiển thị chi tiết thông tin về công trình vừa chọn. - Quản trị viên sẽ tiến hành xem hoặc hiệu chỉnh, sau đó chọn “Submit” yêu cầu chấp nhận thông tin chỉnh sửa. - Hệ thống sẽ cập nhật lại những thông tin có sự hiệu chỉnh. b. Thêm vào một dự án mới. Mô tả: - Hệ thống sẽ hiển thị các textbox để quản trị viên có thể điền vào các thông tin về dự án mới. - Quản trị viên nhập đầy đủ các thông tin về dự án mới. - Hệ thống sẽ kiểm tra lại các thông tin nhập và thêm vào database nếu hợp lệ, hoặc sẽ báo sai ở các trường thông tin không hợp lệ. Các thông tin về dự án bao gồm: Tên dự án, loại dự án, địa chỉ ảnh, chủ đầu tư, giá trị, phạm vi, năm thực hiện, công nghệ. Chúng được lưu trữ trong table CONGTRINH của database c. Xóa một dự án. Mô tả: - Hệ thống sẽ hiển thị tất cả các danh mục dự án. - Quản trị viên sẽ chọn một danh mục dự án muốn xóa. - Hệ thống sẽ tiến hành kiểm tra điều kiện xóa dự án trong database. Nếu thỏa điều kiện xóa thì hệ thống sẽ xóa dự án đó và cập nhật các thông tin có liên quan. (6). Quản lý FAQs. FAQs ( Frequency Answer Questions): Những câu hỏi thường gặp. Là những câu hỏi của khách hàng mà công ty thường gặp hàng ngày. Nhà quản trị sẽ liệt kê những câu hỏi và câu trả lời này hiển thị cho khách hàng xem. Nếu khách hàng có những thắc mắc gì về những câu hỏi này hay những vấn đề khác có liên quan đến công ty thì liên hệ thông qua mục “Liên hệ”, nhà quản trị của công ty có nhiệm vụ đáp ứng câu trả lời cho khách hàng. a. Xem, hiệu chỉnh câu trả lời. Mô tả: - Quản trị viên chọn mục FAQs. - Hệ thống hiển thị danh mục các câu hỏi và câu trả lời tương ứng. - Quản trị viên xem, hoặc hiệu chỉnh sau đó chọn “Submit” lưu các thông tin hiệu chỉnh. - Hệ thống sẽ cập nhật các thông tin hiệu chỉnh. b. Thêm vào một câu hỏi và câu trả lời mới. Mô tả:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 35 - Hệ thống sẽ hiển thị các textbox để quản trị viên có thể điền vào câu hỏi và câu trả lời mới. - Quản trị viên nhập câu hỏi và câu trả lời mới. - Hệ thống sẽ kiểm tra lại các thông tin nhập và thêm vào database nếu hợp lệ, hoặc sẽ báo sai ở các trường thông tin không hợp lệ. Câu hỏi và câu trả lời được lưu trữ trong table FAQ của database. c. Xóa một câu hỏi hay câu trả lời. Mô tả: - Hệ thống sẽ hiển thị tất cả các danh mục câu hỏi và câu trả lời. - Quản trị viên sẽ chọn một danh mục câu hỏi hoặc câu trả lời muốn xóa. - Hệ thống sẽ tiến hành kiểm tra điều kiện xóa của câu hỏi hoặc câu trả lời trong database. Nếu thỏa điều kiện xóa thì hệ thống sẽ xóa câu hỏi hoặc câu trả lời đó.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 36 Chương III. CÁC CÔNG CỤ LI ÊN QUAN I. CÁC KHÁI NIỆM CƠ BẢN VỀ WEB I.1. Ngôn ngữ HTML I.1.1. Khái niệm HTML(HyperText Markup Language) là ngôn ngữ định dạng văn bản siêu liên kết. Sự định dạng dựa trên các thẻ hoặc các đoạn mã đặc biệt để đánh dấu một văn bản, một file ảnh, hoặc một đoạn phim…giúp cho Web Browser thông dịch và hiển thị chúng trên màn hình. Một phần tử thẻ HTML hình thành bởi một cặp bao gồm thẻ đóng và thẻ mở. Giữa thẻ đóng và thẻ mở là dữ liệu cần định dạng. Tên thẻ chính là dấu hiệu để nhận biết loại định dạng. Ngồi ra, HTML có những phần mở rộng rất quan trọng cho phép những liên kết hyperlink từ một tài liệu này tới một tài liệu khác. I.1.2. Cấu trúc cơ bản của một file HTML như sau <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <H1> Đây là một đầu đề </H1> ….. </BODY> </HTML> Theo cấu trúc đã trình bày như trên ta thấy một file HTML chia thành hai phần cơ bản: - Phần đầu: được bao bởi hai tag <HEAD> </HEAD> : tại đây định nghĩa tên (hay được gọi là tiêu đề) của trang web. Phần này được hiển thị trên thanh tiêu đề của trang web được khai báo giữa hai tag <TITLE> </TITLE>. Ví dụ: <HEAD><TITLE>Seen technologies corporation</TITLE> <META http-equiv=Content-Type content="text/html; charset=utf-8"> <META content=Seen name=description> </HEAD> - Phần thân: được bao bởi hai thẻ <BODY> </BODY>: Trình bày nội dung thể hiện trên trang web. Các nội dung cần hiển thị hoặc xử lý trên trang web sẽ được định nghĩa trong phần BODY của file HTML. Để cho các trang web được sinh động hơn, ngôn ngữ HTML còn bao gồm rất nhiều thẻ dùng cho việc định trang, liên kết trang với nhau, thêm hình ảnh vào trang…. Ví dụ: <body leftmargin=0 topmargin=0 marginheight="0" marginwidth="0"> <center> <embed src="flash/header.swf" WIDTH=780 HEIGHT=147 > </center> <P align=justify>Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 37 <FONT face=Arial size="2" color="#800000"><B> The Union for Science of Engineering Technologies - SEEN</B> was established to serve industry in the electrical, environmental, instrumentation and fire detection fields. <center> <embed src="flash/footer.swf" width=780 height=70 > </center> </body> MỘT SỐ THẺ CƠ BẢN CỦA NGÔN NGỮ HTML THẺ MỤC ĐÍCH <title>….</title> Tiêu đề tài liệu, bên trong <head>…</head> <body bgcolor=#XXXXXX> Định màu nền cố định cho trang Web. Ví dụ: <body bgcolor=##ffffff> <body background =“filename.gif”> Sử dụng ảnh để làm nền cho trang. Ví dụ: <body background="images/sodo2.gif"> <body TEXT=#XXXXXX LINK=#YYYYYY> Định màu cho tất cả văn bản và siêu liên kết thành màu mong muốn. <Hn>…</Hn> Tạo tiêu đề cho các mục khác nhau, n=1..6 <b>…</b> <i>…</i> <u>…</u> <strike>…</strike> <blink>…</blink> Tạo chữ đậm, chữ nghiêng, chữ gạch dưới, gạch ngang, chữ nhấp nháy. Ví dụ: <b>Seen</b> cho ta Seen <i>Seen</i> cho ta Seen <u>Seen</u> cho ta Seen <blockquote>…</blockquote> Văn bản thụt vào trong cho các chú giải. <font size=X>…</font> Đặt kích thước font chữ, X=1..7 Ví dụ: <font size=2>Seen</font> <big>…</big> <small>…</small> Đổi kích thước font lớn hơn hay nhỏ hơn kích thước thông thường. <font color=#XXXXXX>…</font> Đặt và đổi màu font chữ. Ví dụ:<font color=#009999>Seen</font> <p> Sang đoạn mới cùng với một trống. <br> Sang một dòng mới, không thêm dòng trống <center>…</center> <p align=center>…</p> Chỉnh tất cả vào giữa trang. Ví dụ: <P align=center><B><FONT face=Arial color=#009999 size=6>SEEN Introduction</FONT></B></P> <table>…</table> <table border=X cellpading=Y cellspacing=Z Dùng để tạo bảng Dùng để tạo đường viền cho bảng, X=0 thì đường viền không thấy được Khoảng cách giữa nội dung trong bản và đường viền Khoảng cách giữa các ô với nhauLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 38 width=K….> …</table> Độ rộng của bảng(tính bằng pixels) <tr>…</tr> <td>…</td> Cứ mỗi thẻ <tr>, <td> thể hiện mỗi dòng, mỗi cột của bảng <rowspan=X colspan=Y> Dùng để mở rộng sang một dòng hay một cột của bảng <img src=”filename.gif”> Liên kết đến một ảnh. Ví dụ:<IMG height=295 src="images/SEEN1.jpg" width=490 border=0> <a> Thẻ này tạo liên kết đến một nguồn dữ liệu hay một tài liệu khác <a href =”mailto: mail address”>…</a> Tạo một thông báo Email đến một địa chỉ được chỉ định. I.2. Trình duyệt (Browser) Để hiển thị được tài liệu HTML ta cần phải biết đến một chương trình, thông thường đó là trình duyệt (browser). Khi ta cung cấp cho trình duyệt địa chỉ URL, trình duyệt sẽ liên hệ với trình chủ Web server để lấy tài liệu. Đọc và phân tích tài liệu, sau đó hiển thị tài liệu theo các dạng nhất định như font chữ, màu sắc cho văn bản kết hợp với âm thanh, hình ảnh…Ngồi ra trình duyệt cho phép nhập dữ liệu thông qua các thành phần điều khiển như (textbox, textarea, checkbox…) sau đó nó sẽ gởi về trình chủ xử lý. I.3. Địa chỉ định vị tài nguyên URL URL (Uniform Resource Locator) còn được gọi là địa chỉ định vị tài nguyên thống nhất, dùng để trỏ đến vị trí của một tài nguyên (như hình ảnh, tài liệu văn bản…) trên máy chủ. Một địa chỉ URL gồm 3 phần: Phần giao thức, phần địa chỉ máy chủ và phần định vị hay đường dẫn tương đối đến nơi chứa tài nguyên. I.4. Giao thức HTTP Khi trình duyệt nhận địa chỉ URL, thông qua mạng trình duyệt và máy chủ Web server sẽ kết nối với nhau và giao tiếp thông qua giao thức HTTP(Hypertext Transfer Protocol). Đây là một giao thức phi trạng thái, nó cho phép trình duyệt phía máy khác (client) gởi một yêu cầu ở dạng văn bản lên phía trình chủ. Trình chủ nhận được lệnh sẽ gởi trả về tài liệu tương ứng. Giao thức này chứa một số lệnh như: GET ( Yêu cầu lấy về nội dung trang dữ liệu từ Web server); POST ( Chuyển dữ liệu lên trình chủ Web server); PUT (Đưa một file lên Web server). II. GIỚI THIỆU VỀ CÔNG NGHỆ FLASH Ngày nay, Flash đã trở thành một chuẩn cho đồ họa hoạt hình trên Web.Với Flash ta có thể bổ sung các hiệu ứng thú vị cho trang Web, làm cho chúng có tính tương tác cao hơn và hấp dẫn hơn. Các đoạn phim Flash có thể thực hiện được trên bất kỳ trình duyệt nào khi trình thể hiện Macromedia Flash Player được cài đặt. Chính vì lý do này mà em chọn công nghệ Flash làm công cụ để hỗLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 39 trợ cho việc thiết kế Web site của mình. Trong Web site tất cả các nút liên kết, các banner đầu và chân trang đều được thể hiện bằng Flash. II.1. Giao diện II.2. Hoạt hình trong Flash Flash có hai phương pháp làm hoạt hình: Hoạt hình theo dạng khung hình nối tiếp khung hình và hoạt hình dạng biến đổi.  Hoạt hình theo dạng khung hình nối tiếp khung hình Đây là phương pháp chuyển động được sử dụng rộng rãi và được nhiều người biết nhất. Phương pháp này được dùng làm nhiều thứ từ việc tạo phim hoạt hình cho đến mang những hình thể con người vào cuộc sống. Loại hình này yêu cầu chụp nhanh một khung hình, rồi thay đổi đi một ít, xong lại lấy nội dung của khung hình khác, lại thay đổi nội dung …ta sắp xếp các khung hình này theo thứ tự và thực hiện liên tiếp đủ nhanh sẽ tạo ra sự chuyển động và hoạt hình. Tuy nhiên việc thực hiện hoạt hình theo phương pháp này đòi hỏi rất công phu và tốn rất nhiều thời gian.  Hoạt hình theo dạng biến đổi Với phương pháp này ta có thể tạo ra hoạt hình một cách nhanh chóng và dễ dàng hơn phương pháp khung hình nối tiếp khung hình nhiều. Chỉ cần sử dụng các khung hình khóa để định nghĩa hai điểm: sự xuất hiện của hình ảnh từ lúc bắt đầu và lúc kết thúc của hoạt hình. Sau đó xác định thời gian dài bao nhiêu cho hoạt hình từ điểm bắt đầu đến điểm kết thúc, Flash sẽ tính tốn các hình ảnh hoạt hình sẽ trông như thế nào trong tồn bộ các khung hình và nhanh chóng tạo ra các hoạt hình dạng biến đổi. III. GIỚI THIỆU VỀ NGÔN NGỮ JAVA. Khi lập trình ứng dụng web với JSP(Java Server Page) thì chắc chắn ta phải biết đến ngôn ngữ lập trình và môi trường Java. Vì Java chính là ngôn ngữ mẹ đẻ của JSP. 1. Các khái niệm. 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 mã của chương trình Java sau khi biên dịch thường là một fileLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 40 nhị phân. Java biên dịch ra mã nhị phân gọi là byte-code và được triệu gọi thực thi trong máy ảo Java. File nhị phân của Java thường mang tên mở rộng là .class. Máy ảo Java là một trình thông dịch bình thường có khả năng thực thi các mã bytecode 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. Chính vì lý do này ta chỉ cần viết máy ảo Java cho từng hệ điều hành là chương trình Java (.class) có thể chạy như nhau ở mọi nơi trên cùng một kiến trúc máy ảo. Java có thể dùng để viết mộ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ề ứng dụng mạng và Internet. Ngồi ra có thể dùng Java để viết Applet hoặc Servlet hay mã trang JSP là những thành phần ứng dụng đặc biệt dùng cho trình duyệt (browser) và trình chủ (web server). 2. Cơ bản về ngôn ngữ Java 2.1 Khối lệnh Java bắt đầu và kết thúc một khai báo khối bằng cặp ngoặc nhọn {}. Kết thúc một lệnh thường là dấu chấm phẩy(;). Ví dụ: public class app { } public class app { public static void main(String[] args) { ……. } } Trong Java tất cả các hàm và các thủ tục đều phải được đặt trong một lớp cụ thể. 2.2 Khai báo sử dụng thư viện Tương tự như các ngôn ngữ lập trình khác hỗ trợ triệu gọi các hàm thư viện, Java cho phép ta xâm nhập vào các lớp thư viện bằng từ khóa import. Khai báo import sẽ đưa vào chương trình những lớp thư viện đóng trong các gói (package). Ví dụ: import java.util.Date; public class app { public static void main(String[] args) { …. } } Ở đây java.util là gói, Date là lớp đối tượng để xử lý ngày tháng. Một gói có thể gồm nhiều lớp đối tượng. 2.3 Tạo chú thíchLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 41 Chú thích trong Java tương tự như trong C/C++. Ta có thể chú thích nhiều dòng bằng cặp /* */ hoặc chú thích một dòng bằng dấu sổ đôi //. 2.4 Khai báo và tạo biến trong chương trình Java Tương tự như trong C/C++, kiếu dữ liệu hoặc lớp đối tượng đặt trước tên biến. Ví dụ: int num=1234;// Khai báo biến num, kiểu nguyên, giá trị khởi tạo là 1234 Date date=new Date();//Khai báo đối tượng date thuộc lớp Date. 2.5 Chuỗi trong Java Java xem chuỗi là một đối tượng. Biến đối tượng chuỗi thường khai báo từ lớp String.Ví dụ: String hello; String name=”Van Loi”; String sanpham=new String(“Tự động”); Tốn tử new thường dùng để tạo một đối tượng mới.Ngồi ra ta có thể gán và cộng chuỗi với nhau. hello=”welcom to”; string message; message=hello + ” ” + name + “ ”+ sanpham; 2.6 Các tốn tử Java sử dụng các tốn tử hồn tồn giống C/C++. Trong Java ta có thể sử dụng tốn tử một ngôi như v++. Các tốn tử thường sử dụng như: Tốn tử Mô tả Ví dụ ++ Tăng giá trị lên 1 x++ -- Giảm giá trị đi 1 x-- = Gán x=13 = = So sánh if(x<4) {…} - Trừ y=x-5 - = Trừ kết hợp phép gán x- =y + Cộng y=x+1 += Cộng kết hợp phép gán x+=y * Nhân x=2*y *= Nhân kết hợp phép gán x*=y / Chia x=y/2 /= Chia kết hợp phép gán x/=y <,>,<=, So sánh nhỏ hơn, lớn hơn, x<y;x>y; >= nhỏ hơn hoặc bằng, lớn x<=y;x>=y; hoặc bằng. !=,= = So sánh khác, bằng if(x= =y) {…} !,&& Tốn tử logic 2.7 Các lệnh điều khiển rẽ nhánh Java cung cấp các lệnh điều khiển và rẽ nhánh tương tự như ngôn ngữ C đó là if…else và switch. Lệnh if dùng để so sánh một biểu thức true, false và thực hiện khối lệnh if nếu điều kiện so sánh là true.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 42 Lệnh if …else cho phép thực thi cả hai trường hợp. Nếu biểu thức so sánh của if là true thì khối lệnh if được thực hiện. Nếu là false thì khối lệnh else sẽ được gọi. if(Biểu thức logic) { công việc 1; } else { công việc 2; } Ví dụ: if (x<y) { System.out.println(“x less than y”); } else { System.out.println(“y less than x ”); } Lệnh rẽ nhánh điều kiện switch cho phép ta chọn nhiều trường hợp xảy ra của giá trị so sánh. Các giá trị so sánh sẽ được đặt trong mệnh đề case. Mệnh đề default sẽ được thực hiện khi tất cả các trường hợp so sánh case không thõa mãn, lệnh break phải được gọi để thốt khỏi switch không cần thực hiện so sánh với các giá trị bên dưới. switch(biểu thức) { case GT1: CV1; break; case GT2: CV2; break; … … case GTn: CVn; break; default: CV ngầm định; } Ví dụ: public static void main(String[] args) { int day=4; switch(day) { case 0: System.out.println(“Today is Monday.”); break; case 1: System.out.println(“Today is Tuesday.”);Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 43 break; case 2: System.out.println(“Today is Wednesday.”); break; case 3: System.out.println(“Today is Thursday.”); break; default: System.out.println(“It must be Friday.”); } } 2.8 Các lệnh lặp Java cung cấp các lệnh điều khiển lặp bao gồm: for, while, do…while.  Vòng lặp for Lệnh for thường dùng để xác định một phạm vi lặp biết trước. for ( khởi tạo biến; điều kiện lặp;thay đổi biến đếm) { công việc; } Ví dụ: public static void main(String[] args) { double accounts[] ={ 45.45, 46.47, 48.69}; double sum=0; // Tính tổng của tất cả phần tử trong mảng for (int loopIndex =0; loopIndex < accounts.length; loopIndex++) { sum +=accounts[loopIndex]; } System.out.println(“The total in all accounts is $” + sum); }  Vòng lặp while Lệnh while dùng để kiểm tra biểu thức điều kiện, nếu biểu thức trả về giá trị true thì vòng lặp sẽ tiếp tục thực thi. while( biểu thức logic) { công việc; } Ví dụ: int x=1, sum=0; While (x<10) { sum+=x; x++; }Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 44 Vòng lặp while trên dùng để tính tổng từ 1 đến 9. Nếu x > 10 thì vòng lặp chấm dứt.  Vòng lặp do …while Khác với lệnh while, lệnh này sẽ bước vào thực thi khối lệnh lặp ít nhất một lần trước khi kiểm tra điều kiện lặp ở mệnh đề while. do { công việc; } while(biểu thức logic); Ví dụ: int x=9, sum =0; do { sum+=x; x--; } while (x>0); 2.9 Khai báo lớp đối tượng, phương thức, thuộc tính Ta dùng từ khóa class để khai báo các lớp trong Java. Từ khóa public nếu đi chung với khai báo class sẽ cho biết lớp được dùng chung và triệu gọi được bởi các lớp bên ngồi khác. Các hàm bên trong lớp được gọi là phương thức. Biến khai báo trong lớp nếu áp dụng từ khóa public cho phép truy xuất được từ bên ngồi gọi là thuộc tính. class tên lớp { thuộc tính; phương thức; } Có hai loại phương thức: Phương thức đối tượng và phương thức lớp. Khai báo:- Tên đối tượng. tên phương thức - Tên lớp. tên phương thức Các thuộc tính của Java được thể hiện qua các từ khóa sau: public, private, protected. + Một vùng gọi là public có thể được truy cập từ tất cả các đối tượng khác. + Một lớp không thể truy xuất vùng private của lớp khác + Vùng protected của một lớp có thể được truy cập trong bản thân lớp đó mà còn cho các lớp dẫn xuất từ lớp chủ truy cập, nhưng các lớp khác nữa thì không. 2.10 Đón bắt lỗi ngoại lệ (Exception) Ngoại lệ là một lỗi phát sinh bất ngờ mà ta không lường trước được. Java sẽ trả về cho chương trình chạy lỗi ngoại lệ này để chương trình giải quyết. Ta có thể sử dụng khối lệnh try…catch để thử và bảo vệ đoạn mã có khả năng sinh lỗi. main() { …. try {Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 45 ….. gọi phương thức ; câu lệnh ; } catch(Exception ex) { …. } } phương thức() Ví dụ: public int divide(x,y) { try { int result=x/y; return result; } catch (Exception e) { System.out.println(e); } 3. Servlet Java có thể xây dựng nhiều loại ứng dụng. Servlet là một trong các loại ứng dụng của Java. Nó đưa mã HTML vào lệnh Java để tạo thành một trang Web. Servlet là các thành phần đối tượng nhúng trên trình chủ Web server thực hiện xử lý yêu cầu và sinh ra các trang Web động trả về máy khách. Để sử dụng được Servlet ta cần có các trình chủ hiểu Java và hỗ trợ triệu gọi Servlet như Apache, Jrun, Web Logic…Mặc dù vậy việc biên dịch và tạo Servlet ta chỉ cần trình biên dịch JDK mà không cần đến các trình chủ. Sau khi biên dịch thì ta cần phải đăng kí với trình chủ hiểu Java và triệu gọi trang Web của Servlet từ trình duyệt Web. Các phương thức xử lý cơ bản của Servlet Theo đặc tả của giao tiếp Servlet do Sun đưa ra một Servlet cơ bản cần có những phương thức phục vụ cho các nhu cầu: Khởi tạo, hoạt động và phục vụ, hủy, trả về thông tin cấu hình, trả về thông tin tự thân của Servlet. 3.1 Phương thức khởi tạo init() public void init() Phương thức này được gọi khi lần đầu tiên trình chủ Web server nạp mã thực thi của Servlet từ tập tin .class vào bộ nhớ và bắt đầu cho phép Servlet hoạt động. Ta có thể dùng phương thức này để khởi tạo các biến môi trường và giá trị ban đầu cần thiết cho quá trình thực thi Servlet tiếp theo. 3.2 Phương thức phục vụ service() public void service(ServletRequest req, ServletResponse res) throws IOException Sau khi phương thức init() đã hồn tất, trình chủ Web server sẽ gọi đến phương thức phục vụ service(). Khi trình chủ nạp servlet vào bộ nhớ, phương thức init() chỉ được gọi duy nhất một lần trong khi phương thức service() có thể được gọi nhiều lần ứng với mỗi yêu cầu servlet phát sinh từ trình duyệt phía máyLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 46 khách. Bên trong phương thức service() có thể sử dụng đối tượng tham số ServletRequest và ServletResponse để tiếp nhận dữ liệu từ trình khách chuyển lên và kết xuất kết quả phản hồi trở lại trình khách. 3.3 Phương thức hủy destroy() Khi servlet không còn dùng đến nữa hoặc hết thời gian quy định lưu giữ trong bộ nhớ của trình chủ Web server, nó sẽ bị trình chủ giải phóng. Trước khi servlet bị hủy phương thức destroy() sẽ được gọi. 3.4 Phương thức getServletConfig() và getServletInfor() Hai phương thức này nhằm mục đích cung cấp thông tin. Phương thức getServletConfig() giúp người sử dụng servlet có được đối tượng ServletConfig chứa các thông tin khởi tạo từ môi trường ngồi đưa vào servlet. GetServletInfor() trả về một chuỗi thông tin mô tả ý nghĩa và mục đích của servlet. IV. JSP(JAVA SERVER PAGES) JSP là một cách đơn giản hóa hơn cho Servlet, là bước chuyển tiếp tiếp theo của Servlet trong ứng dụng Java. Nếu như đối với Servlet ta phải viết mã Java và biên dịch thủ công trước khi đưa vào sử dụng với trình chủ Web server thì JSP không cần điều này. JSP viết mã Java tương tự Servlet nhưng cho phép trộn lẫn Java với các thẻ định dạng HTML. Trình diễn dịch JSP sẽ chịu trách nhiệm kết hợp mã Java và thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trình khác gửi đến. Đối với trang JSP ta chỉ cần biên dịch một lần duy nhất sau đó giữ nguyên mã byte-code ở các lần thực thi kế tiếp. Chính vì lí do này trang JSP được xem là có tốc độ thực thi tương đương với Servlet và ưu điểm hơn hẳn các công nghệ xử lý trang động hiện hành như CGI(Common Gateway Interface) hay ASP(Active Server Pages). Chu trình sống của JSP Trang JSP có chu trình sống xác định tính từ khi hệ thống đọc biên dịch trang JSP, gọi thực thi và loại trang ra khỏi bộ nhớ. Chu trình sống của JSP trải qua các giai đoạn sau:  Biên dịch trang JSP  Nạp trang  Khởi tạo  Thực thi  Dọn dẹp Biên dịch trang JSP Khi trình duyệt yêu cầu trang JSP, Web server sẽ kiểm tra trang JSP đã được biên dịch hay chưa. Nếu chưa biên dịch hoặc đã biên dịch nhưng trang JSP mới vừa thay đổi trong mã nguồn thì Web server sẽ thực hiện biên dịch trang JSP. Quá trình biên dịch trang JSP thực tế là chuyển trang JSP thành Servlet. File biên dịch .class của trang sẽ được đặt trong thư mục đệm. Như vậy quá trình biên dịch chỉ diễn ra một lần. Nếu trang đã biên dịch mà sau đó không có thay đổi mãLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 47 nguồn thì quá trình biên dịch lần sau sẽ không xảy ra, do đó tốc độ thực thi trang sẽ nhanh hơn. Sau khi trang đã được biên dịch, mã trang sẽ được nạp vào bộ nhớ để thực thi. Nạp trang Từ giai đoạn này, trang JSP đã được biên dịch ra servlet cho nên việc nạp trang JSP cũng giống như nạp servlet. Để nạp servlet, trình chủ Web server cần phải biết tên của lớp servlet (file.class) cũng là tên mà trình duyệt dùng để triệu gọi servlet. Các servlet (file.class) mặc định của Jrun được đặt trong thư mục[JRUN_HOME]\servlets. Khi có một yêu cầu triệu gọi JSP, trình chủ Web server sẽ xem JSP đã nạp vào bộ nhớ hay chưa, nếu chưa có nó sẽ nạp vào bộ nhớ. Khởi tạo Khi đã nạp mã thành công, Web server sẽ gọi đến phương thức khởi tạo trang. Mặc dù JSP được dịch ra servlet nhưng phương thức khởi tạo của JSP lại mang tên jspInit() chứ không phải là init(). Thực thi Sau quá trình khởi tạo JSP sẽ gọi đến phương thức _jspService(). Phương thức này sẽ cho ta hai lớp đối tượng HttpServletRequest và HttpServletResponse để đọc và ghi kết xuất trả về trình khách. Dọn dẹp Khi trang JSP đã thực thi xong, trình chủ Web server sẽ gọi phương thức jspDestroy() để giải phóng mã trang ra khỏi bộ nhớ. 1. Cơ chế hoạt động của trang JSP Servlet đưa mã HTML vào lệnh Java trong khi ngược lại JSP đưa lệnh Java vào các mã HTML. Các trang JSP chứa các thẻ đặc biệt quy định gần giống thẻ của ngôn ngữ HTML. Khi từ trình duyệt gởi yêu cầu một trang JSP, trình chủ Web Server sẽ đọc trang JSP từ đĩa cứng, bộ diễn dịch JSP Engine (thường được cài đặt trong các trình chủ Web Server) sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành một servlet. Sau đó trình chủ sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách. Cơ chế này được minh họa như sau: Yêu cầu Kết xuất Cơ chế triệu gọi trang JSP Web Browser Web Server HTTP Service JSP Engine Servlet tạm Trang JSPLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 48 2. Các cú pháp cơ bản của JSP 2.1 Thẻ bọc mã <% %> hay <jsp:scriptlet> Ưu điểm của trang JSP là khả năng nhúng mã Java giữa các thẻ định dạng HTML. Khi gặp thẻ <% bộ diễn dịch JSP sẽ biết được lệnh cần thực hiện tiếp theo là mã lệnh Java. <html> <% mã Java %> </html> Ví dụ: <html> <% // Dưới đây là mã lệnh java out.println(“The time now is :” + new java.util.Date() + “<br>”); %> </html> Cú pháp <% vẫn thường được sử dụng hơn 2.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 một biểu thức, hàm nào đó. Ví dụ <html> welcom <%=username%> You have <%= getNewMail() %> mail. </html> Trong đó username là biến, getNewMail() là một hàm trả về số int. JSP không dùng 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 cú pháp này sẽ được chuyển thành lệnh out.println() tương đương như sau: out.println(“welcom”+ uername); 2.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 và cú pháp /* */ được áp dụng cho nhiều dòng. Các dòng chú thích sẽ được bỏ qua khi trình chủ diễn dịch trang JSP. // Chú thích một dòng trong JSP /* Chú thích nhiều dòng trong JSP */ Ngồi ra JSP còn cung cấp thêm cho ta cú pháp chú thích <%-- --%>. Tất 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 bỏ qua. 2.4 Khai báo phương thức và biến bằng <%! %>Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 49 Một cú pháp sau cùng mà JSP cung cấp là <%! %>. Cú pháp này cho phép ta khai báo 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. Ví dụ: <html> <%! int count=12; // Khai báo biến count %> <%! String name=”Nguyen van loi”; %> </html> 3.Các thẻ xử lý nhúng và chuyển hướng giữa các trang Trong quá trình xử lý và chuyển hướng dữ liệu cho form ta có thể nhúng và triệu gọi những trang JSP khác với trang hiện hành. Hay khi nhận dữ liệu submit từ trình khách, trang JSP nhận được dữ liệu có thể chuyển hướng hoặc triệu gọi đến trang JSP khác. JSP cung cấp cho ta các thẻ sau: 3.1. Thẻ nhúng mã nguồn <%@ include file %> Thẻ này thường dùng để đem nội dung file.html hay file.jsp bên ngồi vào trang hiện hành. Cú pháp như sau: <%@include file=”filename”%> Ví dụ: Trong ứng dụng ta thường sử dụng các hàm thư viện chứa trong file Common.jsp. Thư viện này được đưa vào trang JSP hiện hành như sau: <% @include file=”Common.jsp”%> 3.2. Thẻ <jsp:include> Chỉ thị <%@ include %> chỉ dùng để nhúng các mã nguồn tĩnh. Nếu muốn nhúng kết quả kết xuất từ các trang .jsp, servlet hay .html khác vào trang hiện hành JSP cung cấp cho ta thẻ <jsp:include> với cú pháp sau: <jsp:include page =“filename” flush=”true” /> Ví dụ: Trong ứng dụng có sử dụng thẻ <jsp:include> để nhúng kết quả của trang Header.jsp vào các trang khác như sau: <jsp: include page=”Header.jsp” flush=”true”/> 3.3. Chuyển tham số bằng thẻ <jsp:param> Khi nhúng trang bằng thẻ <jsp:include> ta có thể chuyển tham số cho trang được nhúng để nhận được kết quả kết xuất linh động hơn bằng cách sử dụng thẻ con <jsp:param>. Ví dụ: Ta có hai trang testParam1.jsp và trang testParam2.jsp và truyền tham số “Hello World” cho trang testParam2 như sau: Trang testParam1.jsp <jsp: include page=”testParam2.jsp” flush=”true”> <jsp:param name=”greeting” value=”Hello World” /> <jsp : include> <% out.println(“Called from test1.jsp<br>”); %> Trang testParam2.jsp <%Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 50 String param=request.getParameter(“greeting”); Out.println(“Called from test2.jsp<br>”); Out.println(“param : ” +param); %> 3.4. Thẻ chỉ dẫn biên dịch trang <%@ page %> Thẻ <%@ page %> chỉ dẫn một số tính chất biên dịch áp dụng cho tồn trang jsp. Ta có thể sử dụng thẻ này để khai báo các thư viện import của Java, chỉ định tùy chọn trang jsp có cần giữ trên cache bộ nhớ của trình chủ để tăng tốc hay không… <%@ page attribute=”value”…%> Ví dụ: Để khai báo sử dụng các thư viện java <html> <%@ page import=”java.sql.*” %> </html> 3.5. Thẻ chuyển hướng đến trang khác <jsp:forward> Thẻ này giúp ta triệu gọi và chuyển hướng trang web sang địa chỉ khác hoặc chuyển dữ liệu cho trang jsp khác xử lý. Cú pháp: <jsp:forward page=”filename” /> Ví dụ: Khi xử lý trang dữ liệu đăng nhập (login page) ta kiểm tra mật khẩu, nếu hợp lệ ta chuyển người dùng đến trang tài nguyên cho phép truy cập. Nếu không hợp lệ, chuyển người dùng đến trang thông báo lỗi. <% if (request.getParameter(“password”)= =”admin”) { %> <jsp:forward page=”errorLogin.jsp”> </jsp:forward> <% } else { %> <jsp:forward page=”successLogin.jsp”> </jsp:forward> <% } %> 3.6. Chuyển hướng sang trang mới với sendRedirect() Phương thức sendRedirect() cũng có chức năng giống như thẻ <jsp:forward> . Nhưng nó khác nhau ở chỗ là sendRedirect() chỉ thực hiện triệu gọi trang mà không chuyển tham số của trang hiện hành cho trang chuyển hướng. Ví dụ: <% response.sendRedirect(“Taodonhang.jsp”); %> 3.7. Thẻ sử dụng thành phần Bean <jsp: useBean> Thẻ <jsp: useBean> được dùng để khai báo phạm vi và định danh id(identify) nhận dạng Bean.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 51 Thẻ này khá linh động, ngữ nghĩa chính xác phụ thuộc vào giá trị đưa ra. Cú pháp của <jsp: useBean> như sau: <jsp: useBean id=”name” scope=”page request session application” class=”packagename.classname”> Ví dụ: <jsp: useBean id=”cart” scope=”session” class=”giohang”/> 3.8. Thẻ đặt thuộc tính cho Bean <jsp:setProperty> Thẻ này dùng để gán giá trị vào thuộc tính Bean. Thuộc tính tên của Bean chỉ định cho đối tượng phải được định nghĩa và nằm trong phạm vi cho phép. Cú pháp của <jsp:setProperty> như sau: <jsp:setProperty name= “beanName” prop_expr /> Trong đó prop_expr có thể khai báo như sau: property=”*”  property=”propertyName”  property=”propertyName” param=”parameterName”  property=”propertyName” value=”propertyValue”  3.9. Thẻ lấy thuộc tính cho Bean <jsp:getProperty> Thẻ này dùng để lấy giá trị của thuộc tính Bean và chuyển giá trị thành kiểu chuỗi. Cú pháp cho thẻ <jsp:getProperty> như sau: <jsp: getProperty name=”name” property=”propertyName” /> Name: thuộc tính trình bày tên của bean Property: Thuộc tính của bean mà ta cần lấy giá trị. 4. Sử dụng các đối tượng trong trang JSP Trình diễn dịch JSP cho phép ta sử dụng một số đối tượng đã khai báo trước. Điều này giúp ta viết mã lệnh trong trang JSP nhanh hơn servlet.  Đối tượng out: xuất phát từ lớp PrintWriter. Đối tượng này được dùng để định dạng kết xuất gởi về máy khách. Cú pháp: out.Phương thức(các biến…) Một số phương thức của đối tượng: clear(); clearBuffer(); flush();…  Đối tượng request: xuất phát từ lớp HttpServletRequest. Đối tượng này dùng để lấy về các tham số hay dữ liệu do trình khách chuyển lên. Cú pháp: request.Phương thức(các biến…) Một số phương thức của đối tượng: getParameter(String name); getAttribute(String name); getMethod();…  Đối tượng response: Xuất phát từ lớp javax.servlet.HttpServletResponse, tương tự đối tượng out, đối tượng response dùng để đưa kết xuất trả về trình khách. Tuy nhiên đối tượng out được dùng thường xuyên hơn do được hỗ trợ thêm luồng đệm để tăng tốc kết xuất. Cú pháp: response.Phương thức(các biến…) Một số phương thức của đối tượng: addCookie(Cookie cookie); sendError(int sc); sendRedirect();  Đối tượng session: Xuất phát từ lớp javax.servlet.http.HttpSession, đối tượng này dùng để theo dõi kết nối và lưu vết một phiên làm việc giữa trình khách và trình chủ.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 52 Cú pháp: session.Phương thức(các biến…) Một số phương thức của đối tượng: getAttribute(String name); getAttributeNames(); getId();  Đối tượng application: Xuất phát từ lớp javax.servlet.ServletContext trong java. Có thể dùng đối tượng này để chia sẽ thông tin giữa tất cả người sử dụng, lưu các thông tin mang tính bao quát lên ứng dụng JSP. Application cũng được dùng để đếm số lần truy cập của người sử dụng. Cú pháp: application. Phương thức(các biến…) Một số phương thức của đối tượng: getAttribute(String name); getServerInfo(); getAttributeNames(); V. TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG TRANG JSP Hầu như công việc xây dựng một Website có sử dụng JSP và Servlet thường thực hiện nhất đó là lưu trữ và truy xuất cơ sở dữ liệu, cung cấp thông tin cho trình khách. Việc truy xuất này dựa vào trình truy xuất JDBC theo chuẩn Java. Ở đây ta sử dụng kiểu truy xuất bằng cầu nối JDBC-ODBC. Để kết nối với cơ sở dữ liệu, JDBC đòi hỏi hai yếu tố là trình điều khiển và thông tin để kết nối. Đối với cơ chế truy xuất này Sun cung cấp trình điều khiển miễn phí có tên là: JdbcOdbcDriver. Ta khai báo tên lớp này như sau: String drivername=”sun.jdbc.odbc.JdbcOdbcDriver”; Tiếp đến gọi phương thức tĩnh forName của lớp Class để nạp và khởi tạo trình điều khiển: Class.forname(drivername).newInstance(); Kể từ lúc này ta hồn tồn có thể sử dụng trình điều khiển JDBC-ODBC để truy xuất cơ sở dữ liệu.Tuy nhiên trình điều khiển cần phải biết thêm những thông tin cụ thể như tài khoản đăng nhập, địa chỉ máy chủ nơi chứa cơ sở dữ liệu…Trong trường hợp sử dụng ODBC những thông tin này đã được chúng ta thiết lập trước đó, chẳng hạn đối với ứng dụng này thông tin đó như sau: String connectionURL=”jdbc:odbc:seen”; String username=”sa”; String password=””; Ở đây chuỗi jdbc:odbc: là bắt buộc đối với trình điều khiển JDBC-ODBC. Phía sau chuỗi này là thông tin kết nối cụ thể đến cơ sở dữ liệu seen. Trình điều khiển JDBC-ODBC được mô tả như sau:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 53 Mã Java Mã đặc thù Truy xuất cơ sở dữ liệu Đối tượng Connection sẽ thể hiện kết nối đến cơ sở dữ liệu. Ta gọi phương thức getConnection của lớp DriverManager để yêu cầu trình điều khiển nạp bởi Class.forName() trước đó để tiếp nhận thông tin và thực hiện kết nối. // Đối tượng kết nối JDBC Connection con=null; //Tạo kết nối con=DriverManager.getConnection(connectionURL,username, password); Ngồi ra em còn sử dụng các câu lệnh SQL để truy vấn dữ liệu, trích xuất dữ liệu, các lệnh thay đổi dữ liệu như INSERT(tạo mới mẫu tin), UPDATE(cập nhật mẫu tin) và DELETE(xóa bỏ mẫu tin). VI. JRUN WEB SERVER JRun là trình chủ Web server thực thi được các công nghệ Web mới nhất của Java như Servlet/JSP và EJB. Mặc dù có nhiều trình chủ Web server dành cho Java như Java Web Server, Web Logic,…Nhưng đây là trình chủ thân thiện với em nên em đã sử dụng nó để hỗ trợ cho việc xây dựng đề tài. Java Application, Servlet JDBC Driver ODBC Database driver Cơ sở dữ liệu(Access, SQL Server, Oracle…)Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 54 Giao diện của trình chủ Jrun Web ServerLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 55 Chương III. THỰC HIỆN CHƯƠNG TRÌNH I. CÁC TRANG JSP THAM GIA VÀO HOẠT ĐỘNG KHÁCH HÀNG. Trangchu.jsp: a. Mô tả: Khi khách hàng truy nhập vào web site, đây sẽ là trang đầu tiên khách hàng ghé đến. Tại đây hầu như thể hiện đầy đủ tất cả các chức năng của chương trình thông qua các hyperlink và các nút. Các nút ở đây cùng với các banner tất cả đều được thể hiện bằng Flash. b. Giao diện: 1. Trang Thuongmai.jsp a. Chức năng: - Giới thiệu về hoạt động thương mại của công ty SEEN. - Tìm sản phẩm theo tên, theo loại. - Chọn xem danh mục sản phẩm theo loại. - Chọn xem chi tiết các sản phẩm mới của công ty. b. Input: - Nhập tên sản phẩm, tên loại sản phẩm. - Lấy thông tin về sản phẩm trong các table SANPHAM và LOAI_SP của database. c. Output: - Hiển thị danh sách sản phẩm tìm được thông qua trang Tim.jsp và gởi mã sản phẩm sang trang này. - Hiển thị trực tiếp các thông về sản phẩm mới nếu như chức năng chọn xem chi tiết sản phẩm mới được lựa chọn. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 56 e. Mô tả: Trang Thuongmai.jsp này sẽ giới thiệu sơ bộ với khách hàng về hoạt động thương mại của công ty. Qua đó khách hàng có thể duyệt xem các tựa sản phẩm của công ty theo thể loại thì chỉ cần chọn hyperlink về loại sản phẩm. Khách hàng cũng có thể tìm xem tựa sản phẩm theo tên, loại. Các chức năng này sẽ đưa khách hàng đến trang Tim.jsp. Ngồi ra khách hàng còn có thể xem trực tiếp chi tiết về các sản phẩm mới của công ty. Chức năng này sẽ đưa quý khách đến trang ChitietSanpham.jsp . 2. Trang Tim.jsp a. Chức năng: Xem kết quả sản phẩm tìm được theo tên, loại. b. Input: Lấy tên sản phẩm, tên loại sản phẩm theo mã sản phẩm, mã loại từ trang Thuongmai.jsp c.Output: Hiển thị danh mục các sản phẩm có trong kho theo mong muốn khách hàng. Ngồi việc hiển thị danh mục các sản phẩm, trang còn cung cấp cho khách hàng các thông tin tóm tắt về sản phẩm. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 57 e. Mô tả: Từ trang Thuongmai.jsp nếu nhập vào một tựa sản phẩm rồi nhấn nút Tìm Trang Tim.jsp sẽ cho khách hàng xem được danh mục các sản phẩm theo loại cùng với các thông tin khác như: Loại sản phẩm, giá, hình ảnh. Từ trang này khi khách hàng click vào hyperlink tên sản phẩm hoặc hình ảnh của sản phẩm khách hàng sẽ được xem chi tiết nội dung sản phẩm tại trang ChitietSanpham.jsp. 3. Trang ChitietSanpham.jsp a. Chức năng: - Xem chi tiết nội dung sản phẩm. - Đưa sản phẩm muốn mua vào giỏ hàng. b.Input: Lấy thông tin chi tiết của sản phẩm từ table SANPHAM, LOAI_SP. c.Output: Hiển thị chi tiết nội dung sản phẩm. Gởi mã sản phẩm, tên sản phẩm, số lượng, giá, mô tả về sản phẩm vào trang Giohang.jsp. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 58 e. Mô tả: Khi khách hàng chọn một tên sản phẩm từ trang Tim.jsp hoặc tên một sản phẩm mới từ trang Thuongmai.jsp họ có thể kích vào hyperlink để gọi trang ChitietSanpham.jsp xem chi tiết nội dung sản phẩm. Sau khi khách hàng đã xem kỹ về sản phẩm, thỏa thuận về giá cả, từ trang này khách hàng nhấn nút Chọn mua để đưa sản phẩm cần mua vào danh sách giỏ hàng. 4. Trang Giohang.jsp a. Chức năng: Chứa danh sách các sản phẩm mà khách hàng chọn mua. Thay đổi số lượng mua Thêm, bớt các mục sản phẩm hoặc quay trở lại tiếp tục chọn mua. b. Input: Lấy thông tin về sản phẩm được chọn mua gởi từ trang ChitietSanpham.jsp sang và số lượng sản phẩm cần đặt mua (có thể do khách hàng nhập vào). c. Output: Hiển thị và lưu vào biến session danh sách các thông tin về sản phẩm được chọn mua như: Tên sản phẩm, giá, số lượng. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 59 e. Mô tả: Ngồi việc chứa danh sách các sản phẩm được khách hàng chọn mua. Trang Giohang.jsp còn cung cấp cho khách hàng các cơ chế: Thêm tiếp một mục sản phẩm vào giỏ hàng bằng cách nhấn nút “Tiếp tục mua”; kích vào hyperlink “Xóa” theo từng danh mục sản phẩm để loại bỏ sản phẩm đó ra khỏi giỏ hàng; kích vào nút “Cập nhật” để cập nhật số lượng mua của một mục hàng; kích vào nút “Xóa giỏ hàng” để loại bỏ tất cả các mục hàng có trong giỏ. Một khi đã quyết định mua khách hàng bấm vào nút nhấn “Xác nhận” để đi đến trang xác nhận thanh tốn. 5. Trang Kiemtra.jsp a. Chức năng: Ấn định lượng sản phẩm cần mua và tổng giá tiền cần thanh tốn. b. Input: Lấy tồn bộ các thông tin về sản phẩm từ trang Giohang.jsp. c. Output: Hiển thị các thông tin tương tự như trang Giohang.jsp d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 60 e. Mô tả: Khi đã chọn xong các sản phẩm, khách hàng sẽ nhấn vào nút “Xác nhận” từ trang Giohang.jsp. Trang Kiemtra.jsp này sẽ được gọi để hiển thị các sản phẩm cùng với tổng số tiền phải thanh tốn trước khi đơn đặt hàng được hình thành. Nội dung của trang Kiemtra.jsp tương tự như trang Giohang.jsp nhưng khác ở chỗ khách hàng không được phép chọn thay đổi số lượng các sản phẩm đã chọn mua cũng như thêm bớt chúng. Muốn thay đổi những thông tin của trang Kiemtra.jsp khách hàng chỉ có thể nhấn vào nút “Thay đổi” để quay trở về giỏ hàng, hiệu chỉnh các sản phẩm cần mua. Trang này còn cung cấp thêm nút nhấn “Tạo đơn hàng”, khi khách hàng bấm nút này, trang Taodonhang.jsp sẽ được gọi để điền các thông tin tạo đơn hàng. 6. Trang Taodonhang.jsp a. Chức năng: Lấy các thông tin để tạo đơn hàng. b. Input: Khách hàng nhập các thông tin về đơn đặt hàng như phương thức thanh tốn, thời hạn giao hàng, địa chỉ giao hàng. c. Output: Gởi các thông tin trên đến trang Luudonhang.jsp d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 61 e. Mô tả: Trang tạo đơn hàng này yêu cầu khách hàng điền vào các thông tin như phương thức thanh tốn, thời hạn, địa chỉ giao hàng …trước khi lưu các sản phẩm cần mua vào cơ sở dữ liệu. Để lưu các thông tin này vào cơ sở dữ liệu ta sử dụng trang Luudonhang.jsp 7. Trang Luudonhang.jsp a. Chức năng: Lưu các thông tin về đơn đặt hàng vào cơ sở dữ liệu. b. Input: Lấy thông tin chuyển đến từ trang Taodonhang.jsp chứa dữ liệu đơn hàng. Lấy thông tin về các sản phẩm mà người dùng chọn mua chứa trong giỏ hàng.(lưu trữ tạm thời bởi biến session). c. Output: Thông tin của đơn hàng được lưu trong table DDH. Thông tin về chi tiết đơn hàng được lưu trong table DDH_CHITIET. Thông báo kết thúc giao dịch. 8. Trang Dangki.jsp a. Chức năng: Lấy thông tin về khách hàng khi mua sản phẩm. b. Input: Khách hàng nhập thông tin về mình như: Họ, tên, email, địa chỉ liên lạc, điện thoại, username, password… c. Output: Gởi các thông tin này đến trang Luudangki.jsp theo phương thức “post” của thẻ form. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 62 e. Mô tả: Trước khi tạo đơn hàng mua sản phẩm khách hàng cần đăng ký như là thành viên của Web site. Trang đăng ký thật ra là một trang tĩnh, nó chỉ chứa mã HTML với các trường nhập liệu cho phép khách hàng điền vào thông tin đăng ký. Khi thông tin đã điền đầy đủ, khách hàng nhấn nút “Đăng ký” để gọi trang Luudangki.jsp của thẻ form lưu dữ liệu đăng ký vào bảng dữ liệu. 9. Trang Luudangki.jsp a. Chức năng: Lưu các thông tin đăng ký của khách hàng vào database. b. Input: Lấy các thông tin khách hàng từ trang Dangki.jsp gởi đến: username, password, tên, địa chỉ, email, điện thoại. c. Output: Lưu các thông tin trên vào table KHACHHANG của database. d. Mô tả: IF các trường thông tin nhập vào không bị lỗi INSERT thông tin khách hàng đăng ký vào table KHACHHANG ELSE Thông báo lỗi, nhập lại. 10. Trang Login.jsp a. Chức năng: Kiểm tra account, password của khách hàng trước khi tạo đơn hàng hay quản trị viên trước khi đăng nhập hệ thống. b. Input: Lấy account, password từ table KHACHHANG của database và account, password do user nhập vào. c. Output: Nếu kiểm tra đúng account, password thì đăng nhập và chuyển hướng đến trang Taodonhang.jsp . Nếu không đúng thì yêu cầu nhập account, password lại. d. Sơ đồ giải thuật:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 63 e. Giao diện: g. Mô tả: Khi khách hàng vào trang Login.jsp sẽ được yêu cầu nhập username và password đối với những khách hàng đã đăng ký. Sau đó nhấn nút “Login”, nếu account và password đúng thì SendRedirect(Taodonhang.jsp). Nếu không thì phải nhập lại username và password. Nhập account, passoword Begin Lấy password cùng với account trong database Có lỗi ? Báo lỗi Yes Password đúng ? Vào trang Taodonhang.jsp Login_mua = true Account = account End Yes No No Có password ? No YesLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 64 Đối với những khách hàng chưa đăng ký thì phải vào mục “Đăng ký” để đăng ký. 11. Trang Lienhe.jsp a. Chức năng: Lấy thông tin liên hệ của người sử dụng. b. Input: Nhập các thông tin như: Tên, email, địa chỉ liên lạc, nội dung liên hệ. c.Output: Gởi các thông tin trên đến trang Luulienhe.jsp xử lý. d. Giao diện: e. Mô tả: Khi khách hàng có nhu cầu muốn liên hệ để trao đổi, hỏi đáp thắc mắc, hay yêu cầu một vấn đề nào đó thì vào mục liên hệ để gửi các yêu cầu trên. 12. Trang Luulienhe.jsp a. Chức năng: Lưu các thông tin do khách hàng liên hệ vào database. b. Input: Lấy các thông tin được gửi đến từ trang Lienhe.jsp như: Tên, địa chỉ liên hệ, email, nội dung. c. Output: Lưu các thông tin trên vào table LIENHE của database. d. Mô tả: IF các trường thông tin nhập vào không bị lỗi INSERT thông tin khách hàng liên hệ vào table LIENHE ELSE Thông báo lỗi, nhập lại. 13. Trang ChitietCongtrinh.jsp a. Chức năng: Xem thông tin về các dự án tự động hóa. b. Input: Nhập các thông tin về dự án: Tên dự án, loại dự án, địa chỉ ảnh, chủ đầu tư, giá trị, phạm vi, năm thực hiện, công nghệ. c. Output:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 65 Hiển thị chi tiết thông tin về các dự án thuộc lĩnh vực tự động hóa của công ty SEEN đã và đang thực hiện. d. Giao diện: 14. Trang ChitietMoitruong.jsp Tương tự như trang ChitietCongtrinh.jsp nhưng trang này khác là xem thông tin về các dự án công nghệ môi trường. 15. Trang FAQs.jsp Chức năng: Cho phép xem các câu hỏi và các câu trả lời thường gặp. Các thông tin này được lưu trữ trong table FAQ của cơ sở dữ liệu. II. CÁC TRANG TĨNH THAM GIA VÀO QUÁ TRÌNH HOẠT ĐỘNG KHÁCH HÀNG. Tên Mô tả Content.html Bao gồm nội dung các hyperlink đến các trang giới thiệu về công ty SEEN. Hoatdong.html Tóm tắt các hoạt động của công ty SEEN. Hoptac.html Giới thiệu về quan hệ hợp tác giữa SEEN và Yokogawa. Introduction.html Giới thiệu chung về công ty SEEN. Company.html Giới thiệu các cơ sở hoạt động của SEEN. Systec.html Giới thiệu về các phòng kỹ thuật và đào tạo do Yokogawa hỗ trợ cho SEEN. Organizational.html Giới thiệu về cấu trúc tổ chức của Công ty Seen. Tecnology.html Giới thiệu về trung tâm nghiên cứu và phát triển công nghệ. Relationship.html Giới thiệu về mối quan hệ hợp tác với các công ty khác trong khu vực và các châu lục.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 66 Environment.html Giới thiệu về phòng thí nghiệm môi trường của công ty. Control.html Giới thiệu về xưởng chế tạo thiết bị điều khiển. Cotbom.html Mô tả về cột bơm xăng dầu tự động do Seen sản xuất. Doluong.html Mô tả về các thiết bị đo lường do công ty Seen sản xuất. Sanpham.html Giới thiệu về các sản phẩm do công ty Seen sản xuất. Duan.html Liệt kê danh mục các dự án, công trình mà công ty đã và đang thực hiện. Manpower.html Giới thiệu về nhân lực của công ty. Moitruong.html Giới thiệu về lĩnh vực hoạt động công nghệ môi trường. Nghiencuu.html Giới thiệu các sản phẩm đang nghiên cứu và phát triển. Phattrien.html Giới thiệu về các dự án nghiên cứu và phát triển thuộc lĩnh vực công nghệ môi trường. Quality.html Giới thiệu về Productservice.html Giới thiệu về các dịch vụ và sản phẩm thuộc lĩnh vực tự động hóa. Research.html Giới thiệu về các dự án nghiên cứu và phát triển thuộc lĩnh vực tự động hóa. Service_envir.html Giới thiệu về các dịch vụ và sản phẩm thuộc lĩnh vực công nghệ môi trường. Tudong.html Giới thiệu về hoạt động trong lĩnh vực tự động hóa. III. CÁC TRANG JSP THAM GIA VÀO HOẠT ĐỘNG ADMIN CỦA ỨNG DỤNG. 1. Trang AdminMenu.jsp Khi quản trị viên đăng nhập vào hệ thống sẽ được chuyển hướng đến trang AdminMenu.jsp. Trang này sẽ hiển thị các danh mục quản lý: - Quản lý sản phẩm. - Quản lý đơn đặt hàng. - Quản lý thông tin khách hàng đăng ký. - Quản lý thông tin khách hàng liên hệ. - Quản lý thông tin về các dự án. - Quản lý FAQs. 2. Trang AdminProductView.jsp a. Chức năng: Xem thông tin về sản phẩm. b. Input: Lấy mã sản phẩm, tên sản phẩm, loại sản phẩm từ table SANPHAM. c. Output: Hiển thị các thông tin trên về sản phẩm dưới dạng liệt kê. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 67 e. Mô tả: Khi quản trị viên chọn mục thông tin sản phẩm, trang AdminProductView.jsp sẽ được gọi và hiển thị danh sách các thông tin về sản phẩm. Cũng tại đây quản trị viên có thể chọn mục “Addnew” để thêm vào một sản phẩm mới hoặc chọn mục “Xóa” tương ứng với sản phẩm nào muốn xóa để xóa sản phẩm. 3. Trang AdminProductNew.jsp a. Chức năng: Thêm mới một sản phẩm. b. Input: Nhập các thông tin: Tên sản phẩm, loại sản phẩm, giá, địa chỉ ảnh, mô tả. c. Output: Gởi các thông tin này đến trang AdminProductMaint.jsp 4. Trang AdminProductEdit.jsp a. Chức năng: Hiệu chỉnh thông tin về một sản phẩm. b. Input: Hiệu chỉnh các trường thông tin cần sửa đổi. c. Output: Gửi các thông tin này đến trang AdminProductMaint.jsp. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 68 5. Trang AdminProductMaint.jsp a. Chức năng: Lưu thông tin về sản phẩm mới vào database. Lưu thông tin về sản phẩm đã hiệu chỉnh vào database. b. Input: Lấy các thông tin về sản phẩm từ các trang AdminProductNew.jsp và AdminProductEdit.jsp gửi đến. c. Output: Lưu và cập nhật các thông tin trên vào table SANPHAM. 6. Trang AdminOrderView.jsp a. Chức năng: Xem thông tin về đơn đặt hàng b. Input: Lấy các trường thông tin từ bảng DDH và DDH_CHITIET. c. Output: Hiển thị các thông tin về đơn đặt hàng. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 69 7. Trang AdminOrderMaint.jsp a. Chức năng: Xóa đơn đặt hàng. b. Input: Lấy mã đơn đặt hàng chọn xóa từ trang AdminOrderView.jsp gửi đến. c. Output: Xóa đơn đặt hàng muốn xóa và cập nhật lại danh mục đơn đặt hàng. 8. Trang AdminCustomerView.jsp a. Chức năng: Xem thông tin về khách hàng đăng ký. b. Input: Lấy các trường thông tin từ table KHACHHANG. c. Output: Hiển thị thông tin của khách hàng đăng ký từ table KHACHHANG. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 70 e. Mô tả: Khi quản trị viên chọn mục “Thông tin khách hàng đăng ký” hệ thống sẽ đọc trong database và truy xuất thông tin từ table KHACHHANG để hiển thị danh mục các thông tin mà khách hàng đã đăng ký khi mua hàng. Tại đây quản trị viên cũng có thể chọn mục “Xóa” tương ứng để xóa thông tin về những khách hàng không cần thiết. 9. Trang AdminCustomerMaint.jsp a. Chức năng: Xóa thông tin về những khách hàng không cần thiết. b. Input: Lấy mã khách hàng gửi đến từ trang AdminCustomerView.jsp. c. Output: Xóa và cập nhật lại danh mục khách hàng. 10. Trang AdminProjectView.jsp a. Chức năng: Xem thông tin về các công trình do SEEN đã thực hiện. b. Input: Lấy các trường thông tin từ table CONGTRINH. c. Output: Hiển thị danh sách các thông tin về các dự án. d. Giao diện:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 71 11. Trang AdminProjectNew.jsp Tương tự như trang AdminProductNew.jsp. 12. Trang AdminProjectEdit.jsp Tương tự như trang AdminProductEdit.jsp. 13. Trang AdminProjectMaint.jsp Tương tự như trang AdminProductMaint.jsp. 14. Trang AdminContactView.jsp a. Chức năng: Xem thông tin do khách hàng liên hệ gửi đến. b. Input: Truy vấn các trường thông tin từ table LIENHE. c. Output: Hiển thị danh mục các trường thông tin liên hệ của khách hàng. e. Mô tả: Sau khi đăng nhập, quản trị viên chọn mục “Thông tin khách hàng liên hệ” trang AdminContactView.jsp sẽ được gọi. Tại đây quản trị viên có thể xem tất cả các trường thông tin do khách hàng gửi đến được lưu trữ trong table LIENHE. Cũng tại đây nhà quản trị có thể xóa đi các thông tin của một khách hàng nào đó không cần thiết. 15. Trang AdminContactMaint.jsp Tương tự như trang AdminCustomerView.jsp 16. Trang AdminFaqView.jsp a. Chức năng: Xem ngân hàng các câu hỏi và câu trả lời thường gặp. b. Input: Truy vấn tất cả các trường thông tin từ table FAQ như: Mã câu hỏi, câu hỏi và câu trả lời. c. Output:Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 72 Hiển thị các record chứa các câu hỏi và câu trả lời thường gặp. 17. Trang AdminFaqNew.jsp Thêm vào nội dung một câu hỏi hay câu trả lời mới. 18. Trang AdminFaqEdit.jsp Hiệu chỉnh nội dung một câu hỏi hay câu trả lời. 19. Trang AdminFaqMaint.jsp Thực hiện các chức năng của hai trang AdminFaqNew.jsp và AdminFaqEdit.jsp.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 73 Chương IV: TỔNG KẾT ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN CỦA ỨNG DỤNG. I. Những điểm chương trình làm được. Đối với người sử dụng, chương trình đã đưa ra được:  Các cách tìm kiếm, tra cứu theo các chủ đề khác nhau, kết hợp nhiều chủ đề theo ý khách hàng.  Xem chi tiết thông tin sản phẩm thương mại và đầy đủ các thông tin về Công ty cổ phần liên hiệp SEEN.  Cho phép khách hàng đăng ký thông tin để thực hiện việc mua sản phẩm.  Kiểm tra tính hợp lệ của khách hàng đăng nhập hệ thống.  Tạo đơn đặt hàng.  Có thể chạy trên nhiều hệ điều hành. Đối với người quản trị, chương trình đã đưa ra được:  Xem thông tin của các đề mục cần quản lý như: Khách hàng, sản phẩm, đơn đặt hàng…  Đưa ra các form để nhập dữ liệu mới của các loại tư liệu.  Có thể sửa đổi, cập nhật các dữ liệu trên.  Trong việc thêm mới sản phẩm chương trình tự động sinh mã sản phẩm, điều này tiện lợi cho người quản trị và dữ liệu luôn đồng nhất. Các chức năng này được thực hiện thông qua giao diện web. Quản trị viên có thể gởi các đơn đặt hàng hay các thông tin khác đến các bộ phận khác của công ty để xử lý thông qua dịch vụ email. Có thể chạy trên nhiều hệ điều hành. II. Những điểm chưa làm được và hướng giải quyết: Việc kết nối giữa server và cơ sở dữ liệu còn chậm. Điều này cũng dễ hiểu vì việc thiết lập cầu nối phải qua nhiều cấp. Chỉ có cách giải quyết là cho server chạy trên máy có cấu hình mạnh, tốc độ truy xuất đĩa nhanh. Tuy nhiên chỉ sau lần đầu biên dịch thì các lần duyệt web tiếp theo sẽ nhanh hơn. Đây cũng là ưu điểm của JSP. Chưa xử dụng được tiếng Việt từ việc truy xuất database. Điều này là do ngôn ngữ Java chưa đưa ra các phương pháp để sử dụng các font của hệ thống mà chỉ sử dụng các font đi kèm ngôn ngữ (do tính độc lập nền) trong khi bản thân cơ sở dữ liệu vẫn sử dụng được tiếng Việt. Hy vọng các phiên bản sắp tới của JSP sẽ giải quyết được vấn đề này. IV.3. Hướng phát triển của chương trình: Trong tồn bộ ứng dụng em đã thực hiện các yêu cầu do phía công ty đề xuất và bổ sung thêm một số chức năng cần phải thực hiện cho Web site, hướng phát triển của Web site là tiến đến một thương mại điện tử với đầy đủ các chức năng thanh tốn tiền qua mạng. Nhưng vì trong nước ta hiện nay vấn đề thanh tốn tiền qua mạng còn gặp nhiều khó khăn và chưa phổ biến lắm cho nên chức năng của Web site dùng để hỗ trợ cho nhà quản trị còn hạn chế. Vấn đề chính của Web site là phục vụ việc quảng cáo. Từ đó, bên cạnh việc thương mại thì vấn đề cầnLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 74 phải tập trung thu hút khách hàng liên hệ và thõa thuận thiết kế, lắp đặt một công trình nào đó thuộc lĩnh vực chuyên môn của công ty. Do vậy trong thời gian sau này cần bổ sung các chức năng về kiểm kê: Thống kê số lần truy cập database, thống kê giá xuất nhập, tồn, thống kê doanh thu, xử lý hóa đơn tự động. Quản lý kho (kiểm tra lượng sản phẩm tồn kho tự động), thanh tốn điện tử có sử dụng Edit card. Bổ sung thêm một số chức năng kiểm tra dữ liệu nhập, thay đổi mật mã truy nhập của khách hàng cũng như nhà quản trị. Tóm lại, chương trình là một điển hình của việc phát triển một mô hình cơ sở dữ liệu Client/Server mà trong đó các máy Client không cần phải cài đặt các chương trình riêng biệt, người sử dụng chỉ cần thông qua một trình duyệt web bình thường cũng có thể thực hiện các chức năng giống như một người sử dụng đầu cuối trong một hệ thống cơ sở dữ liệu. Mặc dù đã cố gắng hồn chỉnh các yêu cầu nhưng cuốn báo cáo còn rất nhiều thiếu sót mong thầy hướng dẫn và các thầy cô khác giúp đỡ xem xét và đề xuất thêm các ý kiến cũng như bổ sung các vấn đề phục vụ cho việc xây dựng Web site để em có thể hồn chỉnh hơn về đồ án tốt nghiệp của mình. Em rất biết ơn thầy hướng dẫn và các quí thầy cô.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 75 PHỤ LỤC GIAO DIỆN MỘT SỐ TRANG TĨNH PHỤC VỤ ỨNG DỤNG. 1. Trang Sanpham.html 2.Trang Tudong.htmlLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 76 3. Trang Moitruong.html 4.Trang Cotbom.htmlLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 77 5. Trang hoatdong.html 6. Trang Service_envir.htmlLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 78 7. Trang Introduction.html 8. Trang Organizational.htmlLuận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 79 TÀI LIỆU THAM KHẢO 1. Document of Jrun Studio 3.0. 2. Lập trình ứng dụng Web vớI JSP/Servlet . Tác giả: Hồng Đức Hải, Nguyễn Phương Lan. 4. Luận văn tốt nghiệp các khóa trước. 5. HTML publishing on the Internet for Windows Tác giả: Brent Hestop & Larry Budnick. 6.Java Network Programming - Merlin and Conrad Hughes - Michael Shoffner - Maria Winslow. 7. Phân tích và thiết kế hệ thống thông tin - Viện kinh tế TP. Hồ Chí Minh.Luận Văn Tốt Nghiệp GVHD: Tô Văn Nam SVTH: Nguyễn Văn Lợi Page 80

- Xem thêm -

Tài liệu liên quan

Bình luận