1. Trang chủ
  2. » Luận Văn - Báo Cáo

thực hành lập trình ứng dụng java

28 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thực hành lập trình ứng dụng Java
Tác giả Nguyễn Binh Anh, Nguyễn Huy Cường, Trần Đăng
Người hướng dẫn Khoa Nguyễn Xuấn Nhơn
Trường học Đại Học Công Nghệ TP.HCM
Chuyên ngành Lập Trình Ứng Dụng Java
Thể loại Bài tập
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 28
Dung lượng 2,59 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC CÔNG NGHỆ TP.HCM THỰC HÀNH LAP TRINH UNG DUNG JAVA Bién soan: Nguyén Binh Anh Nguyễn Huy Cường Trần Đăng Khoa Nguyễn Xuân Nhân Website: http://www.hutech.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC CÔNG NGHỆ TP.HCM

THỰC HÀNH LAP TRINH UNG DUNG JAVA

Bién soan: Nguyén Binh Anh

Nguyễn Huy Cường

Trần Đăng Khoa

Nguyễn Xuân Nhân Website: http://www.hutech.edu.vn

Trang 2

THUC HANH LẬP TRÌNH UNG DUNG JAVA

An ban 2023

Trang 3

MỤC LỤC

000i ốốốẽẽ I

MỤC LỤC HÌNH ẢNH cu nọ HS BH SH ren IV

BAI 1 BAI KHOT DONG: LẬP TRÌNH JAVA CORE ăn 1

1.1 Giới thiệu và nội dung mục tiêu bài học - Ăn sen sa 1

1.2.1 Khoi tao Project Console co con nhe khe 3 1.2.2 Bài tập 1: Viết chương trình menu cho phép quản lý sách 5 1.2.3 Bài tập 2: Xây dựng chương trình kiểm định xe 9

2.2 HƯỚNG DẪN THIẾT LẬP PHPMYADMIN << << S2 15

2.3 Download Template Spring tử SDrINQ.ÏO -. << c sex, 20

2.5 Yêu cầu hoàn thành bài tập bổ sung sau .- -. - << 35

Trang 4

Hục Lục

3.1.1 Tạo view layout trong Ứng dỤng .-. .c-cccc sesssnsnsn cxn 41

3.3 Thêm View hiển thị . -. c nọ HH n SH ng nh nh ng xu 47 3.4 Xây dựng trang SỬa SáCh cu TH HH HH nh kh nh mm 52

3.6 Khởi động phpMyAdmin - Kết nối CSDL . .<cc +2 56

3.8 Khởi tạo các thành phần giao diện -.-. se se nền x 66

CÂU HỎI ỒN TẬP Q01 ng TK ren 72 BÀI 4 XÂY DỰNG ỨNG DỤNG QUẢN LÝ SÁCH - CHỨC NĂNG THÊM, XOÁ, SỬA 73

5.1 Xây dựng thêm table mới là Ser - cà Sàn se 89

Trang 5

MỤC LỤC II

5.2 Thiết kết giao diện Login và tạo tài khoản mới .-. .- 110

CÂU HỎI ÔNG TẬP L c0 101g TT ky 117 BÀI 6 PHÂN QUYỀN NGƯỜI DÙNG CHO TÀI KHOẢN ĐĂNG NHẬP 118

6.1 Thêm table và dữ liệu vào table Role trong CSDL -.- 119

6.2 Tao thông báo lỗi khi chuyển trang - + < <5 << + sksxszsz 127

6.4 Điêu chỉnh phân quyền tại giao diện Iist.htmil - -.-. . 133

CÂU HỎI ÔNG TẬP L c0 101g TT ky 137 BÀI 7 XÂY DỰNG CÁC TÍNH NĂNG API CƠ BẢN- APPLICATION

