Xây dựng website cho Hội Doanh Nghiệp Trẻ Hà Nội
Trang 1Đồ án tốt nghiệp là cơ hội để chúng em có thể áp dụng, tổng kết lại những kiến thức mà mình đã học Đồng thời, rút ra những kinh nghiệm thực tế và quý giá trong suốt quá trình thực hiện đề tài Sau một thời gian chúng em tập trung công sức cho đề tài, đặc biệt là nhờ sự chỉ đạo và hướng dẫn tận tình của cô Nguyễn Kim Anh cùng với các thầy cô trong khoa, đã giúp cho chúng em hoàn thành đề
Trang 2kết quả khiêm tốn mà chúng em đạt được, chắc chắn không tránh khỏi những thiếu sót khi thực hiện đồ án của mình, kính mong thầy cô góp ý giúp đỡ Sự phê bình, góp ý của quý thầy cô sẽ là những bài học kinh nghiệm rất quý báu cho công việc thực tế của chúng em sau này.
Là sinh viên khoa công nghệ thông tin, chúng em rất tự hào về điều đó, tự hào
về tất cả các thầy cô của mình Một lần nữa, chúng em xin chân thành cảm ơn công lao dạy dỗ của quý thầy cô Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong nghiên cứu khoa học và sự nghiệp giáo dục
Trang 3Chương I: Khảo sát mô tả bài toán.
1.1.Đặt vấn đề.
Ngày nay, như chúng ta đã biết mạng Internet phát triển rất mạnh Đi cùng với
nó là sự phát triển của World Wide Web, rất nhiều ứng dụng được phát triển trên mạng như: thương mại điện tử, dạy học trực tuyến, báo điện tử … Chúng ta có thể làm được rất nhiều việc trên mạng như: học qua mạng, đọc tin tức, giao dịch qua mạng…
Một trong những ứng dụng trên mạng rất phổ biến đó là thương mại điện tử và báo điện tử.Vì vậy, khi truy cập vào các Website này chúng ta có thể giao dịch thương mại như bán hàng qua mạng và còn được cung cấp các tin tức về nhiều lĩnh vực trong và ngoài nước
Hiện nay, cũng có rất nhiều Website hỗ trợ chức năng trên nhưng để có một Website cung cấp một cách đầy đủ tin tức mà vẫn đảm bảo được chức năng thương mại điện tử thì không phải Website nào cũng làm được Vì vậy nhu cầu đặt ra là rất lớn.
1.2.Lựa chọn đề tài
Hội Doanh Nghiệp Trẻ Hà Nội là một doanh nghiệp lớn có tới hàng nghìn thành viên tham gia.Phạm vi hoạt động của Hội lại rất rộng và đa dạng, hiện nay Hội cũng có một Website nhưng nó chỉ đơn thuần là một trang Web rất đơn giản
- chỉ nhằm giới thiệu về công ty là chính.Trong giai đoạn hiện nay, với sự mở rộng và phát triển không ngừng của Hội, thì những gì mà Website đó làm được
là không thể đáp ứng, ví dụ như ngoài cung cấp tin tức nội bộ của Hội đến tất cả các thành viên, mục đích của Hội còn là đăng ký, giới thiệu sản phẩm, bán hàng qua mạng hay nói một cách khác là chưa có chức năng B2B.Vì thế qua khảo sát thực tế em đã quyết định chọn lựa chọn đề tài này
Trang 4Là một sinh viên khoa công nghệ thông tin em mong được đóng góp phần nhỏ sức lực của mình vào sự nghiệp tin học hoá của đất nước cũng như đáp ứng nhu cầu tiếp thực tiễn của Hội
Trước thực trạng đó đồ án của em sẽ tập trung vào giải quyết vấn đề này.Đó là xây dựng Website cho Hội Doanh Nghiệp Trẻ Hà Nội
Đây là một đề tài có tính thực tiễn vì nó đáp ứng nhu cầu mà thực tế đặt ra và
nó được ứng dụng trong lĩnh vực thương mại điện tử.Một lĩnh vực mà được coi
là còn rất mới mẻ ở Việt Nam hiện nay
Trong thời gian học tập tại khoa công nghệ thông tin em đã được trang bị các thức về chuyên ngành tin học Đây là những điều kiện thuận lợi để em có thể hoàn thành đề tài này
1.3.Lựa chọn công cụ và ngôn ngữ.
Vì đây là một Website bao gồm các nội dung về : Cung cấp tin tức, chức năng B2B, tạo ra một forum cho các thành viên trao đổi tin tức nên nó là một Website động Để xây dựng được Website này ta cần phải sử dụng ngôn ngữ HTML( Hyper Text Markup Language ) để tạo ra các trang Web Để việc tạo ra các trang Web được thuận tiện và nhanh chóng ta sử dụng các công cụ như: Microsoft Fontpage, Macromedia Dreamweaver Các công cụ này tự sinh mã cho trang Web và rất dễ sử dụng đối với người lập trình Để quản lí cơ sở dữ liệu của Website ta sử dụng cơ sở dữ liệu là MySQL Đây là công cụ quản lí cơ sở dữ liệu rất phổ biến phù hợp với ứng dụng vừa và nhỏ Và đặc biệt ta sử dụng ngôn ngữ
Java - một ngôn ngữ rất phổ biến để thiết kế Website
1.4.Mục đích, yêu cầu của đồ án.
Website về thương mại điện tử sẽ giải quyết các nhu cầu của Hội Vì vậy mục đích của đồ án này là:
Cung cấp các thông tin về các lĩnh vực đặc biệt là về lĩnh vực hoạt đọng của Hội trong và ngoài nước Giúp cho người dùng khi vào
Trang 5Website có thể cập nhật tin tức cũng như tìm kiếm các cơ hội kinh doanh cho mình…
Tạo ra một diễn đàn cho các thành viên có thể trao đổi thông tin với nhau Khi truy cập vào Website nếu đăng kí là thành viên, ta có thể trao đổi thông tin với mọi thành viên khác
Một mục đích khác nữa của đồ án là trực tiếp giúp cho em có thể rèn luyện thêm về khả năng làm việc độc lập Đồng thời ôn tập củng cố những kiến thức đã được học tập và nghiên cứu trong thời gian học tập trong nhà trường
Website sau khi hoàn thành phải thỏa mãn một số yêu cầu sau:
Nội dung phải phong phú, tin tức phải được cập nhật Người truy cập có thể tìm thấy những thông tin mà mình mong muốn,
Giao diện phải đẹp và thuận tiện đối với người sử dụng Người sử dụng truy cập hệ thống dễ dàng Các chức năng cũng như tiện ích của
hệ thống phải được giới thiệu với người sử dụng
Có nhiều chức năng phụ giúp cho người dùng thuận tiện hơn trong việc truy nhập Website và tìm kiếm thông tin mình muốn( như chức năng tìm kiếm thông tin, tìm kiếm chủ đề, tìm kiếm sản phẩm)
1.5.Nhiệm vụ của đồ án.
Để thực hiện đựợc mục đích đã nêu trên thì nhiệm vụ cần thực hiện là:
Nghiên cứu về lí thuyết dạy học từ đó áp dụng vào công tác xây dựng chương trình sao cho phù hợp với lí luận cũng như thực tiễn và đảm bảo tính logic và khoa học
Khảo sát các nhu cầu thực tế để có thể đưa ra yêu cầu của bài toán
và hướng giải quyết
Nghiên cứu về công cụ,ngôn ngữ lập trình và kĩ năng lập trình để xây dựng Website đáp ứng yêu cầu đặt ra
Trang 6 Phân tích và thiết kế sơ đồ phân cấp chức năng và các biểu đồ luồng
dữ liệu cũng như thiết kế chi tiết các chức năng của hệ thống
Lập trình để tạo ra hệ thống theo thiết kế
Cài đặt, vận hành hệ thống, theo dõi hệ thống hoạt động để tìm ra
ưu nhược điểm của hệ thống, từ đó có thể khắc phục các nhược điểm đó
Kiểm tra và đánh giá kết quả của chương trình cũng như đưa ra hướng phát triển của đề tài
1.6.Nội dung của đồ án
Nội dung của đồ án bao gồm các chương như sau:
Chương I: Khảo sát mô tả bài toán
Chương này trình bày các vấn đề như: Lý do chọn đề tài, mục đích của đề tài, nhiệm vụ cần thực hiện để đạt được mục đích đề ra và tóm tắt nội dung của
đồ án.Phân tích các yêu cầu đặt ra và hướng giải quyết các vấn đề đó
Chương II: Phân tích thiết kế bài toán
Trình bày các biểu đồ như : Biểu đồ phân cấp chức năng, biểu đồ luồng
dữ liệu Phân rã các chức năng của bài toán
Thiết kế cơ sở dữ liệu cho chương trình Mô tả các thực thể, xây dựng mô hình thực thể liên kết, các bảng dữ liệu
Chương III: Giới thiệu về các công cụ hỗ trợ xây dựng phần mềm
Giới thiệu về ngôn ngữ PHP và một số công cụ sử dụng trong việc lập trình và vận hành chương trình
Chương IV: Cài đặt chương trình
Giới thiệu về chương trình và cách cài đặt cũng như sử dụng chương trình Giới thiệu cách truy nhập trang Web, các tiện ích khi sử dụng
Chương V: Đánh giá, kết luận, xu hướng phát triển Nêu ưu nhược điểm của hệ thống
Trang 7Chương II: Phân tích thiết kế bài toán.
2.1.Tổng quan.
Đây là một hệ thống thông tin vì vậy ta phải phân tích và thiết kế chúng như một hệ thống thông tin thông thường Dựa vào các nhiệm vụ và chức năng chính của Website ta thiết kế hệ thống
2.2.Phân tích và xây dựng biểu đồ phân cấp chức năng.
2.2.1.Biểu đồ phân cấp chức năng.
Trang 82.2.2.Phân quyền.
Người sử dụng ( User) có các quyền :
Đọc tin tức ở trong các trang thông tin
Xem các thong tin về sản phẩm
Tìm kiếm các thông tin trong Websiste
Tham gia Forum nếu đăng kí làm thành viên của Forum
Người viết bài ( Reporter) có quyền:
Gửi bài viết của mình lên cho hệ thống
Quản lí trang Web
Cung cấp tin tức Quản lí sản phẩm
Cập sản phẩm
Hiển thị
Thống kê
Tìm kiếm
Quản lí Forum
Đăng kí
Tìm kiếm
Xử lí chủ đề
Hiển thị
XL t/khoản
Trang 9Người quản lí tin tức có các quyền:
Sửa các bài viết do người viết bài gửi lên
Cho phép các bài viết có được đăng lên trang web không
Người đăng sản phẩm có các quyền:
Giới thiệu về các sản phẩm và cho đăng chúng lên
Người quản lí Forum có các quyền:
Xóa sửa các chủ đề trên Forum
Khóa các tài khoản của các thành viên Forum
Người quản trị có các quyền :
Người quản trị là người có quyền lực cao nhất trong hệ thống
Xóa, sửa , thêm các loại tài khoản
2.3.Phân tích và xây dựng biểu đồ luồng dữ liệu.
Do có một số cách biểu diễn các thành phần của biểu đồ nên trong đồ án này
em sử dụng cách biểu diễn như sau:
Kho thông tin
Tác nhân trong
Luồng dữ liệu
Chức năng
xử lí Tác nhân
ngoài
Trang 102.3.1 Biểu đồ luồng dữ liệu mức ngữ cảnh.
Có sáu tác nhân ngoài tác động vào hệ thống Website:
Người sử dụng: Họ truy nhập vào hệ thống để đọc tin tức, xem các sản phẩm Nếu là thành viên của Forum người dùng có thể tham gia các chủ đề trên Forum hoặc tự mình gửi lên những chủ đề mới
Người viết bài: Muốn viết bài và gửi lên, người viết bài phải vào trang reporter của mình và nhập tên và mật khẩu của mình sau đó
họ mới có thể viết và gửi bài được
các bài viết đã xử lí
tài khoản được cập nhật
chủ đề + tài khoản thành viên được XL
t/tin đăng nhập chủ đề + tài khoản thành viên
t/tin đăng nhập
các bài viết
t/tin hệ thống
thông tin cần tìm kiếm
bài viết+chủ đề
cho phép/từ chối đăng nhập t/tin trả
lời bài viết
sản phẩm
cho phép/từ chối đăng nhập
chủ đề trên forum
các loại tài khoản
t/tin đăng nhập
t/tin đăng nhập
bài viết trang sản phẩm
t/tin tài khoản trang tin tức
thông tin cá nhân y/c truy nhập
Hệ Thống
Người sử
dụng
Người quản lí
phẩm
Người quản trị
Trang 11 Người quản lí tin tức: Cũng giống như người viết bài, người quản lí tin tức phải vào trang moderator của mình và nhập tên truy nhập và mật khẩu sau đó họ mới có thể sửa được các bài do người viết bài gửi lên và sau đó cho các bài đó đăng lên trang Web.
Người đăng thông tin về sản phẩm: Đầu tiên họ phải đăng nhập vào
hệ thống giống như người viết bài và người quản lí tin tức, sau đó
họ soạn các bài giảng và gửi lên
Người quản lí Forum: các thành viên của Forum sau khi truy nhập vào Forum học có thể gửi các chủ đề của mình lên Người quản lí Forum sau khi đăng nhập vào hệ thống giống như người quản lí tin tức có thể sửa xóa các chủ đề đó, hơn nữa họ có thể khóa các tài khoản của các thành viên
Người quản trị: Muốn thực hiện được các quyền của mình người quản trị phải vào trang administrator và nhập mật khẩu vào đó Sau khi truy nhập thành công họ có thể xóa, sửa, thêm bất cứ loại tài khoản Người quản trị chịu trách nhiệm cài đặt, vận hành và bảo trì
hệ thống
Các thông tin đăng nhập chính là tên và mật khẩu truy nhập
Các thông tin phản hồi là đồng ý cho thành viên truy nhập hay không
Để hiểu rõ hơn cách trao đổi dữ liệu giữa các chức năng trong hệ thống và chi tiết hơn các dữ liệu do các tác nhân ngoài tác động vào hệ thống, ta lần lượt phân
Trang 12tác động vào chức năng này qua việc gửi các bài viết của mình Người quản lí tin lấy ra các bài viết của người viết gửi lên và gửi lại hệ thống các bài viết đã sửa.
2.3.2.2.Quản lí sản phẩm.
Hai tác nhân ngoài tác động đó là người sử dụng(hay chính là người học) và người đăng sản phẩm Người sử dụng muốn xem các sản phẩm họ phải có tên và mật khẩu truy nhập Sau khi truy nhập song, người sử dụng yêu cầu sản phẩm và
hệ thống trả về các trang sản phẩm Người đăng sản phẩm chỉ gửi các bài sản phẩm của mình lên hệ thống
trang tin tức
thông tin cần
các bài viết
các bài viết
đã
xử lí
Cung cấp tin tức
Người quản lí tin tức
Người sử
dụng
Người đăng sản phẩm sản phẩm
Trang 132.3.2.3.Quản lí Forum.
Người sử dụng vào Forum có thể tham gia đọc các chủ đề còn nếu là thành viên của Forum họ có thể gửi chủ đề của mình lên Người quản lí Forum gửi lên các thay đổi thông tin tài khoản thành viên cũng như các chủ đề bị xóa sửa
chủ đề bị xóa sửa tài khoản bị xóa
tài khoản thành viên chủ đề
trang tin tức t/tin tài khoản
thông tin cá nhân y/c truy nhập
Quản lí Forum
Người sử
Trang 142.3.3.Biểu đồ luồng dữ liệu mức dưới đỉnh.
2.3.3.1.Định nghĩa chức năng cung cấp tin tức.
Mô tả quá trình: người viết bài gửi bài viết lên, chức năng xử lí bài sẽ lưu các bài viết tạm thời và thông tin về người viết bài.Các bài viết sẽ được chức năng cập nhật xử lí Người quản lí tin tức sẽ lấy các bài viết đó ra và sửa rồi cho đăng các bài đó Các bài viết này được cập nhật vào trong kho bài viết Người dùng nếu muốn tìm kiếm thông tin thì họ gửi đến thông tin cần tìm kiếm, chức năng tìm kiếm sẽ tìm kiếm trong kho bài viết và gửi đến chức năng hiển thị để hiển thị cho người dùng
cho phép/từ chối đăng nhập
cho phép/từ chối đăng nhập
thông tin đăng nhập cho phép/từ
chối đăng nhập
cho phép/từ chối đăng nhập
thông tin đăng nhập
thông tin đăng nhập
tài khoản được cập nhật
thông tin tài khoản
thông tin cá nhân các loại tài khoản
thông tin đăng nhập
Quản trị
Người quản lí tin tức
Người sử
Người đăng sản phẩm Người đăng
tin
Trang 152.3.3.2.Định nghĩa chức năng B2B.
Mô tả quá trình: Người giới thiệu và sau đó đăng các sản phẩm đó lên Các sản phẩm sẽ được lưu vào kho sản phẩm Các công việc này do chức năng cập nhật đảm nhiệm Chức năng tìm kiếm và hiển thị ở đây giống như phần cung cấp tin tức Trong chức năng B2B có phần thống kê về số lượng người truy cập Khi người dùng(người mua) truy nhập song, họ có thể xem các sản phẩm Chức năng thống kê ở đây sẽ thống kê số người truy cập, thời gian truy cập của mỗi người dùng và các mục cũng như các sản phẩm mà người dụng truy cập vào
các bài viết đã xử lí người đăng tin
trang tin tức
thông tin có tìm thấy hay không bài viết
y/c truy nhập
thông tin cần tìm kiếm
t/tin trả lời
các bài viết các bài viết đã xử lí
Xử lí bài
Người quản lí tin tức
Người sử
dụng
Người đăng tin
bài viết
Cập nhật
Tìm kiếm
Hiển thị
Trang 162.3.3.3.Định nghĩa chức năng quản lí Forum.
Mô tả quá trình: Người dùng muốn là thành viên của Forum thì phải đăng kí là thành viên của Forum Việc đăng kí này do chức năng đăng kí thực hiện Người dùng phải gửi thông tin cá nhân của mình để đăng kí là thành viên Nếu không là thành viên người dung chỉ có thể đọc các chủ đề đã có trên Forum thông qua chức năng hiển thị Nếu muốn tìm kiếm các chủ đề người dùng có thể gửi yêu cầu và chức năng tìm kiếm sẽ thực hiện công việc này Nếu tìm thấy chủ đề mà người dùng cần tìm thì các chủ đề này sẽ được gửi đến chức năng hiển thị để gửi cho người dùng Nếu không tìm thấy thì một thông báo sẽ gửi đến cho người dùng thông báo là không tìm thấy
thông tin cần tìm kiếm
Trang 172.3.3.4.Định nghĩa chức năng quản trị.
Mô tả quá trình:
Mọi thành viên muốn truy nhập vào các trang của riêng mình thì họ phải có tên
và mật khẩu truy nhập Việc xử lí truy nhập này do chức năng xử lí truy nhập thực hiện Khi thành viên nhập tên và mật khẩu truy nhập và tiến hành truy nhập thì chức năng xử lí truy nhập sẽ tìm trong kho tài khoản để so sánh tên và mật khẩu đó có hợp lệ hay không, nếu hợp lệ mới cho truy nhập Người quản trị có
t/tin tài khoản
chủ
đề được XL chủ đề
tài khoản thành viên
thông tin cần tìm kiếm
Đăng kí
Người sử
dụng
Người quản lí Forum
Xử lí chủ đề
Tìm kiếm
Hiển thị
chủ đề
Trang 18quyền xóa, sửa và thêm tài khoản, các công viêc này do chức năng xử lí tài khoản thực hiện.
2.4.Thiết kế cơ sở dữ liệu.
2.4.1.Mô hình thực thể.
a)Thực thể Người viết bài( Reporter)
Thực thể này chứa thông tin về người viết bài Thuộc tính Khoa cho biết tài khoản của người viết bài có bị khóa hay không Nếu giá trị của nó là Yes thì tài khoản của người viết bài bị khóa Khi đó người viết bài không thể vào trang Web của người viết bài để viết bài và gửi bài của mình Thuộc tính SoBaiGui cho biết
số bài mà người viết đã gửi lên cho hệ thống
các loại tài khoản
tài khoản được cập nhật các loại tài khoản
cho phép/từ chối đăng nhập
cho phép/từ chối đăng nhập
thông tin đăng nhập cho phép/từ chối đăng nhập
cho phép/từ chối đăng nhập
thông tin đăng nhập
thông tin đăng nhập
thông tin tài khoản
thông tin cá nhân
thông tin đăng nhập
XL đăng nhập
Người quản lí tin tức
Người sử
dụng
Người quản trị
Người soạn
bài
Người đăng tin
XL tài khoản
Trang 19STT Thuộc tính Kiểu Mô tả
nhập hệ thống
3 Password Text Mật khẩu của người viết bài
4 Khoa Yes/no Tài khoản của người viết bị
khóa hay không
5 SoBaiGui Number Số bài đã gửi lên của người viết
b)Thực thể Người quản lí tin tức( Moderator)
Các thuộc tính của Người quản lí tin tức cũng giống như của Người viết bài
1 ID Auto number Mã của người quản lí tin tức
dụng để truy nhập hệ thống
3 Password Text Mật khẩu của người quản lí tin
tức
4 Khoa Yes/no Tài khoản của quản lí tin tức bị
khóa hay không
c) Thực thể Bài viết( Article)
Thực thể này lưu toàn bộ thông tin về bài viết trong mục tin tức như: Tiêu đề của bài viết, ngày gửi, ngày đăng, người viết bài, người sửa và đăng bài Khi bài viết có ảnh gửi kèm thì trường Anh sẽ lưu đường dẫn tới ảnh của bài viết Nếu người viết bài gửi kèm theo bài viết các file đính kèm thì các trường filename và filepath sẽ lưu các tên file và đường dẫn đến các file đó Các file đính kèm chỉ có thể ở các dạng: doc, pdf, zip, rar
Trang 203 Ngaygui Date/time Ngày gửi bài viết lên.
viết
6 Dang Yes/no Bài viết có được đăng hay
không
9 IDDang Number Mã của người đã sửa bài và cho
đăng bài lên
10 NgayDang Date/time Ngày giờ bài viết được đăng
11 fileName Text Tên file đính kèm của người
viết bài
12 filePath Text Đường dẫn của file đính kèm
d)Thực thể Người đăng sản phẩm (Offerr)
Thực thể Người đăng sản phẩm có các thưộc tính giống như người viết bài Trường SoBaiDang cho biết số sản phẩm mà người đăng sản phẩm đã đăng
1 ID Auto number Mã của người đăng sản phẩm
2 Name Text Tên người đăng sản phẩm sử
dụng để truy nhập hệ thống
phẩm
phẩm bị khóa hay không
5 SoBaiDang Number Số sản phẩm đã gửi lên của
người đăng sản phẩm
Trang 21f)Thực thể Sản Phẩm ( Product).
Các thuộc tính của thực thể này cũng gần giống như của thực thể Bài viết
4 NgayDang Date/time Ngày giờ bài giảng được đăng
g)Thực thể Loại sản phẩm (ProductType):
Thực thể Loại sản phẩm cho biết mã loại sản phẩm và tên loại sản phẩm
h)Thực thể Người đăng ký mua(Register ):
Thực thể này lưu thông tin về người đăng ký mua hàng, các trường cũng giống như của thực thể Người viết bài
Trang 22nhập hệ thống
4 Khoa Yes/no Tài khoản của người mua bị
khóa hay không
i)Thực thể Mua( by):
Thực thể này lưu thông tin về thời gian truy cập của người đăng ký mua hàng Thực thể này lưu các thông tin phục vụ cho việc thống kê của hệ thống
ký mua truy cập vào
3 IDLoai Number Mã của loại sản phẩm mà
người đăng ký mua
4 ThoiGian Date Thời gian mà người đăng ký
mua truy cập vào website để mua
Trang 23j)Thực thể Người quản trị( Admin):
trị
k)Thực thể Người quản lí Forum
4 Khoa Yes/no Tài khoản của người quản lí
Forum bị khóa hay không
m)Thực thể Thành viên Forum( Member)
4 Khoa Yes/no Tài khoản của thành viên bị
khóa hay không
l)Thực thể Chủ đề
Thực thể Chủ đề chứa các thông tin về chủ đề đăng trên Forum Nó cho biết các thông tin về chủ đề như: tiêu đề của chủ đề, ngày chủ đề được đăng lên, mã của thành viên đăng chủ đề
Trang 242 TieuDe Text Tiêu đề chủ đề.
3 NgayDang Date/time Ngày giờ chủ đề được đăng
6 IDNguoiDang Number Mã của người gửi chủ đề
2.4.2.Mô hình thực thể liên kết.
Có các quan hệ chính giữa các thực thể:
Quan hệ giữa Người viết bài( NguoiViet) và Bài viết( BaiViet)
Quan hệ giữa Người đăng bài( NguoiDang) và Bài viết( Baiviet)
Quan hệ giữa Người đăng sản phẩm ( NguoiDang) và Sản Phẩm ( SanPham) Quan hệ giữa Thành viên Forum( Thanhvien) và Chủ đề( ChuDe)
Quan hệ giữa Người đăng ký ( NguoiMua) và Sản Phẩm ( SanPham)
Trang 25ID TieuDe IDLoai NgayDang NoiDung Xoa IDDang NgayDang
LoaiSanPham ID
Ten
NguoiDang ID
Name Password Khoa SoSanPhamD ang
BaiViet
ID TieuDe NgayGui NoiDung Anh Dang Xoa IDGui IDDang NgayDang fileName filePath
Name Password Khoa
ChuDe ID
Title NoiDung Xoa IDDang NgayDang
ThanhVien ID
Name Password Khoa SoBaiDang
Trang 26Chương III: Giới thiệu về ngôn ngữ và công cụ sử dụng 3.1.Ngôn ngữ Java và công nghệ JSP/Servlet.
3.1.1.Ngôn ngữ Java.
3.1.1.1.Tổng quan về ngôn ngữ lập trình Java.
Java là ngôn ngữ lập trình hướng đối tượng, được phát triển bởi hãng Sun MicroSystem
Trang 27Java đượ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 ra một dạng file nhị phân khác với các file thực thi nhị phân của Windows mà bạn thường thấy như exe hay com 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( Virtual Machine hay VM) File nhị phân của Java thường mang tên mở rộng là class.
Máy ảo Java thực sự là một chương trình thông dịch bình thường có khả năng thực thi các mã byte- code tương tự như bộ xử lí của máy tính thực thi các mã nhị phân là các chỉ thị mã máy Nói đúng hơn, máy ảo Java là một kiến trúc của
bộ xử lí nhưng thực thi bằng cơ chế phần mềm thay vì phần cứng Chính vì lí do này bạn 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 Bạn không cần lo về máy ảo Java Cha đẻ của ngôn ngữ Java là hãng Sun MicroSystem chịu trách nhiệm xây dựng các máy ảo Java cho những hệ điều hành khác nhau.Nhiệm vụ của lập trình viên Java chỉ là viết chương trình bằng
mã nguồn Java sau đó biên dịch ra chương trình ra dạng file thực thi code( class) để chạy trên máy ảo
byte-Ta có thể tìm thấy máy ảo Java và trình biên dịch java trong bộ JDK( Java Deverlopment Kit) hỗ trợ bởi Sun và rất nhiều hãng khác như IBM, Oracle Hiện JDK của Sun được xem là chuẩn và sử dụng nhiều nhất Bạn có thể tìm thấy phiên bản mới nhất của JDK1.4 tại địa chỉ của Sun: http://java.sun.com, bộ công cụ phần mềm này được cho tải về miễn phí
Java có thể dùng để viết chương trình ứng dụng tương tự như mọi ngôn ngữ lập trình khác Java thiên về lập trình cho các ứng dụng mạng và internet Ngoài ra bạn 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)
Trang 28Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch, mạnh
mẽ, bảo mật , cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động Sau đây là một số đặc điểm của Java
Đơn giản( Simple): đặc điểm đầu tiên và cũng là mục đích cơ bản của
Java là tình đơn giản Kích thước của bộ biên dịch cơ bản và lớp hỗ trợ là
vô cùng nhỏ Theo các nhà sáng lập, kích thước đó là 40KB cho trình thông dịch và cho lớp hỗ trợ, thêm vào bộ thư viện chuẩn và lớp hỗ trợ phân tuyến thì kích thước chỉ khoảng 175KB Kích thước này là của bản gốc còn các phiên bản mới con số đó còn tăng lên Tuy vậy so với Visual Basic và VC thì rất nhỏ
Hướng đối tượng( Object Oriented): mọi ứng dụng viết trên Java đều
phải được xây dựng trên các đối tượng và thông qua các đối tượng Các
hỗ trợ của java không cho phép các đối tượng có tính đa thừa kế mà thay vào đó có các giao tiếp( interface)
Phân tán( Distributed): java được thiết kế để hỗ trợ các ứng dụng phân
tán bằng các lớp mạng (java.net) Một ứng dụng java có thể dễ dàng được truy xuất từ các máy chủ ở xa, nó có thể mở hoặc truy cập đến các đối tượng thông qua mạng
Thông dịch( Interpreter): Java là một ngôn ngữ thông dịch( thật sự java
là một ngôn ngữ vừa thông dịch vừa biên dịch) nên nó trở nên khả chuyển, Các ứng dụng Java có thể dễ dàng chạy trên các máy tính với các nền phần cứng khác nhau, chỉ cần đi kem với nó là bộ thông dịch, bộ gỡ rối và nhất là bộ thư viện (runtime library)
Mạnh mẽ( Robust): java không cho phép lập trình viên khai báo các biến
một cách tùy tiện, biến luôn phải tường minh Nhờ đó mà những lỗi thường gặp trong khi viết bằng ngôn ngữ C như cấp phát bộ nhớ, bộ nhớ tràn, trùng lặp bộ nhớ… đã được giải quyết
Trang 29 Bảo mật( Security): Java được viết cho các ứng dụng chạy trên môi
trương mạng phân tán Do đó Java được thiết kế sao cho có khả năng tạo được một hệ thống không virus, không bị phá Kỹ thuật xác minh của Java dựa vào cách mã hóa theo khóa công cộng Java không hỗ trợ biến con trỏ Một thông dịch bytecode sẽ kiểm tra chặt chẽ các mã byte, không cho bất kỳ những hành vi không được phép nào được thực hiện
Khả chuyển: máy ảo Java tương thích với môi trường được cài đặt tạo
nên kiến trúc trung tính, các ứng dụng Java chỉ cần ciết sao cho chay được trên máy ảo đó là có thể cài đặt và chạy tốt trên mọi hệ thống Mặt khác, các kiểu dữ liệu của java được định nghĩa không phụ thuộc vào bộ xử lí hay vào hệ điều hành mà các ứng dụng được cài đặt
Hiệu quả cao( High performance ): so với các chương trình được biên
dịch hoàn tòan bằng C hay C++, các chương trình Java không có hiệu quả cao hơn Nhưng với tính năng giao diện đồ họa, sự đơn giản, nhỏ gọn, tính khả chuyển, ta cũng có thể nói là hiệu quả chung của các chương trình Java là đáng khích lệ so với tính phức tạp của C/C++
Đa tuyến( Multithread): tính năng này cho phép chúng ta có thể thực
hiện nhiều tiến trình song song và tương hỗ với nhau tránh được tính tuần
tự nhàm chán và những thời gian chết trong chờ đợi
Linh động( Flexible): vì dùng trình thông dịch nên Java là ngôn ngữ rất
năng động Trong khi chạy, môi trường Java có thể tự mở rộng để liên kết các lớp mới có thể ở một máy chủ ở xa trên mạng Đó chính là thuận lợi
to lớn của Java so với C/C++
3.1.1.3 Viết chương trình ứng dụng Java.
Viết chương trình ứng dụng Java rất đơn giản, ngoài bộ JDK ra tất cả những gì bạn cần chỉ là trình soạn thảo văn bản đơn giản kiểu nopepad của Windows hay edit.exe của DOS Trên Linux/Unix bạn có thể dùng trình VI Mã nguồn của
Trang 30Java chỉ là file thuần văn bản Bạn cũng có thể dùng các môi trường phát triển và biên dịch Java có giao diện trực quan như Jbuilder, Visual Age
Ngôn ngữ Java rẩt giống với ngôn ngữ C/C++ Tuy nhiên phong cách lập trình thì khác hẳn Trong Java mọi thứ đều qui về lớp và đối tượng Đối tượng là thể hiện thật sự của một lớp Nói cách khác lớp mô tả tổng quát về đối tượng bao gồm thuộc tính, phương thức Nếu bạn đã lập trình trong các ngôn ngữ khác như
C, VB thì có thể hình dung lớp là khai báo kiểu còn đối tượng là khai báo biến
Mọi hàm và thủ tục phải đặt trong một lớp Vì lí do này Java không có khái niệm hàm hay thủ tục đơn lẻ Bạn phải gọi hàm và thủ tục là phương thức bởi chúng được đặt trong một lớp đối tượng
3.1.1.4.Các loại ứng dụng trong Java.
Java có thể xây dựng được mọi loại ứng dụng Dưới đây là một số ứng dụng điển hình trong Java
a) Ứng dụng console.
Các ứng dụng console thường ghi kết xuất ra màn hình văn bản ở chế độ kí tự Ứng dụng Java mà chúng ta tìm hiểu trong ví dụ trên thuộc loại ứng dụng console Các ứng dụng console thường bắt đầu bằng lời gọi đến phương thức main () Ví dụ :
Public class ConsoleApp
Biên dịch và chạy chương trình
C:\ SAMPLE > javac ConsoleApp java
Trang 31C :\ SAMPLE > java ConsoleApp
This is console application
b)Ứng dụng đồ họa.
Bạn có thể dùng Java để viết các chương trình đồ họa tương tự các ứng dụng Windows Một chương trình đồ họa thường cần một khung cửa sổ cùng với các thành phần giao diện như nút nhấn, checkbox, menu, listbox Chương trình đồ hạo còn cho phép bạn vẽ ra cửa sổ bằng các đối tượng như Graphics Dưới đây là chương trình tạo và mở cửa sổ tương tự các chương trình Windows chuẩn viết trên C hay VB
c)Applet.
Applet là một trong những ứng dụng mạng nổi tiếng trong Java Applet là một cửa sổ chương trình thu nhỏ có khả năng nhúng trong trong Web và chạy bên trong trình duyệt Trang Web HTML sử dụng thẻ < APPLET> để nhúng mã java class vào tài liệu Tuy nhiên để viết ra Applet bạn cần dùng trình biên dịch java và tuân theo một số quy định : Applet không được truy xuất tài nguyên của máy khách như mở hay đọc file Applet chỉ có thể chạy bên trong trình duyệt và không thể tồn tại như một ứng dụng độc lập ( mặc dù vậy bạn vẫn có thể thiết kế Applet vừa chạy với tư cách ứng dụng vừa chạy với tư cách nhúng trong trình duyệt) Để viết Applet lớp đối tượng của bạn cần kế thừa và xây dựng trên lớp cơ
sở java awt.Applet
d) Servlet.
Trái với Applet thường được các trình duyệt tải về chạy trên máy khách 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 bạn cần có các trình chủ hiểu Java và hỗ trợ triệu gọi Servlet như Apache, Jrun Mặc dù vậy biên dịch và tạo Servlet chúng ta chỉ cần đến trình biên dịch JDK mà không cần đến các trình chủ Dưới đây là mã Servlet viết bằng Java