Đồ án Xây dựng website giới thiệu mỹ phẩm

Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu. Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở nơi làm việc mà còn ngay cả trong gia đình. Đặc biệt là công nghệ thông tin được áp dụng trên mọi lĩnh vực kinh tế, chính trị, xã hội. Nó đóng vai trò hết sức quan trọng. Trong hoạt động sản xuất, kinh doanh giờ đây thương mại điện tử và ứng dụng công nghệ thông tin đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp. Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng đồng thời cho khách hàng thấy được sự khác biệt giữa các sản phẩm của các nhà sản xuất (thương hiệu) khác nhau sẽ là cần thiết. Vậy phải quảng bá thế nào đó là xây dựng được một Website cho cửa hàng của mình giới thiệu tất cả các sản phẩm của mình bán. Vì vậy, em đã thực hiện đề tài “Xây dựng website giới thiệu mỹ phẩm” cho một số thương hiệu mỹ phẩm. Người chủ cửa hàng hoặc cộng tác viên đưa các sản phẩm đó lên website và quản lý bằng website đó, khách hàng có thể đặt hàng trên website mà không cần đến cửa hàng. Chủ cửa hàng sẽ trực tiếp liên hệ cho khách hàng khi nhận được đơn đặt hàng qua website. Với những tính năng cơ bản, Website giúp gắn kết người mua và chủ cửa hàng dễ dàng, tiết kiệm thời gian cho khách hàng hơn việc phải đến trực tiếp cửa hàng để mua sản phẩm. Nó còn giúp người chủ cửa hàng dễ dàng nắm bắt, quản lí sản phẩm của mình và truyền thông quảng cáo được rộng hơn, đồng thời cạnh tranh cao với các thương hiệu khác ngay trên chính website giới thiệu mỹ phẩm chung.