7.2 Tao package models chứa các Data transfer obj]ect 140 7,3 Tạo ADICOnTOlÏ€T con SH KH Ki Kì Ki Ki ni km kh nh và 142 7.4 Chỉnh sửa List.html cho phủ hợp - con ke 146 7.5 Yêu cầu hoàn thành bài tập bổ sung sau - - - <~- 149

CÂU HỎI ÔNG TẬP L c0 101g TT ky 150

PHỤ LỤC CÀI ĐẶT MÔI TRƯỜNG VÀ CÔNG CỤ CẦN THIẾT 151 Cài đặt Java JDK (Java Development KỈẨ) - - cv 151 Cài đặt Laragon (Quản lý CSDL MySQL) cài 153

Trang 6

Hục Lục

MỤC LỤC HÌNH ẢNH

Hình 2 Thiết lập cài đặt New prO]€CẲ - nu HH HH nh kh rà 3

Hình 4 Code file main.]jaVa DFO]©CĂ cu nọ HH HH nh nh km vg 4 Hình 5 Run chương trình và xem kết Quả -.-.-. << c sex 4 Hình 6 Sử dụng Tool để Generation: Getter, Setter, Constructor 6 Hình 7 Hàm nhập thông tin một cuốn sách .ccsccsses 7 Hình 8 Hàm xuất thông tin một cuốn sách . . <.<-<c<++ 7 Hình 9 Xây dựng menu trong hàm main .- . < << << <s+ 8 Hình 10 Tìm cuốn sách có tựa đê chứa chữ "Lập trình” .- 9 Hình 11 Code tìm cuốn sách có tựa đề chứa chữ "Lập trình” 12 Hình 12 Sắp xếp xe tải có trọng tải tăng dần c.- se 12 Hình 13 Tìm biển số xe đẹp - -.- c nh nga 12 Hình 14 Khởi động ứng dụng Laraon -.-.« -« e sex sesxs 15 Hình 15 Cấu hình MySQL, Nginx cho Laraon ‹.- - -s+ 16 Hình 16 Cài đặt chọn PhpMyAdmin 1 sen ke rx 16

Hình 18 Quá trình Quick add "Phpmyadmin” - -«- 17 Hình 19 Khởi động dịch vụ PhpMyAdmin - -<c << 18 Hình 20 Giao diện đăng nhập PhpMyAdmin .- -<-«- 18 Hình 21 Giao diện trang Index PhpMyAdmin - - -<-<+ 19

Trang 7

Hinh 22 Open Spring Framework tai SDrInQ.ÌO - -< << 20 Hình 23 Khởi động Quikstart yoU Project .cccecececsceeeeeeeeceeseeseceeeanes 20 Hình 24 Lựa chọn cấu hình cho spring initializr .‹.‹. - 21 Hình 25 thêm các Dependencies trong SprinQ.ÏO - .« -«e-«+ 22 Hinh 26.Giai nén va mé Spring Teamplate bang IntelliJ IDEA 23 Hình 27 Bước cài đặt các Dependencies cần thiết 24 Hình 28 Lựa chọn Project StrUCEUF© cu SH HH HH ng nu 25 Hình 29 Lựa chọn phiên bản JDK -.-. << Sen sx 25 Hình 30 Lựa chọn phiên bản JDK - 20 .csẶSẶ Sàn sex 26 Hình 31 Bổ sung đoạn code cấu hình cho application.propeties 27 Hình 32 Build project chương trÌnh -c se sư, 27 Hình 33 Run chương trình tại file DemoApplication « 28 Hình 34 Giao diện mặc định đăng nhập .- << << 29 0ÌniẮcsTiNäF.sns acc s00 30 Hình 36.Tạo file HomeController.java trong package controller 30 Hình 37.Chỉnh sửa nội dung HomeController.]aVa -c << 31

Hình 44 Thêm 1 file Book.java và thêm các thuộc tính cho book 38 Hình 45 Thêm 1 file BookController.java trong packege controller 39

Trang 8

