Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
1,12 MB
Nội dung
lOMoARcPSD|20597457 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM ***** BÁO CÁO ĐỒ ÁN CHUYÊN ĐỀ WEBSITE BÁN NHẠC CỤ SỬ DỤNG JAVA SERVLET Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : MẠNG MÁY TÍNH Giảng viên hướng dẫn: THẦY THÁI HUY TÂN Sinh viên thực : Họ tên Nguyễn Đăng Quang Trịnh Tuấn Vủ MSSV 1311061016 1311061407 TP.HCM - Tháng 04, năm 2017 Lớp 13DTHM02 13DTHM02 lOMoARcPSD|20597457 Giới thiệu Servlet Hiện nay, lập trình có xu hướng quan trọng tập trung phát triển ứng dụng, xây dựng chương trình dịch vụ Java phía máy chủ (Server) Servlet thành phần sử dụng để phát triển chương trình dịch vụ Java phía máy chủ Các Servlet chương trình Java thực ứng dụng Server (tên gọi “Servlet” gần giống “Applet” phía máy Client) để trả lời cho yêu cầu Client Các Servlet không bị ràng buộc chặt với giao thức Client-Server cụ thể cả, giao thức thường sử dụng HTTP, vậy, nói tới Servlet nghĩa nói tới HTTP Servlet Servlet phát triển mở rộng CGI để đảm bảo Server thực chức Ta sử dụng Servlet Java để tuỳ chỉnh lại dịch vụ bất kỳ, Web Server, Mail Server, v.v Web Server hiển thị tư liệu viết HTML hồi đáp cho yêu cầu người sử dụng qua HTTP Các tư liệu HTML chứa văn đánh dấu (định dạng) để trình duyệt IE, Netscape đọc Một trình duyệt chấp nhận đầu vào dạng HTML, người sử dụng nhấn nút để yêu cầu số thơng tin đó, Servlet đơn giản gọi để xử lý u cầu Các cơng việc Servlet mơ tả khái qt hình 1, bao gồm: Đọc liệu tường minh Client gửi đến từ yêu cầu (dữ liệu theo khuôn dạng – form data) Đọc liệu không tường minh Client gửi đến từ yêu cầu (dữ liệu phần đầu yêu cầu – request headers) lOMoARcPSD|20597457 Xử lý lưu trữ liệu cung cấp dạng HTML Gửi trả lời liệu tường minh cho Client (dạng HTML), cung cấp nội dung động, ví dụ trả lời yêu cầu Client câu truy vấn vào CSDL Quản lý thông tin trạng thái trả lời liệu không tường minh cho Client (các mã trạng thái phần đầu trả lời) JDBC Client Servlet CSDL JNI Chương trình ứng dụng RMI HTTP Servlet Chương trình Java XML Chương trình B2B Web Server Hình Vai trị Servlet Viết Servlet tương đối dễ Ta cần có Tomcat, tổ hợp Java Server PagesTM 1.1 Servlets 2.2 Tomcat nạp miễn phí từ http://java.sun.com/products/jsp/tomcat/, phần cài đặt mơ tả phần sau Các Servlet sử dụng thay cho kịch giao diện cổng chung CGI Script Khi tạo trang Web, ta tạo ứng dụng Web Trước sử dụng Servlet để tạo ứng dụng Web, tìm hiểu xem có khả lựa chọn khác để phát triển ứng dụng Web CGI: Theo cách thông thường, để bổ sung chức vào cho Web Server người ta hay sử dụng Common Gateway Interface (CGI), lOMoARcPSD|20597457 giao diện độc lập với ngôn ngữ cho phép Server khởi động tiến trình ngoại để nhận thơng tin u cầu thơng qua biến môi trường Mỗi yêu cầu trả lời tiến trình riêng thơng qua đại diện riêng chương trình CGI kịch CGI (thường viết ngôn ngữ thông dịch Perl) Fast CGI: Open Marked phát triển chuẩn khác thay cho CGI gọi Fast CGI Fast CGI hành động giống CGI Nó khác chỗ, Fast CGI tạo tiến trình bền vững cho chương trình Một số chương trình ứng dụng khác ASP Java Script hỗ trợ để tạo ứng dụng Web ASP Microsoft phát triển để tạo nội dung cho trang Web động Trong ASP, trang HTML nhúng phần nhỏ viết VBScript JScript Netscape đưa kỹ thuật gọi JavaScript, cho phép đưa phần mã lệnh nhỏ nhúng vào trang HMTL, nhằm tạo nội dung Web động cách linh họat Ngồi ra, Netscape cịn cung cấp NSAPI, Microsoft đưa ISAPI cho Web Server họ Servlet có số ưu điểm so với CGI: Một Servlet không làm việc tiến trình riêng Điều loại bỏ việc phải tạo nhiều tiến trình cho yêu cầu Một Servlet thường trực nhớ yêu cầu, chương trình CGI cần phải tải xuống khởi động cho yêu cầu CGI Chỉ cần Servlet trả lời đồng thời cho tất yêu cầu Điều cho phép tiết kiệm nhớ đảm bảo dễ dàng quản lý liệu cách thống lOMoARcPSD|20597457 Một Servlet thực Servlet Engine phạm vi kiểm soát Sandbox để đảm bảo an toàn việc sử dụng Servlet Các lớp Servlet Java nạp tự động để mở rộng chức Server Các Servlet Java thực bên JVM Chúng đảm bảo an tồn chuyển đổi tương thích hệ điều hành Server với Điều khác với Applet, Servlet thao tác miền Server Servlet API phát triển dựa điểm mạnh Java platform nhằm giải vấn đề CGI Server API Nó API đơn giản, hỗ trợ tất Web server chí cho phép ứng dụng máy chủ dùng để kiểm tra quản lý cơng việc Server Nó giải vấn đề thực thi việc thực tất yêu cầu luồng Thread trình xử lý, việc cân tải Server cụm máy tính Cluster Các Servlet dễ dàng chia sẻ tài nguyên với Trong định nghĩa Servlet, vấn đề bảo mật cải tiến theo nhiều cách Trước hết, bạn thực thi câu lệnh Shell với liệu cung cấp người dùng mà Java API cung cấp với khả truy cập đến tất hàm thơng dụng Bạn sử dụng Java Mail để đọc gửi mail, kết nối vào CSDL (thông qua JDBC), tệp lớp (.class) lớp liên quan để truy cập hệ thống tệp, CSDL, RMI, CORBA, Enterprise Java Beans (EJB), … Ưu điểm Servlet Servlet sử dụng để thay cho công nghệ Web động Việc sử dụng Servlet mang lại lợi thế: Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Dễ di chuyển Servlet viết Java nên có tính di động cao, thực nhiều hệ điều hành, Web Server khác Khái niệm “Viết lần, chạy nơi” với Servlet Mạnh mẽ Servlet hỗ trợ hiệu cho việc sử dụng giao diện lõi API lập trình mạng, xử lý đa luồng, xử lý ảnh, nén liệu, kết nối CSDL, bảo mật, xử lý phân tán triệu gọi từ xa RMI, CORBA, v.v Nó thích hợp để trao đổi tin, truyền thông Client Server cách bình thường Hiệu Servlet có tính hiệu cao Một tải về, lưu lại nhớ máy chủ Servlet trì trạng thái nó, tài nguyên ngoại việc kết nối với CSDL lưu giữ lại An toàn Bởi Servlet viết Java nên kế thừa tính an tồn Java Cơ chế tự động dọn rác việc không sử dụng trỏ Java giúp cho Servlet khỏi nhiều cơng việc quản lý nhớ Đồng thời xử lý lỗi an toàn theo chế xử lý ngoại lệ Java Tính tích hợp Các Servlet tích hợp với Server Chúng cộng tác với Server tốt 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 sử dụng để tạo trang Web, sau ta sử dụng thẻ để đưa vào trang Web tĩnh, sử dụng với Servlet khác để lọc nội dung cần thiết Môi trường thực Servlet Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Các Servlet thường mở rộng (kế thừa) lớp chuẩn Java gói javax.servlet (chứa khn mẫu Servlet) javax.servlet.http (mở rộng khuôn mẫu Servlet yêu cầu theo HTTP) Servlet lớp Java cần thực thi máy ảo Java (JVM) dịch vụ gọi mô tơ Servlet (Servlet Engine) Servlet Engine tải lớp Servlet lần yêu cầu, Servlet Engine bắt đầu Servlet ngừng tải để xử lý nhiều yêu cầu Servlet Engine bị tắt bị dừng lại Như vậy, để dịch thực Servlet, việc có Servlet chưa đủ, mà cần phải có mơ tơ Servlet để kiểm tra triển khai chúng Hiện số mô tơ tương thích với nhiều loại Web Server khác nhau, nguyên lý hành động tương đối giống Người ta chia chúng thành ba loại Mô tơ Servlet đơn Mô tơ Servlet gộp Mô tơ Servlet nhúng 3.1 Mô tơ Servlet đơn Đây loại Server xây dựng để hỗ trợ cho Servlet Ưu điểm thứ làm việc với hộp kết đầu phong phú Tuy nhiên, có nhược điểm ta phải chờ phiên Web Server để nhận hỗ trợ cho Servlet Hiện có loại mơ tơ đơn sau: Java Server Web Development (JSWDK) Sun Microsystem: viết hồn tồn Java: http://java.sun.com.products/servlet/ Nó sử dụng Server độc lập để kiểm tra Servlet trang JSP trước phát triển thành Web Server thực Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Jagsaw Server WWW Consortium, viết Java Chi tiết hơn, xem http://www.w3.org/Jigsaw Netscape Enterprise Server Đây Web Server tiếng, hỗ trợ để xây dựng Servlet Lotus Domino Go WebServer Một loại Web Server khác hỗ trợ để xây dựng Servlet 3.2 Mô tơ Servlet gộp Servlet gộp loại mô tơ viết cho nhiều loại Server khác nhau, kể Apache, Fast Track Server, Enterprise Server Netscape, Personal Web Server, v.v Hiện có loại sau: Apache Tomcat: Mô tơ hỗ trợ thêm cho Apache Nó sử dụng Server độc lập để kiểm tra Servlet trang JSP, tích hợp vào Apache Web Server, http://java.sun.com.products/servlet/ Jrun Live Software: Jrun mô tơ cho Servlet JSP, hỗ trợ đầy đủ Servlet API Web Server phổ biến hệ điều hành, http://www.allaire.com.products/jrun/ WebSphere Application Server IBM: gọi ServletExpress ServletExec New Atlanta: ServletExec mô tơ cho Servlet JSP, hỗ trợ đầy đủ Servlet API Web Server phổ biến hệ điều hành, http://newatlanta.com/ 3.3 Mô tơ Servlet nhúng Loại mơ tơ nhúng vào phần mềm ứng dụng khác Hiện có loại sau: Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Java Server Engine Sun Đây loại mơ tơ viết hồn tồn Java Web Server hỗ trợ đầy đủ cho đặc tả Servlet 2.1 JSP 1.0, http://www.sun.com.software/jwebserver/try Nexus Web Server Anders Kristensen Nó dễ dàng nhúng vào chương trình ứng dụng Java Mã nguồn website bán nhạc cụ 4.1 Môi trường chạy ứng dụng Source code : Netbean IDE 8.2 Giả lập server : Glassfish 4.1.1 Database PC : Navicat Premium Database web MySQL : AppServ Browser : Cốc Cốc, Firefox, IE 4.2 Kiến trúc project 4.2.1 Netbean Tên project : MusicShop Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Hình 4.2.1 Kiến trúc project Web Pages : chứa nội dung giao diện website (.jsp) bao gồm trang user & admin Connect : kết nối database Controller : xử lý liệu đọc từ Web Pages user nhập vào truyền vào model (cơ sở liệu) Model : xử lý liệu chuyển từ Controller, lấy (get) truyền vào (set) database (Navicat) 4.2.3 Database AppServ localhost Tên database : musicshop Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Brand.java Cart.java Category.java Contact.java Item.java Newsletter.java Product.java Review.java User.java UseraAdmin.java Value.java 4.2.4 Mã nguồn user đăng nhập Login.jsp UserServlet.java UserGet.java Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Login.jsp : trang đăng nhập Khi user nhấn “Đăng nhập”, tức truyền lệnh “submit” thực lệnh name = “command”, giá trị value= “login” UserServlet.java thuộc packages Controller UserServlet.java Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 4.2.4 Mã nguồn user đăng ký Register.jsp UserServlet.java UserGet.java Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Đoạn java script kiểm tra tên user xem có trùng khớp với user đăng ký hay không để trả lời kết CheckEmailServlet.java : hàm kiểm tra Hàm xử lý UserServlet.java Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Hàm java script kiểm tra mật xác nhận mật có trùng khớp hay không Cấu trúc form Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 4.2.4 Mã nguồn user toán Sơ đồ Trang giỏ hàng tốn CheckOut.jsp Lựa chọn hình thức tốn CheckOutStep.jsp Thanh tốn khơng cầần đăng ký Thanh toán qua đăng ký Delivery.jsp Logindeal.jsp Đưa vào xử lý UserServlet.java Đưa vào xử lý DeliveryServlet.java Vào trang thông tin tốn Deal.jsp Thơng tin tốn Trang cám ơn ThankYouDelivery.jsp Đưa vào xử lý CheckOutServlet.java Trang cám ơn Thankyou.jsp Lấy ý tưởng từ trang bán hàng Lazada.vn để thuận tiện cho khách hàng mua hàng mà không cần phải đăng ký tài khoản Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Giao diện website 5.1 Trang chủ Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 5.1 Giao diện User Trang đăng nhập Trang vừa đăng nhập Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Trang thông tin user : Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Comment facebook Code API comment facebook Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Sản phẩm liên quan Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Trang liên hệ Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Trang giỏ hàng Trang cho user chọn hình thức đăng ký, user đăng ký tự động chuyển qua trang thông tin toán Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Downloaded by hong chinh (vuchinhhp5@gmail.com) lOMoARcPSD|20597457 Downloaded by hong chinh (vuchinhhp5@gmail.com)