docx45 trang | Chia sẻ: thientruc20 | Lượt xem: 1330 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng website giới thiệu mỹ phẩm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC VINH VIỆN KỸ THUẬT VÀ CÔNG NGHỆ NGUYỄN THỊ NGỌC XÂY DỰNG WEBSITE GIỚI THIỆU MỸ PHẨM ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN Nghệ An – 05/2019 TRƯỜNG ĐẠI HỌC VINH VIỆN KỸ THUẬT VÀ CÔNG NGHỆ XÂY DỰNG WEBSITE GIỚI THIỆU MỸ PHẨM ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn: ThS. HỒ THỊ HUYỀN THƯƠNG Sinh viên thực hiện: NGUYỄN THỊ NGỌC Mã sinh viên: 145D4802010026 Lớp: 55K2 CNTT Nghệ An – 05/2019 LỜI CAM ĐOAN Em xin cam đoan đây là bản báo cáo đồ án của riêng em với đề tài “Xây dựng website giới thiệu mỹ phẩm” và được sự hướng dẫn chỉ dạy của giảng viên, ThS. Hồ Thị Huyền Thương. Các nội dung, kết quả cũng như số liệu trong đề tài này là trung thực và chưa được công bố dưới bất kỳ hình thức nào. Nếu phát hiện có bất kỳ sự gian lận nào, em xin chịu hoàn toàn trách nhiệm về nội dung đồ án của mình. Nghê ̣An, ngày 15 tháng 05 năm 2019 Sinh viên thực hiện Nguyễn Thị Ngọc MỤC LỤC DANH MỤC TỪ VIẾT TẮT 6 DANH MỤC BẢNG BIỂU 7 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 8 MỞ ĐẦU 9 Lý do chọn đề tài 9 Mục đích thực hiện 10 Phạm vi thực hiện 10 Nội dung thực hiện 10 Cấu trúc đồ án 10 LỜI CẢM ƠN 11 CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA, JAVA SERVLET VÀ MÔ HÌNH MVC 12 Tính năng kỹ thuật 12 Công cụ phát triển 12 Ngôn ngữ Java 12 Lịch sử ra đời ngôn ngữ Java 12 Java là gì? 14 Java được dùng để làm gì? 15 Giới thiệu về Java Servlet 15 Java Servlet là gì? 15 Ưu điểm của Servlet 18 Mô hình MVC 19 Lịch sử hình thành. 19 MVC là gì? 19 CHƯƠNG 2. KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 22 Khảo sát và xác định yêu cầu bài toán 22 Mô tả bài toán 22 Khảo sát hiện trạng và xây dựng hệ thống mới 24 Phân tích chức năng 24 Phân tích hệ thống 25 Các tác nhân 25 Sơ đồ Use Case 26 CHƯƠNG 3. THIẾT KẾ VÀ LẬP TRÌNH 30 Thiết kế cơ sở dữ liệu 30 Các bảng trong cơ sở dữ liệu 30 Mối quan hệ giữa các bảng 33 Kiến trúc Project 33 Danh sách File Types 34 WebContent 34 Java Resources 35 CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM 37 Công cụ sử dụng 37 Minh họa website 37 Trang đăng ký 37 Trang đăng nhập 38 Trang hiển thị sản phẩm 38 Trang tìm kiếm sản phẩm 39 Trang hiển thị sản phẩm theo danh mục sản phẩm 40 Trang hiển thị sản phẩm theo thương hiệu 41 Trang chi tiết sản phẩm 42 Trang đặt hàng 42 Trang quản lý của cộng tác viên 43 Trang quản lý của Admin 43 KẾT LUẬN 44 TÀI LIỆU THAM KHẢO 45 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Chú thích CSDL Cơ sở dữ liệu GNU General Public License, là giấy phép phần mềm tự do được sử dụng rộng rãi. CGI Common Gateway Interface (Giao diện cổng chung) API Application Programming Interface (giao diện lập trình ứng dụng) MVC Model View Controller CTV Cộng tác viên DANH MỤC BẢNG BIỂU Bảng 2.2.1 Các tác nhân Bảng 3.1.1.1 Bảng người dùng Bảng 3.1.1.2 Bảng phân quyền Bảng 3.1.1.3 Bảng danh mục sản phẩm Bảng 3.1.1.4 Bảng thương hiệu Bảng 3.1.1.5 Bảng sản phẩm Bảng 3.1.1.6 Bảng đơn hàng Bảng 3.1.1.7 Bảng chi tiết đơn hàng Bảng 3.1.1.8 Bảng Trạng thái đơn hàng DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.4.1 Vai trò của Servlet Hình 1.5.2 Mô hình MVC Hình 2.2.2.1 Quản lý người dùng - Admin Hình 2.2.2.2 Quản lý thương hiệu - Admin Hình 2.2.2.3 Quản lý danh mục sản phẩm - Admin Hình 2.2.2.4 Quản lý sản phẩm - Admin Hình 2.2.2.5 Quản lý thông tin cá nhân - CTV Hình 2.2.2.6 Quản lý sản phẩm - CTV Hình 2.2.2.7 Quản lý thông tin cá nhân và đặt hàng - KH Hình 3.1.2 Mối quan hệ giữa các bảng CSDL Hình 4.2.1 Trang đăng ký Hình 4.2.2. Trang đăng nhập Hình 4.2.3 Trang hiển thị sản phẩm Hình 4.2.4 Trang tìm kiếm sản phẩm Hình 4.2.5 Trang hiển thị sản phẩm theo danh mục sản phẩm Hình 4.2.6 Trang hiển thị sản phẩm theo thương hiệu Hình 4.2.7 Trang chi tiết sản phẩm Hình 4.2.8 Trang đặt hàng Hình 4.2.9 Trang quản lý của cộng tác viên Hình 4.2.10 Trang quản lý của Admin MỞ ĐẦU Lý do chọn đề tài Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu. Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở nơi làm việc mà còn ngay cả trong gia đình. Đặc biệt là công nghệ thông tin được áp dụng trên mọi lĩnh vực kinh tế, chính trị, xã hội. Nó đóng vai trò hết sức quan trọng. Trong hoạt động sản xuất, kinh doanh giờ đây thương mại điện tử và ứng dụng công nghệ thông tin đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp. Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng đồng thời cho khách hàng thấy được sự khác biệt giữa các sản phẩm của các nhà sản xuất (thương hiệu) khác nhau sẽ là cần thiết. Vậy phải quảng bá thế nào đó là xây dựng được một Website cho cửa hàng của mình giới thiệu tất cả các sản phẩm của mình bán. Vì vậy, em đã thực hiện đề tài “Xây dựng website giới thiệu mỹ phẩm” cho một số thương hiệu mỹ phẩm. Người chủ cửa hàng hoặc cộng tác viên đưa các sản phẩm đó lên website và quản lý bằng website đó, khách hàng có thể đặt hàng trên website mà không cần đến cửa hàng. Chủ cửa hàng sẽ trực tiếp liên hệ cho khách hàng khi nhận được đơn đặt hàng qua website. Với những tính năng cơ bản, Website giúp gắn kết người mua và chủ cửa hàng dễ dàng, tiết kiệm thời gian cho khách hàng hơn việc phải đến trực tiếp cửa hàng để mua sản phẩm. Nó còn giúp người chủ cửa hàng dễ dàng nắm bắt, quản lí sản phẩm của mình và truyền thông quảng cáo được rộng hơn, đồng thời cạnh tranh cao với các thương hiệu khác ngay trên chính website giới thiệu mỹ phẩm chung. Ngoài ra, bản thân cũng là một người thích xem và tìm hiểu các thương hiệu mỹ phẩm khác nhau, bởi vậy việc lựa chọn đề tài “Xây dựng website giới thiệu mỹ phẩm” làm đề tài bảo vệ đồ án tốt nghiệp đại học cũng là một sự lựa chọn em nghĩ là khá phù hợp với bản thân mình. Mục đích thực hiện Mục đích của tài liệu này mô tả một cách chi tiết về những chức năng của “Website giới thiệu mỹ phẩm”. Nó minh họa chi tiết chức năng và xây dựng một hệ thống hoàn chỉnh. Nó giải thích rõ ràng về ràng buộc của hệ thống, trình bày tổng quan về giao diện và những tương tác với hệ thống. Tài liệu này dùng mô tả trình bày lại nhằm chỉnh sửa và điều chỉnh được tốt hơn. Phạm vi thực hiện Đối tượng nghiên cứu: Hệ thống website giới thiệu mỹ phẩm và quy trình, phương pháp, phát triển một website. Phạm vi nghiên cứu: Xây dựng website giới thiệu mỹ phẩm. Nội dung thực hiện Phương pháp phân tích tổng hợp kinh nghiệm Tham khảo các hệ thống website mỹ phẩm lớn ở Việt Nam. Phân tích thiết kế hệ thống Thiết kế cơ sở dữ liệu, giao diện. Lập trình Kiểm thử Cấu trúc đồ án Lời cảm ơn Chương 1: Giới thiệu về ngôn ngữ Java, Java Servlet và Mô hình MVC Chương 2: Khảo sát và phân tích hệ thống Chương 3: Thiết kế và Lập trình Chương 4: Cài đặt thử nghiệm LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn ThS. Hồ Thị Huyền Thương đã dùng tri thức, tâm huyết để truyền vốn tri thức quý báu và nhiệt tình giúp đỡ em cũng như các bạn khác trong suốt thời gian chúng em thực hiện theo tiến độ đồ án. Cảm ơn cô đã tạo mọi điều kiện tốt nhất, đã luôn quản lý, đốc thúc em hoàn thành đề tài, giúp em có thêm động lực để luôn cố gắng hoàn thành tốt yêu cầu đề ra. Trong thời gian tìm tòi, tự học vừa qua, đồng thời được sự hướng dẫn giảng dạy của các cô thầy trong Viện Kỹ thuật & Công nghệ và sự giúp đỡ nhiệt tình của một số anh chị có kinh nghiệm, em đã hiểu và củng cố, nắm vững hơn các kiến thức đã được học từ các đợt thực tập trước và có cái nhìn thực tế hơn về chuyên ngành mình học, giúp em hoàn thành bài báo cáo đồ án này. Trong quá trình học tập cũng như làm báo cáo đề tài, mặc dù đã rất cố gắng nhưng do kinh nghiệm thực tiễn và trình độ còn hạn chế nên khó tránh khỏi sai sót. Em rất mong nhận được ý kiến đóng góp từ các thầy cô để em có thêm nhiều kinh nghiệm và hướng phát triển đề tài trong tương lai. Nghệ An , ngày 15 tháng 05 năm 2019 Sinh viên thực hiện Nguyễn Thị Ngọc CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA, JAVA SERVLET VÀ MÔ HÌNH MVC Tính năng kỹ thuật Website được thiết kế theo hướng mở, có thể nâng cấp và cập nhật thêm các tính năng mới khi có nhu cầu. Hỗ trợ sử dụng tiếng việt theo đúng chuẩn Unicode. Tương thích với các loại trình duyệt Internet như Google Chome, Mozilla Firefox, và Internet Explorer Hiện thị trên mọi giao diện như mobile, Ipad, Ứng dụng các công nghệ phát triển web mới nhất , đồng thời sử dụng các công cụ phổ biến như Photoshop, và phát triển trên mô hình MVC của Java để mang đến cho website một dáng vẻ sống động và hiện đại . Sử dụng các hiệu ứng làm nổi bật , lôi cuốn cho giao diện website. Công cụ phát triển Đề tài được xây dựng dựa trên các công cụ, ngôn ngữ: HTML Javascript CSS Boostrap framework. Java Mô hình MVC Ngôn ngữ Java Lịch sử ra đời ngôn ngữ Java Java ban đầu được phát triển bởi James Gosling tại Sun microsystems ( đã được Oracle mua lại ) và phát hành vào năm 1995 như là một thành phần cốt lõi của nền tảng Java của Sun microsystems . Các trình biên dịch Java , máy ảo và thư viện lớp ban đầu và tham chiếu ban đầu được Sun phát hành theo giấy phép độc quyền . Kể từ tháng 5 năm 2007, tuân thủ các thông số kỹ thuật của Quy trình cộng đồng Java , Sun đã cấp phép lại hầu hết các công nghệ Java của mình theo Giấy phép công cộng GNU. Trong khi đó, những người khác đã phát triển các triển khai thay thế cho các công nghệ Mặt trời này, chẳng hạn như Trình biên dịch GNU cho Java (trình biên dịch mã byte), GNU Classpath (thư viện chuẩn) và IcedTea -Web (plugin trình duyệt cho các applet). Kể từ ngày 20 tháng 3 năm 2018 , cả Java 8 và 11 đều được hỗ trợ chính thức. Các phiên bản phát hành chính của Java, cùng với ngày phát hành của chúng: JDK 1.0 (ngày 23 tháng 1 năm 1996) JDK 1.1 (ngày 19 tháng 2 năm 1997) J2SE 1.2 (ngày 8 tháng 12 năm 1998) J2SE 1.3 (ngày 8 tháng 5 năm 2000) J2SE 1.4 (ngày 6 tháng 2 năm 2002) J2SE 5.0 (ngày 30 tháng 9 năm 2004) Java SE 6 (ngày 11 tháng 12 năm 2006) Java SE 7 (ngày 28 tháng 7 năm 2011) Java SE 8 (ngày 18 tháng 3 năm 2014) Java SE 9 (ngày 21 tháng 9 năm 2017) Java SE 10 (ngày 20 tháng 3 năm 2018) Java SE 11 (ngày 25 tháng 9 năm 2018) Java SE 12 (ngày 19 tháng 3 năm 2019) Phiên bản mới nhất là Java SE 12 , phát hành tháng ba năm 2019. Kể từ Java 9 không còn được hỗ trợ, Oracle khuyên người sử dụng sử dụng Java 12. Oracle phát hành bản cập nhật nào cuối cùng cho di sản Java 8 LTS, đó là miễn phí cho mục đích thương mại, vào tháng giêng năm 2019. Java 8 sẽ được hỗ trợ với bản cập nhật nào cho mục đích cá nhân lên đến ít nhất là tháng mười hai năm 2020. Oracle và những người khác "khuyên bạn nên gỡ bỏ phiên bản cũ của Java" vì rủi ro nghiêm trọng do chưa được giải quyết vấn đề an ninh. Oracle hỗ trợ mở rộng cho Java 6 đã kết thúc vào tháng 12 năm 2018. Java là gì? Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp. Khác với ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi chạy. Điều quan trọng về Java giúp phân biệt nó với nhiều công nghệ khác là nó được thiết kế sao cho mã được viết bằng Java có thể chạy trên bất kỳ hệ thống nào mà máy ảo Java (JVM) có thể chạy. Khái niệm viết một lần, chạy mọi nơi được sử dụng như một khẩu hiệu để thúc đẩy các khả năng đa nền tảng của Java. Bản thân ngôn ngữ lập trình Java là ngôn ngữ hướng đối tượng, về mặt cú pháp tương tự như C ++. Không giống như một số ngôn ngữ khác đi trước nó, đã triển khai các lớp nhưng không yêu cầu sử dụng chúng, các chương trình Java luôn được thiết kế với thiết kế hướng đối tượng. Trong khi ngôn ngữ Java và máy ảo Java chạy mã Java được ghép nối chặt chẽ, hai ngôn ngữ này tách biệt nhau. Mã từ các ngôn ngữ khác được thiết kế riêng cho JVM, như Groovy và Scala, cũng có thể chạy trên máy ảo Java. Hãy cẩn thận đừng nhầm lẫn Java với JavaScript. Mặc dù cả hai ngôn ngữ hiện được tìm thấy trong nhiều môi trường, JavaScript, được sử dụng phổ biến nhất để tăng sức mạnh tương tác bên trong trình duyệt web, là một công cụ hoàn toàn khác. Khác với một phần của cái tên, cả hai không có nhiều điểm chung. Có 5 mục tiêu chính trong việc xây dựng ngôn ngữ Java: Đơn giản, hướng đối tượng và quen thuộc. Mạnh mẽ và an toàn. Kiến trúc trung lập và di động. Thực thi với hiệu suất cao. Dịch ra bytecode, phân luồng và năng động. Java được dùng để làm gì? Tất cả các loại ứng dụng, từ các trò chơi cực kỳ phổ biến như Minecraft đến môi trường phát triển tích hợp Eclipse được các nhà phát triển sử dụng cho nhiều ngôn ngữ và nền tảng khác nhau, chạy trên Java. Java cũng cấp một số ứng dụng được xây dựng riêng cho web. Mặc dù với những cải tiến về JavaScript và HTML, các applet Java không còn là tiêu chuẩn thực tế cho các ứng dụng web tương tác, nhiều người vẫn dựa vào Java để cung cấp trải nghiệm tương tác trên trình duyệt. Ứng dụng JavaFX: JavaFX là một nền tảng phần mềm để tạo và phân phối các ứng dụng máy tính để bàn , cũng như các ứng dụng Internet phong phú (RIA) có thể chạy trên nhiều loại thiết bị. JavaFX dự định thay thế Swing làm thư viện GUI tiêu chuẩn cho Java SE , nhưng cả hai sẽ được đưa vào trong tương lai gần. JavaFX có hỗ trợ cho máy tính để bàn và trình duyệt web trên Microsoft Windows , Linux và macOS . JavaFX không hỗ trợ giao diện hệ điều hành gốc. Một số nền tảng cung cấp hỗ trợ phần cứng trực tiếp cho Java; có các bộ điều khiển vi mô có thể chạy mã byte Java trong phần cứng thay vì máy ảo Java phần mềm, và một số bộ xử lý dựa trên ARM có thể hỗ trợ phần cứng để thực thi mã byte Java thông qua tùy chọn Jazelle của chúng , mặc dù hỗ trợ hầu hết đã bị loại bỏ trong các triển khai hiện tại của ARM. Giới thiệu về Java Servlet Java Servlet là gì? Ngày nay, tất cả chúng ta đều nhận thức được sự cần thiết của việc tạo các trang web động, tức là những trang có khả năng thay đổi nội dung trang theo thời gian hoặc có thể tạo nội dung theo yêu cầu mà khách hàng nhận được. Nếu bạn thích mã hóa bằng Java, thì bạn sẽ rất vui khi biết rằng sử dụng Java cũng tồn tại một cách để tạo các trang web động và cách đó là Java Servlet. Servlets là các chương trình Java chạy trên máy chủ ứng dụng web hoặc máy chủ ứng dụng Java. Chúng được sử dụng để xử lý yêu cầu thu được từ máy chủ web, xử lý yêu cầu, tạo phản hồi, sau đó gửi phản hồi lại cho máy chủ web. Thuộc tính của Servlets: Servlets hoạt động ở phía máy chủ. 15 Servlets có khả năng xử lý yêu cầu phức tạp thu được từ máy chủ web. Thực thi Servlets bao gồm sáu bước cơ bản: Các khách hàng gửi yêu cầu đến máy chủ web. Máy chủ web nhận được yêu cầu. Máy chủ web chuyển yêu cầu đến servlet tương ứng. Servlet xử lý yêu cầu và tạo phản hồi dưới dạng đầu ra. Servlet gửi phản hồi trở lại máy chủ web. Máy chủ web sẽ gửi phản hồi lại cho máy khách và trình duyệt máy khách sẽ hiển thị nó trên màn hình. Công nghệ Java servlet cung cấp cho các nhà phát triển Web một cơ chế nhất quán, đơn giản để mở rộng chức năng của máy chủ Web và để truy cập các hệ thống kinh doanh hiện có. Các máy chủ là các thành phần Java EE phía máy chủ tạo ra các phản hồi (thường là các trang HTML ) cho các yêu cầu (thường là các yêu cầu HTTP ) từ các máy khách . API servlet Java ở một mức độ nào đó đã được thay thế bởi hai công nghệ Java tiêu chuẩn cho các dịch vụ web: Các Java API cho các dịch vụ Web RESTful (JAX-RS 2.0) hữu ích cho AJAX, JSON và REST dịch vụ. Các Java API cho các dịch vụ Web XML (JAX-WS) hữu ích cho SOAP Web Services . Các trang JavaServer (JSP) là các thành phần Java EE phía máy chủ tạo ra các phản hồi, điển hình là các trang HTML , cho các yêu cầu HTTP từ các máy khách . Các tệp nhúng nhúng mã Java vào một trang HTML bằng cách sử dụng các dấu phân cách đặc biệt . Một tệp JSP được biên dịch thành một servlet Java , một ứng dụng Java theo đúng nghĩa của nó, lần đầu tiên nó được truy cập. Sau đó, servlet được tạo sẽ tạo ra phản hồi. Một trình duyệt chấp nhận đầu vào ở dạng HTML, khi người sử dụng nhấn một nút để yêu cầu một số thông tin nào đó, một Servlet đơn giản được gọi để xử lý các yêu cầu đó. Các công việc chính của Servlet được mô tả khái quát trong hình 1, bao gồm: Đọc các dữ liệu tường minh được Client gửi đến từ các yêu cầu (dữ liệu theo các khuôn dạng – form data). Đọc các dữ liệu không tường minh được Client gửi đến từ các yêu cầu (dữ liệu trong phần đầu của yêu cầu – request headers). Xử lý và lưu trữ các dữ liệu được cung cấp dưới dạng HTML. Gửi trả lời dữ liệu tường minh cho Client (dạng HTML), cung cấp các nội dung động, ví dụ trả lời yêu cầu Client về các câu truy vấn vào các CSDL. Quản lý các thông tin trạng thái và trả lời dữ liệu không tường minh cho Client (các mã trạng thái và các phần đầu của trả lời). Client CSDL JDBC Servlet HTTP Servlet JNI RMI Chương trình ứng dụng XML Chương trình Java Chương trình B2B . . . Hình 1.4.1 Vai trò của Servlet Các Servlet cũng được sử dụng thay cho kịch bản giao diện cổng chung CGI Script. Khi tạo ra một trang Web, ta cũng sẽ tạo ra một ứng dụng Web. Trước khi sử dụng Servlet để tạo ra các ứng dụng Web, chúng ta đi tìm hiểu xem có những khả năng lựa chọn nào khác để phát triển những ứng dụng Web. CGI: Theo cách thông thường, để bổ sung các chức năng vào cho một Web Server người ta hay sử dụng Common Gateway Interface (CGI), một giao diện độc lập với ngôn ngữ cho phép một Server khởi động một tiến trình ngoại để nhận thông tin được yêu cầu thông qua các biến môi trường. Mỗi yêu cầu được trả lời bởi một tiến trình riêng thông qua một đại diện riêng của một chương trình CGI hoặc bởi một kịch bản CGI (thường được viết bằng ngôn ngữ thông dịch như Perl). Fast CGI: Open Marked đã phát triển một chuẩn khác thay cho CGI được gọi là Fast CGI. Fast CGI hành động giống như CGI. Nó khác ở chỗ, Fast CGI tạo ra một tiến trình bền vững cho từng chương trình. Một số chương trình ứng dụng khác như ASP và Java Script cũng hỗ trợ để tạo ra các ứng dụng Web. ASP được Microsoft phát triển để tạo ra các nội dung cho các trang Web động. Trong ASP, trang HTML có thể nhúng những phần nhỏ được viết bằng VBScript hoặc JScript. Netscape đưa ra kỹ thuật được gọi là JavaScript, cho phép đưa các phần mã lệnh nhỏ nhúng vào trang HMTL, nhằm tạo ra những nội dung Web động một cách linh họat hơn. Ngoài ra, Netscape còn cung cấp NSAPI, Microsoft đưa ra ISAPI cho các Web Server của họ. Ưu điểm của Servlet Servlet được sử dụng để thay thế cho những công nghệ Web động. Việc sử dụng Servlet mang lại những lợi thế: Dễ di chuyển. Servlet được viết bằng Java nên nó có tính di động cao, thực hiện được trên nhiều hệ điều hành, trên các Web Server khác nhau. Khái niệm “Viết một lần, chạy ở mọi nơi” cũng rất đúng với Servlet. Mạnh mẽ. Servlet hỗ trợ rất hiệu quả cho việc sử dụng các giao diện lõi API như lập trình mạng, xử lý đa luồng, xử lý ảnh, nén dữ liệu, kết nối các CSDL, bảo mật, xử lý phân tán và triệu gọi từ xa RMI, CORBA, v.v. Nó cũng thích hợp để trao đổi tin, truyền thông giữa Client và Server một cách bình thường. Hiệu quả. Servlet có tính hiệu quả cao. Một khi được tải về, nó sẽ được lưu lại trong bộ nhớ của máy chủ. Servlet duy trì các trạng thái của nó, do vậy những tài nguyên ngoại như việc kết nối với CSDL cũng sẽ được lưu giữ lại. An toàn. Bởi vì Servlet được viết bằng Java nên nó kế thừa được tính an toàn của Java. Cơ chế tự động dọn rác và việc không sử dụng con trỏ của Java giúp cho Servlet thoát khỏi nhiều công việc quản lý bộ nhớ. Đồng thời nó xử lý các lỗi rất an toàn theo cơ chế xử lý ngoại lệ của Java. Tính tích hợp. Các Servlet được tích hợp với các Server. Chúng cộng tác với các Server tốt hơn các chương trình CGI. Tính linh hoạt. Các Servlet hoàn toàn mềm dẻo. Một HTTP Servlet được sử dụng để tạo ra một trang Web, sau đó ta có thể sử dụng thẻ để đưa nó vào trang Web tĩnh, hoặc sử dụng với các Servlet khác để lọc ra các nội dung cần thiết. Mô hình MVC Lịch sử hình thành. MVC được phát minh bởi một giáo sư người Na Uy tên là Trygve Reenskaug và được