Hục Lục

Hình 48 Thêm thư viện Bootstrap vào dự án .ccscsecses 41

0Ì] 8SE.s0/I-8/2 20051 43

Hình 51 Tạo view hiển thị danh sách . . . cà 44 Hình 52 Kết quả, trang Book LÍSỂ -. ng x 45 Hình 53 Chỉnh sửa BookController.java cho chức năng Add 45

Hình 54 Tạo giao diện View hiển thị, tạo file add.html 47

Hình 55 Chỉnh sửa đường dẫn các các menu ở trang layout.html 48

Hình 56 Chỉnh sửa nội dung trang chủ tại index.htmI -.- 49

Hình 57 Giao diện trang thêm book .‹.‹ -<- sex sxs 50 Hình 58 Trang danh sách Book sau khi thêm Book mới .- 51

Hình 59 Thêm file edit.html và bổ sung code - - - -. -s- 52 Hình 60 Thêm hàm editbook() vào BookController -. 53

Hình 61 Giao diện Book List với nút Edit - - cc se sà se sex 54 Hình 62 Giao diện trang chỉnh sửa Book - - «sen sa 54 Hình 63 Kết quả sau khi chỉnh sửa thành công, trả vê Book List 55

Hình 64 Thêm hàm tên deleteBook() bên trong file BookController.java 55

Hình 65.Giao diện delete BOOkK SH SH ng nh 56 Hình 66 Khởi động phpMyAdmin ch ng 57 Hình 67 Tạo mới CSDL trong phpMyAdmin - .e<cc<esx 58 Hình 68 Đặt tên cho CSDL trong phpMyAdmin mới và tạo 58

Hình 69 Tạo 2 file Book.java và Category.java trong thư mục entity 59

Trang 9

Tạo thêm file BookController.]jaVa .-ccc ca 65 IES8iI-E: 200000 0 66 0000) s00 “-“-“ỒẦẦẢ 67 Tạo file list.html hiển thị danh sách Books -. . - 68 Tạo thêm file HomeController.]AVaA cv sex 69

Thêm dữ liệu cho bảng Category vn ke, 71 Thêm dữ liệu cho bảng BOok -.- cà nnsnsx 71 Truy cập trang danh sách .-.-c ke ksx, 71 Tạo thêm file Category S@rVÍC©S cà 74 Chỉnh sửa nội dung trong file BookController.JaVa 75 Thêm nội dung vào file add.hmI nh na 77 GiGO GIEN AU BOOK cccccccccccecccecccecececeseaeseseesesuseaeseanstassseneneas 78 Danh sách Book sau khi Add Book mới .- <««<<+ 78 Thêm ràng buộc vào file DOITI.XIHI co vn kì nh 79 Cập nhật IAV€II cọ ng HH ky n kg nh ng nh kg nhu 79 Reload prOJ€CE ẢAV©I1 ch nu ng 80

Trang 10

VIII MUC LUC

Hình 94 Kiểm tra tính hợp lệ của một đối tượng "Category” 80 Hình 95 Thêm các annotation để ràng buộc việc nhập liệu 83

Hình 97 Kiểm tra ràng buUỘC - -. . -ccnQ ng ng nh xa 85 Hình 98 Thực hiện chức năng Edit và Delet© c «sex 86 Hình 99 Tạo 2 class User trong thư mục entitÿ cà 89 Hình 100 Thêm nội dụng vào file JSer.]AVA co nen sec 90 Hình 101 Thông báo lỗi chưa định nghĩa lớp ValidUsername 91 Hình 102 Thêm nội dụng cho class ValidUsername.]java 92 Hình 103 Tạo thêm class VaildUsernameValidator.java 95

Hình 105 Thêm thuộc tính user vào Book .ccscscse sen sx 95

Hinh 107 ValidUserIdValidator.java tai thư mục validator 97 Hình 108 Kiểm tra database sau khi thém table User -.- - 97

