Lập trình web với java và xây dựng ứng dụng
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP CHUYÊN NGÀNH ĐỀ TÀI: LẬP TRÌNH WEB VỚI JAVA VÀ XÂY DỰNG ỨNG DỤNG HÀ NỘI – 2018 HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP CHUYÊN NGÀNH ĐỀ TÀI: LẬP TRÌNH WEB VỚI JAVA VÀ XÂY DỰNG ỨNG DỤNG Khóa: K59 Khoa: CƠNG NGHỆ THƠNG TIN Chun ngành: TIN HỌC GV hướng dẫn: TH.S TRẦN TRUNG HIẾU HÀ NỘI – 2018 MỤC LỤC LỜI CẢM ƠN BẢNG CÁC THUẬT NGỮ VIẾT TẮT PHẦN I: Mở Đầu 1.1 Tên đề tài 1.2 Đặt vấn đề 1.3 Mục đích yêu cầu 1.3.1 Mục đích: 1.3.2 Yêu cầu: 1.3.2.1 Đối với sinh viên thực hiện: 1.3.2.2 Đối với sản phẩm phải đảm bảo chức sau: PHẦN II: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGỒI NƯỚC 2.1 Tình hình nghiên cứu nước .4 2.2 Tình hình nghiên cứu ngồi nước 2.3 Tên đề tài, tính thời tầm quan trọng đề tài 2.3.1 Tên đề tài 2.3.2 Tính thời .6 2.3.3 Tầm quan trọng đề tài .6 PHẦN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 3.1 Địa điểm thời gian nghiên cứu (thực tập): 3.2 Nội dung nghiên cứu 3.3 Phương pháp nghiên cứu PHẦN IV: KẾT QUẢ VÀ THẢO LUẬN A LÝ THUYẾT I TÌM HIỂU CƠNG NGHỆ JAVA SERVLET VÀ JSP .7 Giới thiệu ngôn ngữ Java 1.1 Lịch sử đời phát triển ngôn ngữ Java 1.2 Java gì? 1.3 Tính chất Java 1.4 Java sử dụng để làm gì? 1.5 Những nơi sử dụng Java .9 Tìm hiểu Java Servlet 2.1 Khái niệm Java Servlet .9 2.2 Ưu điểm Servlet .10 2.3 Kiến trúc Servlet 10 2.4 Vòng đời Servlet 10 2.5 Request Response 13 2.6 Form Data Servlet 13 2.6.1 Phương thức GET 13 2.6.2 Phương thức POST .14 2.6.3 Đọc Form Data sử dụng Servlet 14 2.7 Cookie Servlet 14 2.8 Upload File Servlet 15 2.9 Một số phương thức khác 15 Tìm hiểu JSP 16 3.1 JSP gì? 16 3.2 Ưu điểm JSP 16 3.3 Vòng đời JSP .17 3.4 Trình tự làm việc JSP 18 3.5 Các bước xử lý trang JSP 18 3.6 Client Request JSP 19 3.7 Server Response JSP .19 3.8 Xử lý Form JSP .19 3.8.1 Phương thức GET 19 3.8.2 Phương thức POST .20 3.8.3 Đọc Form Data sử dụng JSP 20 3.9 Đối tượng ẩn (Implicit) JSP 20 3.10 Cookie JSP 21 3.11 Upload File JSP .21 3.12 Một số phương thức khác .22 B XÂY DỰNG ỨNG DỤNG 22 I ĐẶC TẢ YÊU CẦU PHẦN MỀM 22 1.1 Giới thiệu chung .22 1.1.1 Mục tiêu 23 1.1.2 Phạm vi 23 1.1.3 Các môi trường tảng cần sử dụng 23 1.2 Mô tả khái quát 25 1.3 Đặc tả yêu cầu 26 1.3.1 Chức phần mềm 26 1.3.1.1 Sơ đồ use case 32 1.3.1.2 Sơ đồ hoạt động 49 II: ĐẶC TẢ THIẾT KẾ PHẦN MỀM .55 2.1 Thiết kế chi tiết 55 2.1.1 Sơ đồ lớp .55 2.2.2 Sơ đồ trình tự 59 2.2.3 Thiết kế sở liệu 65 2.2.3.1 Sơ đồ quan hệ thực thể .65 2.2.3.2 Danh sách bảng mơ tả tóm tắt 68 2.3.4 Thiết kế giao diện 71 C THẢO LUẬN 77 I Tìm hiểu mơ hình MVC 77 1.1 Mơ hình MVC gì? 77 1.2 Sự tương tác lớp mơ hình MVC .78 1.3 Ưu nhược điểm mơ hình MVC .79 PHẦN V: KẾT LUẬN VÀ ĐỀ NGHỊ .79 I Kết luận .79 II Đề nghị hướng phát triển .80 PHẦN VI: TÀI LIỆU THAM KHẢO 80 DANH MỤC HÌNH ẢNH Hình 1: Kiến trúc Servlet .10 Hình 2: Vòng đời Servlet .11 Hình 3: Các bước thực servlet 11 Hình 4: Phương thức init() .12 Hình 5: Phương thức service() .12 Hình 6: phương thức doGet() 12 Hình 7: Phương thức request 13 Hình 8: phương thức destroy() 13 Hình 9: Vòng đời JSP .17 Hình 10: Trình tự làm việc JSP .18 Hình 11: Các bước xử lý trang JSP 18 Hình 12: Biểu đồ phân cấp chức phía Frontend 34 Hình 13: Biểu đồ phân cấp chức phía Backend 34 Hình 14: Use-case tổng quát 36 Hình 15: Use-case dành cho admin .36 Hình 16: Use-case dành cho khách hàng .37 Hình 17: Use-case quản lý tài khoản .37 Hình 18: Use-case quản lý tìm kiếm 38 Hình 19: Use-case quản lý đơn hàng .38 Hình 20: Use-case quản lý danh mục 39 Hình 21: Sơ đồ hoạt động đăng kí 49 Hình 22: Sơ đồ hoạt động đăng nhập .49 Hình 23: Sơ đồ hoạt động tìm kiếm .50 Hình 24: Sơ đồ hoạt động thêm sản phẩm 50 Hình 25: sơ đồ hoạt động sửa xóa thơng tin sản phẩm 51 Hình 26: Sơ đồ hoạt động xem giỏ hàng .51 Hình 27: Sơ đồ hoạt động xem sản phẩm 52 Hình 28: Sơ đồ hoạt động xem thơng tin cá nhân 52 Hình 29: Sơ đồ hoạt động xem đơn đặt hàng 53 Hình 30: Sơ đồ hoạt động thêm User .53 Hình 31: Sơ đồ hoạt động sửa, xóa thơng tin user 54 Hình 32: Sơ đồ hoạt động tốn 54 Hình 33: Các lớp cần có (1) 55 Hình 34: Các lớp cần có (2) 55 Hình 35: Các lớp cần có (3) 56 Hình 36: Các lớp cần có (4) 56 Hình 37: Sơ đồ lớp cần có(5) 57 Hình 38: Sơ đồ lớp tổng quan 57 Hình 39: Sơ đồ lớp phân rã nhỏ (1) 58 Hình 40: Sơ đồ lớp phân rã nhỏ (2) 58 Hình 41: Sơ đồ lớp phân rã nhỏ (3) 59 Hình 42: Sơ đồ trình tự đăng nhập 60 Hình 43: Sơ đồ trình tự đăng kí .60 Hình 44: Sơ đồ trình tự tốn đơn hàng 61 Hình 45: Sơ đồ trình tự thêm sản phẩm vào giỏ hàng 61 Hình 46: Sơ đồ trình tự xem chi tiết sản phẩm 62 Hình 47: Sơ đồ trình tự xem sản phẩm theo danh mục 62 Hình 48: Sơ đồ trình tự admin thêm,sửa, xóa danh mục .63 Hình 49: Sơ đồ trình tự admin xem thống kê danh mục 63 Hình 50: Mơ hình thực thể liên kết 66 Hình 51: Quan hệ bảng CSDL .69 Hình 52: Giao diện trang chủ shop 70 Hình 53:: Giao diện đăng kí 70 Hình 54: Giao diện đăng nhập .71 Hình 55: Giao diện giỏ hàng trống 71 Hình 56: Giao diện giỏ hàng có sản phẩm .72 Hình 57: Giao diện trang cá nhân khách hàng 72 Hình 58: Giao diện trang chủ quản trị viên 73 Hình 59: Giao diện quản lý danh mục 73 Hình 60: Giao diện quản lý sản phẩm 74 Hình 61: Giao diện quản lý người dùng 74 Hình 62: Giao diện quản lý hóa đơn 75 Hình 63: Giao diện thống kê danh mục sản phẩm 75 Hình 64: Mơ hình MVC 76 BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU LỜI CẢM ƠN Để hoàn thành báo cáo thực tập chuyên ngành trước hết em xin gửi đến thầy, cô giáo khoa Công Nghệ Thông Tin trường Học viện Nông Nghiệp Việt Nam lời cảm ơn trân thành Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến thầy Trần Trung Hiếu, người tận tình hướng dẫn, giúp đỡ em hồn thành chun đề báo cáo thực tập Đồng thời nhà trường tạo điều kiện cho em có hội tìm hiểu cách làm việc vận dụng kiến thức vào thực tế Qua tập em nhận nhiều điều mẻ bổ ích cho công việc sau thân Với đề tài “Lập trình web với Java xây dựng ứng dụng”, em áp dụng vào để xây dựng website thương mại điện tử, đề tài có tính thực tế thời gian ngắn trình độ hiểu biết chưa sâu nên làm em khơng tránh khỏi thiếu sót Em mong nhận góp ý, bảo thầy toàn thể bạn lớp, khoa để báo cáo em hoàn thiện SVTH LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU BẢNG CÁC THUẬT NGỮ VIẾT TẮT STT Thuật ngữ, từ viết tắt Giải thích Ghi CSDL Cơ sở liệu Nơi lưu trữ thông tin cho phép truy cập DESC Description Mô tả RAT Rationnal Quan hệ CNTT Công nghệ thông tin SP Sản phẩm NCC Nhà cung cấp NSX Nhà sản xuất TNHH Trách nhiệm hữu hạn CTHD Chi tiết hóa đơn 10 HD Hóa đơn 11 QL Quản lý SVTH LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU PHẦN I: Mở Đầu 1.1 Tên đề tài “Lập trình web với java xây dựng ứng dụng” 1.2 Đặt vấn đề Khái niệm website hình thành từ thập niên 90, mà trình duyệt vào giai đoạn hoàn thiện phát triển mạnh mẽ ngày Khơng có lí khiến hồi nghi lợi ích mà cơng nghệ web mang lại cho chúng ta, cho phát triển giới giai đoạn tương lai Cơng nghệ web tương lai thay cho ứng dụng desktop tại, cơng việc trở lên đơn giản nhiều Dựa tảng công nghệ web phần kết nối môi trường internet kiện trao đổi thơng tin, mua bán hàng hóa…vv… diễn mơi trường web Chúng ta hồn tồn tin tưởng vào tương lai phát triển mạnh mẽ công nghệ web Ngơn ngữ lập trình Java biết đến từ năm 1991 Là ngơn ngữ lập trình phổ biến giới lập trình viên sử dụng để tạo ứng dụng web, phần mềm tùy chỉnh, cổng thông tin điện tử, bao gồm giải pháp thương mại điện tử web di động Có nhiều cơng nghệ Java sử dụng ứng dụng web Hãy nhớ rằng, không cần phải sử dụng tất cơng nghệ Java ứng dụng web 1.3 Mục đích yêu cầu 1.3.1 Mục đích: Trong viết này, tơi tìm hiểu cơng nghệ web với Java (JSP/Servlet) xây dựng ứng dụng thương mại điện tử bán điện thoại phụ SVTH LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH Accessories GVHD: TRẦN TRUNG HIẾU Bảng bao gồm phụ kiện bán Thuộc tính Kiểu liệu Độ rộng Khóa Ghi user_id bigint 11 Primary Key Notnull user_email varchar 255 Notnull user_pass varchar 255 Notnull user_role bit Notnull Bảng 1: Users SVTH 71 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Bảng 2: Product Thuộc tính Kiểu liệu Độ rộng Khóa Ghi product_id bigint 20 Primary Key Notnull pategory_id bigint 20 Notnull product_name varchar 255 Notnull product_image varchar 255 Notnull product_price double Notnull product_descriptio n longtext Notnull Bảng 3: Category Thuộc tính Kiểu liệu Độ rộng Khóa Ghi category_id bigint 11 Primary Key Notnull category_nam e varchar 255 Notnull Bảng 4: Bill Thuộc tính Kiểu liệu Độ rộng Khóa Ghi billID bigint 20 Primary Key Notnull user_id bigint 20 Notnull total double Notnull payment varchar 255 Notnull address longtext Notnull date timestamp Notnull Bảng 5: Bill_detail SVTH 72 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Thuộc tính Kiểu liệu Độ rộng Khóa Ghi billDetailID bigint 20 Primary Key Notnull billID bigint 20 Notnull product_id bigint 20 Notnull price double Notnull quantity int 11 Notnull Bảng 6: Accessories Thuộc tính Kiểu liệu Độ rộng accessories_id bigint 20 accessories_nam e varchar 255 Khóa Ghi Primary Key Notnull Notnull Liên kết bảng sở liệu Hình 51: Quan hệ bảng CSDL 2.3.4 Thiết kế giao diện Giao diện trang chủ shop SVTH 73 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 52: Giao diện trang chủ shop Giao diện đăng kí Hình 53:: Giao diện đăng kí Giao diện đăng nhập SVTH 74 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 54: Giao diện đăng nhập Giao diện giỏ hàng trống Hình 55: Giao diện giỏ hàng trống Giao diện giỏ hàng có sản phẩm SVTH 75 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 56: Giao diện giỏ hàng có sản phẩm Trang cá nhân khách hàng Hình 57: Giao diện trang cá nhân khách hàng SVTH 76 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Giao diện trang chủ quản trị viên Hình 58: Giao diện trang chủ quản trị viên Giao diện quản lý danh mục Hình 59: Giao diện quản lý danh mục SVTH 77 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Giao diện quản lý sản phẩm Hình 60: Giao diện quản lý sản phẩm Giao diện quản lý người dùng SVTH 78 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 61: Giao diện quản lý người dùng Giao diện quản lý hóa đơn Hình 62: Giao diện quản lý hóa đơn Giao diện biểu đồ thống kê theo danh mục sản phẩm SVTH 79 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 63: Giao diện thống kê danh mục sản phẩm C THẢO LUẬN I Tìm hiểu mơ hình MVC 1.1 Mơ hình MVC gì? Mơ hình MVC chuẩn mơ hình đóng vai trò quan trọng trình xây dựng- phát triển- vận hành bảo trì hệ thống hay ứng dụng- phần mềm Nó tạo mơ hình lớp Model-View-Controller tách biệt tương tác với Giúp chun gia dễ dàng dựa vào mơ hình để trao đổi xử lý nghiệp vụ cách nhanh chóng Chúng ta áp dụng mơ hình MVC vào dự án mơi trường Windows, Linux… sử dụng ngôn ngữ nhu PHP, ASP, JSP… SVTH 80 LỚP: K59THA BÁO CÁO THỰC TẬP CHUN NGÀNH GVHD: TRẦN TRUNG HIẾU Hình 64: Mơ hình MVC Mơ hình MVC chia làm lớp xử lý gồm Model-View-Controler: Model: chứa nghiệp vụ tương tác với liệu hệ quản trị sở liệu (mysql, mssql…) gồm class/function xử lý nhiều nghiệp vụ kết nối database, truy vấn liệu, thêm, xóa, sửa liệu… View: chứa giao diện nút bấm, khung nhập, menu, hình ảnh,… có nhiệm vụ hiển thị liệu giúp người dùng tương tác với hệ thống Controller: tiếp nhận yêu cầu xử lý gửi từ người dùng, gồm class/function xử lý nhiều nghiệp vụ logic để lấy liệu thông tin cần thiết nhờ nghiệp vụ lớp Model cung cấp hiển thị liệu cho người dùng nhờ lớp View 1.2 Sự tương tác lớp mơ hình MVC Controller-View: lấy hình ảnh, nút bấm… hiển thị liệu trả từ Controller để người dùng quan sát thao tác Với tương tác chưa có liệu lấy từ lớp Model chịu trách nhiệm hiển thị đơn hình ảnh nút bấm… SVTH 81 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Controller-Model: luồng xử lý controller tiếp nhận yêu cầu tham số dầu vào từ người dùng, controller sử dụng lớp/hàm Model cần thiết để lấy liệu xác View-Model: tương tác khơng cần qua Controller, cần hiển thị liệu khơng phải qua xử lý nghiệp vụ logic 1.3 Ưu nhược điểm mơ hình MVC Ưu điểm: - Các dự án áp dụng mơ hình MVC mà khơng phụ thuộc mơi trường, tảng xây dựng hay ngơn ngữ lập trình - Tạo thành mơ hình chuẩn cho nhiều dự án, dễ dàng tiếp cận - Giúp lập trình viên, hay nhà quản lý hiểu dự án hoạt động sao, dễ dàng quản lý- phát triển dự án - Mơ hình đơn giản, xử lý nghiệp vụ đơn giản, dễ triển khai với dự án nhỏ - Nhóm class/function thành phần riêng ControllerModel-View, nên dễ dàng quản lý- xây dựng- phát triển- vận hành- bảo trì - Tối ưu nay, dễ dàng phân phối chuyển giao công nghệ Nhược điểm: - Yêu cầu chuyên môn cao - Nắm vững kiến thức mơ hình chuẩn - Triển khai với dự án yêu cầu phức tạp SVTH 82 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU PHẦN V: KẾT LUẬN VÀ ĐỀ NGHỊ I Kết luận Ưu điểm: Cơ nắm rõ lý thuyết JSP/Servlet Biết xây dựng website bán hàng trực tuyến, thực quy trình Tìm hiểu kiến thức thiết kế UML, phân tích thiết kế đặc tả yêu cầu phần mềm Tìm hiểu thêm CSS, Bootstrap, AJAX… để hỗ trợ thiết kế giao diện Áp dụng mơ hình MVC vào xây dựng website Hạn chế: Phần kiểm thử phần mềm bị lỗi chưa thạo, xuất lỗi chưa thể kiểm soát Website nhỏ mang tính chất mơ Chức xử lý hóa đơn chưa tối ưu Khả Code quản lý cơng việc hạn chế II Đề nghị hướng phát triển Cần nghiên cứu thêm Framework cho lập trình Web Java: “Struts, Spring, Hibernate, ZK….” Tìm hiểu tích hợp thêm số hình thức tốn trực tuyến khác Cơ sở liệu cần phong phú PHẦN VI: TÀI LIỆU THAM KHẢO TÀI LIỆU TIẾNG VIỆT SVTH 83 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU Trần Thị Thu Huyền: Slide giảng phân tích thiết kế hệ thống Trần Trung Hiếu: Slide giảng môn công nghệ phần mềm, Java SRS_student registration system_hummingbird.pdf (Website: hieutrantrung001100.blogspot.com) SDS_student registration system-hummingbird.pdf (Website: hieutrantrung001100.blogspot.com) Ví dụ UML (Website: hieutrantrung001100.blogspot.com) 6.Website học JSP Servlet: http://o7planning.org http://kenhlaptrinh.net https://www.youtube.com/watch? v=vmdn8odTDk4&list=PLAxmMVqEIFdcH1B1v7y9-vzj6PMekZVzx http://kienthucweb.net/tim-hieu-mo-hinh-mvc.html Học java nghiên cứu lý thuyết JSP, Servlet tại: “Vietjack.com/java” TÀI LIỆU NƯỚC NGOÀI Larne Pekowsky (August 15,2003), JavaServer Pages covers JSP 2.0 Andrew Patzer (2002), JSP examples and best practices Kathy Sierra (August, 2004), Head First Servlets and JSP SVTH 84 LỚP: K59THA BÁO CÁO THỰC TẬP CHUYÊN NGÀNH GVHD: TRẦN TRUNG HIẾU ………., ngày……tháng……năm…… Xác nhận Bộ môn SVTH Xác nhận Giảng viên hướng dẫn 85 Sinh viên thực tập LỚP: K59THA ... làm việc vận dụng kiến thức vào thực tế Qua tập em nhận nhiều điều mẻ bổ ích cho cơng việc sau thân Với đề tài Lập trình web với Java xây dựng ứng dụng , em áp dụng vào để xây dựng website thương... HIẾU B XÂY DỰNG ỨNG DỤNG I ĐẶC TẢ YÊU CẦU PHẦN MỀM 1.1 Giới thiệu chung Ngơn ngữ lập trình Java biết đến từ năm 1991 Là ngôn ngữ lập trình phổ biến với lập trình viên sử dụng để tạo ứng dụng web, ... nghiệp Vì đòi hỏi sản phẩm Website tạo phải đáp ứng yêu cầu cao Lập trình web với Java vấn đề mẻ, phải thừa nhận với rằng, vị trí Java giới lập trình Web ln ngơn ngữ lập trình mạnh phổ biến 2.3.3