Hình 109 Mở Designer và xem kết Quả .- - - << << sex 98 Hình 110 Sơ đồ Designer của database bookstor «- 98

Hình 113 Giải thích authenticated() là gìÌ? - sen nen se 103 Hình 114 tạo file CustomUserDetailService.]aVA ke sen sec 104 Hình 115 Tạo file CustomUserDetail.]aVa - on sa 105

Hình 117 implement các phương thức của UserDetails 106

Trang 11

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

MUC LUC

chỉnh sửa các phương thức CustomUserDetail.java 108

chỉnh sửa các phương thức CustomUserDetail.java 109

Thêm 2 file login.html và register.htiml -.‹.-.- 110

Thêm nội dung cho file login.html - ‹.-.« - 111

Thêm nội dung cho file register.html - -.-. 112

Chỉnh sửa lại file layout.htmll - <- se << sec 113 Giao diện web chưa đãng nhập .-.-.-. -. - 114

Tạo tài khoản mới - các nh kg 114 Kiểm tra valid di liệu khi không điền dữ liệu - 115

đăng ký thử tài khoản mẫu - che 115 đăng nhập bằng tài khoản vừa tạo . 116

đăng nhập thành công, xuất hiện nút Logout 116

Kiểm tra thông tin tài khoản đã có trong Database 116

tạo thêm claSS rOl@ . .c Sen kg ng 119 Bổ sung thêm đoạn code nối user và role - 120

Database sẽ xuất table Role và user_ role - 121

Thêm dữ liệu vào table role -.-.«- sàn sàn 122 XOM id CUA USCL cee eee cece ee eee ee eee teen a eee tesa eens eee ate eeeies 122 dién id cua user va role vao bang user_role 122

dữ liệu bảng user_ role vừa set quyềễn 123

khai báo interface IroleRe@pDOSItOFY se cà sen sex 124 Bổ sung thêm các phương thức cho IuserRepository 125

Bổ sung đoạn code UserService.java để thêm quyêền 126

Trang 12

Hục Lục

Hình 142

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

Hình

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

Thư mục và file 404.html được tạo - -.- + 127

file 404.htmil được tạo ra trong thư mục errOor 128

Cấu hình lại file application.propertieS sec sec 129 Tạo file CustomErrorController.]ava - 130

Thay đổi các phương thức trong CustomUserDetail 131

truyền userRepository vào CustomUserDetail 132

phân quyên theo admin và uSer - c.c c2 132 tiến hành phân quyên truy cập resource tại SecurityFilterChain 133 phân quyền tại file list.htmi -.- < << ss2 134 phân quyền tại file list.htmi -.- < << ss2 135 Giao diện xem với quyên ADMIN c.c sec 136 Giao diện xem với quyên USER - cà sec 136 Thêm quyên authorize cho APT c ccsc+c 139 Tạo thêm BookDtO cọ HH ng HH nh nh kg nu 141 Chị định Restful Api và thiết lập CORS 142

ApiController trong thư mục controller thêm các method 143

Gọi api lấy danh sách booksS - -c.s.scccs* 144 Goi api lady thông tin sách dựa vào id c.c 144 Thêm extend xem Json trên trình duyệt 145

Tuy chỉnh lại giao diện Iist.html cho phù hợp 146

Cac hàm lấy danh sách books và Delete book 147

Giao diện hiểu thị danh sách Books bằng API 148

Giao diện xoá sách bằng API co co se 148 Cài đặt Java JDK X64 Installer .-. . -.-: 151

Trang 13

167 Successfully installed Java JDK - - - 152

168 Download Edition Laragon - full «sex 153

170 Setup Laragon runs extremely cu ns 154

171 Ready to Install Laragon' cu xế 155

172 Completing the Laragon SetfUD cu nh xa 155

173 Download IntelliJ IDEA Community Edition 156 174.Next Setup IntelliD TDEA -. eee eee eee eee eens 157

175 Installation Options IntelliJ TDEA cà sec 157

176 Completing Intelli IDEA Community 158

177 Intelli TIDEA use agreement cu 158

178 Giao diện bắt đầu của Intelli IDEAA - .<¿ 159

Trang 14

NỘI DUNG MÔN HỌC

-_ Bài 01: BÀI KHỞI ĐỘNG: LẬP TRÌNH JAVA CORE

- Bài 02: LÀM QUEN VỚI SPRING FRAMEWORK

— Bai 03: VIET CHUONG TRINH QUAN LY SACH - KET NOI CSDL

-_ Bài 04: XÂY DỰNG ỨNG DỤNG QUẢN LÝ SÁCH - CHỨC NĂNG THÊM, XOÁ, SỬA -_ Bài 05: XÂY DỰNG CHỨC NĂNG TẠO TÀI KHOẢN VÀ ĐĂNG NHẬP CHO NGƯỜI DÙNG

— Bai 06: PHAN QUYEN NGƯỜI DÙNG CHO TÀI KHOẢN ĐĂNG NHẬP

— Bai 07: XAY DUNG CAC TINH NANG API CO BAN- APPLICATION

PROGRAMMING INTERFACE

KIEN THUC TIEN DE

Môn học thực hành lập trình web đòi hỏi sinh viên có nên tảng về kỹ thuật lập trình, lập trình hướng đối tượng, tiếp xúc nhiều với internet

YEU CAU MON HỌC

Người học cần đi học đầy đủ, đọc các nội dung sẽ được học trước khi đến lớp, làm các bài tập về nhà và đảm bảo thời gian tự học ở nhà

CACH TIEP NHAN NOI DUNG MON HOC

Để học tốt môn này, sinh viên cần ôn tập các bài đã học, trả lời các câu hỏi

và làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học

Trang 15

HƯỚNG DẪN XIII Đối với mỗi bài học, sinh viên đọc trước mục tiêu và tóm tắt bài học, sau đó

đọc nội dung bài học Kết thúc mỗi ý của bài học, sinh viên trả lời câu hỏi ôn tập và kết thúc toàn bộ bài học, sinh viên làm các bài tập

PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC

Môn học được đánh giá như sau:

—_ Điểm thực hành (100%): Hình thức thi thực hành, phù hợp với quy chế đào tạo

và tình hình thực tế tại nơi tổ chưức học tập.

Trang 16

HƯỚNG DẪN

BÀI 1 BÀI KHỞI ĐỘNG: LẬP

TRINH JAVA CORE

1.1 Giới thiệu và nội dung mục tiêu bài học

* Hướng dẫn sinh viên ôn tập ngôn ngữ lập trình Java: qua việc viết các ứng dụng

Java trong Eclipse / IntelliJ (community)

v Xây dựng các lớp, tạo đối tượng, truy xuất các phương thức,

Tìm hiểu về sử dụng thư viện ở các phiên bản trước JDK 20

Lambda Expressions & phương thức foreach

Một biểu thức lambda có: các tham số đầu vào (nếu có) ở phía bên trái của toán tử lambda > và đặt biểu thức hoặc khối câu lệnh ở phía bên phải của toán tử lambda

Ví dụ: biểu thức lambda (a, b) > a + b chỉ định rằng biểu thức lambda nhận hai đối số a và b và trả về tổng của a+b

Phương thức tham chiếu (Method References): cho phép truyền một tham chiếu của một method hoặc constructor thông qua việc sử dụng từ khóa ::

Phương thức tham chiếu là cú pháp viết tắt của biểu thức Lambda để gọi phương thức

Ví dụ: nếu biểu thức Lamda được viết như sau: p-> System.out.printin(p) Viết lại theo cách của Method references như sau : System.out::printin

Ngày đăng: 20/08/2024, 15:09

w