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

Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java

62 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 đề Hệ thống quản lý việc làm xây dựng bằng Java
Tác giả Phạm Anh Phát, Lê Hồng Phúc
Người hướng dẫn Thạc Sĩ Dương Hữu Thành
Trường học Trường Đại học Mở Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án ngành
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 62
Dung lượng 2,25 MB
File đính kèm tu van viec lam.rar (2 MB)

Nội dung

Hệ thống quản lý việc làm được tạo ra nhằm mục đích quản lý những công việc được tuyển dụng, ứng tuyển một cách dễ sử dụng, dễ quản lý . Hệ thống sẽ bao gồm các chức năng như đăng tin tuyển dụng, tìm kiếm việc làm theo nhiều tiêu chí, ứng tuyển, xem thống kê qua từng năm, xác nhận những nhà tuyển dụng. Nhà tuyển dụng cũng có thể xem được những đánh giá mà ứng viên đã bình luận trước đó. Người dùng trong quyền nhà tuyển dụng có thể sử dụng chức năng đăng tin tuyển dụng bằng cách điền thông tin ứng tuyển lên và những yêu cầu trong việc tuyển dụng đó. Nhà tuyển dụng còn có thể xem thông tin của các ứng viên khác. Khi đăng ký người dùng thì sẽ điền đầy đủ thông tin hồ sơ của mình. Sau khi đăng ký người dùng trong quyền ứng viên có thể cập nhật hồ sơ thông tin cá nhân của mình, tìm kiếm việc làm theo nhiều thiêu chí, tìm kiếm tên công việc muốn ứng tuyển và nộp đơn ứng tuyển. Ngoài ra, người dùng ứng viên còn có thể xem và đánh giá các nhà tuyển dụng mà họ muốn. Ứng viên khi vào sẽ thấy các công việc được hiển thị theo ngày mới nhất của hiện tại. Người dùng trong quyền Quản trị có quyền xem biểu đồ thống kê các đơn ứng tuyển qua các năm theo từng ngành nghề mà ứng viên đã chọn hoặc xác thực quyền của nhà tuyển dụng để nhà tuyển dụng có thể đăng bài tuyển dụng lên trang tìm việc làm. Đồ án này sẽ giúp cho việc quản lý việc làm trở nên hiệu quả hơn, tiết kiệm thời gian và tăng sự tương tác giữa Quản trị và nhà tuyển dụng,ứng viên.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH

<PHẠM ANH PHÁT>

<HỆ THỐNG QUẢN LÝ VIỆC LÀM>

ĐỒ ÁN NGÀNH NGÀNH <CÔNG NGHỆ THÔNG TIN>

TP HỒ CHÍ MINH, <2023>

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH

Giảng viên hướng dẫn: <Dương Hữu Thành>

Trang 3

LỜI CẢM ƠN

Trong quá trình thực hiện môn học đồ án này, em đã nhận được rất nhiều sự giúp đỡ

từ thầy cô trong khoa Công nghệ thông tin của Trường Đại học Mở thành phố Hồ ChíMinh Em xin giành lời cảm ơn chân thành nhất đến với giảng viên hướng dẫn Thạc SĩDương Hữu Thành đã giành thời gian để giải đáp những thắc mắc, vướng mắc trongbài tập của em Ngoài ra, thầy còn hết mình hỗ trợ em trong việc tìm kiếm, khắc phục,sửa chữa những lỗi lầm và vấn đề mà em mắc phải trong lúc thực hiện đồ án Thầy còndạy cho em những kỹ năng cần phải có khi trở thành một lập trình viên khi đi làm Emcũng xin giành lời cảm ơn này đến với các thầy cô trong khoa Công nghệ thông tin đãcho chúng em một môn học có thể thử sức với bản thân mình Cuối cùng, em xin cảm

ơn đến Trường Đại học Mở thành phố Hồ Chí Minh đã cho em một môi trường tốt,đầy đủ cơ sở vật chất và nhiều môn học thú vị cho em tiếp thu nhiều kiến thức mới,giúp cho chúng em dễ dàng trong việc suy nghĩ và sáng tạo trong suốt quá trình họctập đến nay

During the period of doing project subject, I received a lot of helpful and usefulknowledge from teaching staff in Information Technology faculty of Open University.Especially, I want to express my sincere thanks to my faculty advisor Dương HữuThành because teacher Thành always took a lot of his time to help his students tofigure out the problems and taught them the way to repair it In addition, teacherThành always listen and answer the student’s question and indicate the suitable way tofor his student’s main major I also give this sincere thanks to the teaching staff infaculty Information Technology for creating a subject that helps me cultivate myexperience and develop my competence Finally, I want to thank Open Universitywhere I have a wonderful learning environment and have full facilities Furthermore,Open University also have a lot of subject that very interesting, it’s help me absorb alot new knowledge and feel comfortable in all the period that I’ve learned

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 5

TÓM TẮT ĐỐ ÁN NGÀNH

Hệ thống quản lý việc làm được tạo ra nhằm mục đích quản lý những công việc đượctuyển dụng, ứng tuyển một cách dễ sử dụng, dễ quản lý Hệ thống sẽ bao gồm cácchức năng như đăng tin tuyển dụng, tìm kiếm việc làm theo nhiều tiêu chí, ứng tuyển,xem thống kê qua từng năm, xác nhận những nhà tuyển dụng Nhà tuyển dụng cũng cóthể xem được những đánh giá mà ứng viên đã bình luận trước đó

Người dùng trong quyền nhà tuyển dụng có thể sử dụng chức năng đăng tin tuyểndụng bằng cách điền thông tin ứng tuyển lên và những yêu cầu trong việc tuyển dụng

đó Nhà tuyển dụng còn có thể xem thông tin của các ứng viên khác

Khi đăng ký người dùng thì sẽ điền đầy đủ thông tin hồ sơ của mình Sau khi đăng kýngười dùng trong quyền ứng viên có thể cập nhật hồ sơ thông tin cá nhân của mình,tìm kiếm việc làm theo nhiều thiêu chí, tìm kiếm tên công việc muốn ứng tuyển và nộpđơn ứng tuyển Ngoài ra, người dùng ứng viên còn có thể xem và đánh giá các nhàtuyển dụng mà họ muốn Ứng viên khi vào sẽ thấy các công việc được hiển thị theongày mới nhất của hiện tại

Người dùng trong quyền Quản trị có quyền xem biểu đồ thống kê các đơn ứng tuyểnqua các năm theo từng ngành nghề mà ứng viên đã chọn hoặc xác thực quyền của nhàtuyển dụng để nhà tuyển dụng có thể đăng bài tuyển dụng lên trang tìm việc làm

Đồ án này sẽ giúp cho việc quản lý việc làm trở nên hiệu quả hơn, tiết kiệm thời gian

và tăng sự tương tác giữa Quản trị và nhà tuyển dụng,ứng viên

Trang 6

Hệ thống quản lý việc làm của chúng em được tạo ra sẽ phù hợp với các ứng viên nhưhọc sinh, sinh viên đang có nhu cầu tìm kiếm việc làm để thực tập và các ứng viênđang trong giai đoạn tìm kiếm việc làm mới cho bản thân

Hệ thống khi phát triển sẽ có các chức năng cơ bản như một trang Web việc làm thậtnhư việc tìm kiếm việc làm theo các tiêu chí, xem thông tin chi tiết từng công việctuyển dụng, nộp đơn ứng tuyển và cũng như tạo File CV khi ứng viên cần Giúp nhàtuyển dụng tạo cơ hội việc làm cho các ứng viên bằng cách đăng tin tuyển dụng Quảntrị viên thì quan sát, kiểm tra về thông tin của các nhà tuyển dụng đã đăng ký trêntrang Web từ đó có thể xác minh được nhà tuyển dụng để cho phép họ đăng tin tuyểndụng Quản trị còn có thể xuất báo cáo thống kê dưới dạng Excel hoặc PDF

Hệ thống đã có thể thành công xử lý logic các chức năng cơ bản cũng như phụ trợ kểtrên Tuy vậy nhưng hệ thống sẽ cần phải cải tiến thêm về mặt logic vì đôi khi hệthống xử lý lỗi khá thô sơ và cần phải chi tiết về nhiều trường hợp khác nhau cũng nhưthiếu logic về một vài phần nhỏ bên trong

Trang 7

MỤC LỤ

LỜI CẢM ƠN 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

TÓM TẮT ĐỐ ÁN NGÀNH 3

ABSTRACT 4

DANH MỤC TỪ VIẾT TẮT 7

DANH MỤC HÌNH VẼ 8

DANH MỤC BẢNG 11

MỞ ĐẦU 12

Chương 1 GIỚI THIỆU ĐỀ TÀI 13

1.1 Giới thiệu 13

1.2 Mục tiêu đề tài 13

1.2.1 Mục tiêu 13

1.2.2 Đối tượng nghiên cứu 13

1.3 Lý do chọn đề tài 13

1.4 Bố cục báo cáo 14

Chương 2 CƠ SỞ LÝ THUYẾT 15

2.1 Spring Boot 15

2.1.1 Tổng quan về Spring Framework 15

2.1.2 Kiến trúc Spring Framework 16

2.1.3 Tổng quan về Spring Boot 17

2.1.4 Kiến trúc về Spring Boot 19

2.1.5 Hibernate 20

2.1.6 Tổng quan về Spring MVC 23

2.1.7 Các thành phần cấu hình khác 28

Trang 8

2.2 ReactJS 28

2.2.1 Giới thiệu ReactJS 28

2.2.2 Kết hợp ReactJS với Java Spring Boot 31

Chương 3 HỆ THỐNG QUẢN LÝ VIỆC LÀM 33

3.1 Giới thiệu 33

3.2 Kiến trúc hệ thống 33

3.3 Phân tích thiết kế 34

3.3.1 Use Case 34

3.3.2 Database 37

3.4 Các nghiệp vụ đã phát triển 38

3.4.1 Cập nhật thông tin 38

3.4.2 Tìm kiếm và đánh giá nhà tuyển dụng 40

3.4.3 Tìm kiếm việc theo nhiều tiêu chí 43

3.4.4 Thống kê 46

3.4.5 Xuất Excel 48

3.4.6 Tạo File CV 49

3.4.7 Thêm đơn ứng tuyển 50

3.4.8 Lưu ID công việc để thêm Application 54

3.4.9 Xoá và xem đơn ứng tuyển Application 55

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57

4.1 Kết luận 57

4.2 Hạn chế và khó khăn 57

4.3 Hướng phát triển 57

TÀI LIỆU THAM KHẢO 59

PHỤ LỤC 60

Trang 9

DANH MỤC TỪ VIẾT TẮT

IoC - Inversion of Control - Kỹ thuật mốc nối

DI – Dependency Injection – Kỹ thuật bóc tách class

AOP – Aspect-Oriented Programming – Lập trình hướng khía cạnh

JDBC- Java Database Connectivity – Kết nối cơ sở dữ liệu Java

ORM – Object-Relational-Mapping – Ánh xạ đối tượng

OXM – Object-XML Mapping – Ánh xạ XML

JPA – Java Persistence API- Giao diện Lập trình ứng dụng lưu trữ Java

JMS- Java Message Service – Dịch vụ tin nhắn

DOM- Document Object Model- Đại diện cho giao diện người dùng

Trang 10

DANH MỤC HÌNH VẼ

Hình 2.1.1.1 Minh hoạ IoC 15

Hình 2.1.1.2 Annotation @Repository 16

Hình 2.1.2.1 Kiến trúc Spring Framework Runtime 16

Hình 2.1.2.2 Cấu hình context:annotation-config 17

Hình 2.1.3.1 Công ty Pivotal Software 18

Hình 2.1.3.2 Annotation @Bean 18

Hình 2.1.3.3 Server Tomcat 19

Hình 2.1.4.1 Kiến trúc Spring Boot 19

Hình 2.1.5.1 Kết nối database 20

Hình 2.1.5.2 Class persistence từ Database 20

Hình 2.1.5.3 Kết quả từ persistence 21

Hình 2.1.5.4 Class trong Persistence 21

Hình 2.1.5.5 Cấu trúc Hibernate 22

Hình 2.1.5.6 Attribute Hibernate 22

Hình 2.1.5.7 Minh hoạ Hibernate 22

Hình 2.1.6.1 Thư viện JSTL - Spring Security 23

Hình 2.1.6.2 Thẻ TagLib thông dụng 23

Hình 2.1.6.3 Load jsp 24

Hình 2.1.6.4 @RequestParam 24

Hình 2.1.6.5 @PathVariable 24

Hình 2.1.6.6 Nhận PathVariable id 25

Hình 2.1.6.7 Kết quả PathVariable 25

Hình 2.1.6.8 Phần chung 26

Hình 2.1.6.9 Khai báo 26

Hình 2.1.6.10 File Properties 27

Hình 2.1.6.11 Khai báo Properties 27

Hình 2.1.6.12 addAttribute 27

Hình 2.1.6.13 Sử dụng Model 28

Hình 2.2.1.1 HTML và Javascrip 29

Hình 2.2.1.2 Cấu trúc Project ReactJS 29

Trang 11

Hình 2.2.1.4 Import Bootstrap 30

Hình 2.2.1.5 Thẻ Bootstrap Spinner 30

Hình 2.2.2.1 CrossOrigin 31

Hình 2.2.2.2 Endpoints API 31

Hình 2.2.2.3 Sử dụng Endpoint 32

Hình 2.2.2.4 Sử dụng trong HTML 32

Hình 2.2.2.1 Kiến trúc hệ thống quản lý việc làm 33

Hình 3.3.1.1 Lược đồ Use Case 34

Hình 3.3.2.1 Cơ sở dữ liệu 37

Hình 3.4.1.1 Menu Hồ sơ 38

Hình 3.4.1.2 Nút thông tin 39

Hình 3.4.1.3 Lưu thông tin 39

Hình 3.4.1.4 Cập nhật dữ liệu 39

Hình 3.4.1.5 Hàm lấy thông tin 39

Hình 3.4.1.6 Hàm getUserById 40

Hình 3.4.2.1 Menu Đánh giá 40

Hình 3.4.2.2 Xem nhà tuyển dụng 40

Hình 3.4.2.3 Xem đánh giá 41

Hình 3.4.2.4 Kết quả đánh giá 41

Hình 3.4.2.5 Hàm ReivewDetail 42

Hình 3.4.2.6 Hàm lấy bình luận 42

Hình 3.4.2.7 Hàm thêm bình luận 42

Hình 3.4.2.8 Thêm vào Database 43

Hình 3.4.2.9 Thêm bình luận 43

Hình 3.4.3.1 Tìm theo tiêu chí 44

Hình 3.4.3.2 Tìm theo 2 tiêu chí 44

Hình 3.4.3.3 Controller tìm kiếm 44

Hình 3.4.3.4 Hàm getJob 45

Hình 3.4.3.5 Tiêu chí cityId 46

Hình 3.4.4.1 Thống kê 46

Hình 3.4.4.2 Biểu đồ thống kê 46

Hình 3.4.4.3 Ajax&ChartJS 47

Trang 12

Hình 3.4.4.4 Lấy dữ liệu thống kê 47

Hình 3.4.5.1 Thư viện Excel Poi 48

Hình 3.4.5.2 Tạo thuộc tính Excel 48

Hình 3.4.5.3 Kết quả Excel 49

Hình 3.4.6.1 Thư viện Itext 49

Hình 3.4.6.2 Thuộc tính PDF 49

Hình 3.4.6.3 Controller CV 50

Hình 3.4.6.4 Kết quả CV 50

Hình 3.4.7.1 Giao diện nút 51

Hình 3.4.7.2 Ứng tuyển 51

Hình 3.4.7.3 Thông tin nộp đơn 51

Hình 3.4.7.4 Kết quả nộp trùng công việc 51

Hình 3.4.7.5 Hàm nộp đơn Java 52

Hình 3.4.7.6 Hàm nộp đơn Reactjs 52

Hình 3.4.7.7 Biến application React 53

Hình 3.4.7.8 Endpoint AddApplication 53

Hình 3.4.7.9 Truyền tham số 53

Hình 3.4.7.10 Truyền dữ liệu Json 54

Hình 3.4.7.11 Kết quả Application Reactjs 54

Hình 3.4.8.1 Endpoint JobID 54

Hình 3.4.8.2 Lưu JobID vào Cookie 55

Hình 3.4.9.1 Xoá và xem Application 55

Hình 3.4.9.2 Ajax deleteApp 56

Hình 3.4.9.3 Hàm xoá 56

Trang 13

DANH MỤC BẢNG

Bảng 2.1 phân biệt RequestParam và PathVariable 23

Trang 14

MỞ ĐẦU

Trong cuộc sống hiện đại ngày nay, ngày càng có nhiều doanh nghiệp thì đi cùng với

đó chính là sự gia tăng nguồn nhân lực của mỗi công ty của doanh nghiệp đó nhưng vìcông nghệ cũng phát triển theo thời đại nên cũng có rất nhiều trang Website giả mạomọc lên thu hút nhiều bạn trẻ học sinh, sinh viên tìm kiếm việc làm để trang trải cuộcsống hoặc mới ra trường để tìm kiếm công việc phù hợp với ngành nghề của mình Vìvậy việc tạo ra một trang Web quản lý việc làm để phục vụ cho nhu cầu ứng tuyển củacác nhà tuyển dụng cũng như nhu cầu tìm kiếm và ứng tuyển việc làm của các bạnsinh viên khi vừa mới ra trường Website sẽ cung cấp cho các bạn một nơi có thể tìmthấy được việc làm ưng ý và cũng như cung cấp thông tin của các nhà tuyển dụng đểcác bạn có thể đảm bảo chất lượng cũng như tính chân thật để không bị lừa đảo dẫnđến những hậu quả không mong muốn Trong trang Web này các bạn ngoài việc xemthông tin của nhà tuyển dụng đó, các bạn còn có thể xem được những đánh giá trước

đó về nhà tuyển dụng mà các bạn đang ứng tuyển để tìm hiểu xem công ty đó, nhàtuyển dụng đó ra sao và có thông tin của nhà tuyển dụng để dễ tra cứu hơn

Đối với các nhà tuyển dụng thì khi đăng tin tuyển dụng thì đặc biệt cần phải có sựchấp nhận của quản trị viên để xác nhận thông tin của nhà tuyển dụng đó, quản trịviên sẽ xem xét thông tin nhà tuyển dụng đang đăng ký và kiểm trả thông tin thật kỹcàng trước khi chấp thuận cho nhà tuyển dụng đó đăng tin tuyển ứng viên Việc nàynhằm tạo kết nối chặt chẽ giữa sinh viên và các nhà tuyển dụng, tránh trường hợp gặpcác nhà tuyển dụng lừa đảo hoặc đa cấp lừa sinh viên nên việc này giúp cho các bạnhọc sinh, sinh viên có thể bớt một phần lo lắng trong việc ứng tuyển không bị lừa mấttiền hoặc hậu quả khác

Website quản lý việc làm có nhiều công dụng và có thể dễ dàng mở rộng trong tươnglai Tuy hiện nay cũng có một số trang Web tìm kiếm việc làm nổi như TopCV, Chợtốt… nhưng chúng em sẽ cố gắng tạo nên một trang Web quản lý việc làm hoàn thiện

dễ sử dụng

Trang 15

Chương 1 GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

Hệ thống quản lý việc làm là một phần mềm được thiết kế để phát triển và hỗ trợ cácứng viên dễ dàng tìm được các việc phù hợp với bản thân Hệ thống còn là một môitrường tạo kết nối giữa ứng viên và các nhà tuyển dụng với nhau Hệ thống sẽ cungcấp một giao diện trực quan từ đó người sử dụng có thể dễ dàng hiểu và sử dụng đượcmột cách linh hoạt Ngoài ra nó còn cung cấp nhưng tính năng hỗ trợ đi kèm trong khi

sử dụng như việc xem các đánh giá về các nhà tuyển dụng, cập nhật thông tin hồ sơ,đưa lên những tin tuyển dụng mới để ứng viên có thể nắm bắt được những cơ hội mớinhất cho bản thân hoặc tìm kiếm nâng cao theo nhiều tiêu chí giúp việc tìm kiếm tintuyển dụng trở nên nhanh chóng hơn, phù hợp với nhiều nhu cầu hơn

1.2 Mục tiêu đề tài

1.2.1 Mục tiêu

Mục tiêu chính của đề tài quản lý việc làm này khi em xây dựng nên đó chính là giúpcho những người tìm việc (ứng viên) có thể tương tác với các công việc của nhà tuyểndụng một cách dễ hiểu và thuận lợi nhất Hệ thống cũng sẽ cung cấp chức năng xácnhận quyền của nhà tuyển dụng để tăng sự tương tác giữa quản trị viên và nhà tuyểndụng Ngoài ra hệ thống còn có chức năng tìm kiếm, đăng tin tuyển dụng để tăng khảnăng kết nối giữa người tuyển dụng và ứng viên

1.2.2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài nghiên cứu việc làm bao gồm các cá nhân, hoặc cáccông ty, các doanh nghiệp có liên quan đến việc cung cấp và tìm kiếm nhân lực và việclàm Đó có thể là người tìm việc như học sinh, sinh viên… muốn tìm kiếm công việc

để trang trải cuộc sống hoặc nhà tuyển dụng, trung tâm việc làm, cơ quan, tổ chức đàotạo việc làm

1.3 Lý do chọn đề tài

Trong nhu cầu thực tế hiện nay, tìm kiếm việc làm có tầm ảnh hưởng rất lớn đếnnhững thế hệ trẻ hiện này vì số lượng các bạn trẻ ngày càng tăng nên nhu cầu tìm kiếmviệc làm cũng tăng cao theo đó Đặc biệt là các bạn học sinh, sinh viên hiện ở các vùng

Trang 16

xa lại càng không biết đâu là trang Website lừa đảo hoặc đâu là trang Website tìmkiếm việc làm chính chủ Nhiều học sinh, sinh viên đã hoặc từng bị lừa vào nhưngtrang Website lừa đảo, đa cấp khiến cho không ít những sinh viên ấy rơi vào tình trạngkhó khăn trong việc trang trải cuộc sống Từ đó chúng em có suy nghĩ tạo ra mộtWebsite tạo việc làm có thể đăng những bài tuyển dụng đã được người quản lý xácthực những nhà tuyển dụng một cách kỹ càng nhất để không xuất hiện những nhàtuyển dụng ảo hoặc đa cấp.

Ngoài ra còn do thị trường việc làm phong phú ngày càng có nhiều loại công việc phùhợp cho nhiều người, đặc biệt là trong thị trường hiện nay thì nổi nhất đó chính làngành Công nghệ thông tin vì ngành nó có thể có nhiều hướng đi cho sinh viên MộtWebsite quản lý việc làm thì có thể thu hút được nhiều người dùng và nhà tuyển dụngbiết đến để đăng bài, ứng tuyển tạo cơ hội kinh doanh giữa doanh nghiệp và ứng viên,tăng cao năng lực bản thân ứng viên Việc xây dựng Website quản lý việc làm còn cótính dễ mở rộng, tạo ra những chức năng tiện ích cho người dùng, có thể mở rộng ra vềnhững mục đích khác nhau liên quan đến việc làm

Xây dựng một Website quản lý việc làm giúp cho em có thêm kinh nghiệm và rènluyện thêm về kỹ năng lập trình của chính bản thân mình, hiểu biết và học hỏi thêmnhiều điều từ việc tham khảo các Website quản lý việc làm khác để nâng cao kiến thứcvốn có của mình Hiểu và khác phục được những vấn đề trong khi phát triển sản phẩm,rút kinh nghiệm từ những sai sót đó để bù đắp vào sau này

1.4 Bố cục báo cáo

Bố cục được chia thành 3 phần Phần 1 giới thiệu về các loại ngôn ngữ mà chúng em

sử dụng và áp dụng vào môn Đồ án ngành như Spring Boot, ReactJS Phần tiếp theo sẽgiới thiệu về những chức năng của hệ thống, đồng thời giới thiệu về kiến trúc và quátrình phân tích hệ thống quản lý việc làm Cuối cùng là sự kết luận về hệ thống củabản thân và nêu ra những hướng đi và phát triển trong tương lai

Trang 17

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 Spring Boot

Trong quá trình phát triển Website quản lý việc làm, chúng em sử dụng ngôn ngữchính cho trang Website đó là Spring Boot vì ngôn ngữ này khá tiện lợi trong việc sửdụng qua lại giữa các lớp (class) persistence và Controller, Service qua Hibernate

2.1.1 Tổng quan về Spring Framework

Spring Framework là một loại Framework được phát triển trên ứng dụng Web Java rấtlinh hoạt và mạnh mẽ, dễ sử dụng Vì vậy việc phát triển ứng dụng được đơn giản hoá,

nó còn cung cấp các đặc tính, cung cấp các cấu hình mặc định và các tính năng diđộng Khi sử dụng Framework thì sẽ giúp cho chương trình giảm bớt những mã nguồnphức tạp, giúp chương trình xử lý và bắt đầu nhanh hơn vì Spring Framework là mộtloại framework trong suốt, không cần phải cấu hình và cài đặt quá nhiều thông số màchỉ cần tập trung vào logic của mã nguồn

Đặc biệt trong Spring Framework còn có kỹ thuật mốc nối IoC (Inversion of Control)giúp cho chương trình dễ mở rộng, dễ khai báo các biến từ các gói hoặc các lớp khácnhau Ví dụ sau về việc mốc nối từ các class từ trong Package Service qua bên lớpindexController trong Package Controller chỉ bằng các Annotation @Autowire

Hình 2.1.1.1 Minh hoạ IoCNgoài ra, Spring Framework còn cung cấp cho chúng ta các Annotation, là cách đểgắn kết với metadata vào trong mã nguồn Java Annotation cung cấp dịch vụ phổ biểncho trình duyệt, phân biệt các tác vụ với nhau ví dụ như các Annotation thường gặpnhư @Controller để biểu thị cho lớp đó là một lớp Spring Controller, là lớp có trách

Trang 18

nhiệm xử lý các yêu cầu từ HTTP và tương tác với người dùng, @Service biểu thị cholớp Service(lớp tác vụ) Spring Service trung gian thực hiện kết nối giữa lớpRepository và Controller xử lý logic mã nguồn Cuối cùng là @Repository biểu thị choSpring Repository, là lớp tương tác với dữ liệu và thực hiện các chức năngCRUD(Create, Read, Update, Deletete) dữ liệu.

Hình 2.1.1.2 Annotation @Repository

2.1.2 Kiến trúc Spring Framework

Kiến trúc của Spring Framework gồm 3 thành phần chính là Data Access/Intergraiton,Web và Core Container Ngoài 3 thành phần chính trên còn có AOP (Aspect -OrientedProgramming) là lập trình hướng khía cạnh giúp và bổ trợ cho lập trình hướng đốitượng trong Java

Hình 2.1.2.3 Kiến trúc Spring Framework Runtime

Trang 19

Data Access/intergration là nhóm bao gồm JDBC, ORM, OXM, JMS là những kỹthuật cung cấp giao tiếp với Database ví dụ như ORM sẽ cung cấp cho chúng ta JPA

và Hibernate để tương tác với các lớp persistence trong Java Trong ví dụ Hibernatedưới đây, câu lệnh query đã “FROM City” là lấy đối tượng City từ trong lớp POJOchứ không phải lấy từ bảng City trong cơ sở dữ liệu

Phần quan trọng nhất của kiến trúc Spring Framework đó chính là Core Container.Thành phần Core module là nơi cung ứng cho chúng ta các chức năng như IoC, DI(Dependency Injection) [3] Beans sẽ cung cấp 1 BeanFactory là nơi tạo ra các @Beandùng để cấu hình, tạo mới hoặc xoá các Bean đó Beans được cấu hình thông qua FileXML Context hay còn gọi là giao diện ApplicationContext, là nơi cấu hình và kết hợpcác Bean lại với nhau

Hình 2.1.2.4 Cấu hình context:annotation-config

2.1.3 Tổng quan về Spring Boot

Khi nói về Sring Framework thì ta không thể không nhắc đến Spring Boot, đây có thểxem là một phần dự án nhỏ trong Spring Framework được tạo ra để việc vận hànhcũng như cấu hình hệ thống của dự án trở nên dễ dàng hơn và đáp ứng nhiều nhu cầucủa lập trình viên hiện nay Ngoài ra cấu trúc của Spring Boot cũng được xây dựngdựa trên nền tảng của Spring Framework vì vậy khi sử dụng Spring Boot sẽ giúpchúng ta càng hiểu hơn về những cấu trúc bên trong của Spring Framework

Spring Boot được phát triển bới công ty Pivotal Software có trụ sở tại San Francisco.Spring Boot là một dự án về mà nguồn mở và được phát triển mạnh mẽ bởi cộng đồnglập trình viên trên toàn thế giới

Trang 20

Hình 2.1.3.5 Công ty Pivotal SoftwareKhi sử dụng Spring Boot chúng ta sẽ cảm thấy nó thực thi chương trình được mượt màhơn mà không cần thực hiện quá nhiều bước Vì khi cài đặt và sử dụng, nó đã tạo ranhiều lợi ích mà chúng ta không cần phải làm.

Auto Config: Thay vì người dùng tự cấu hình sẽ tốn nhiều thời gian nhưng khi dùngSpring Boot sẽ tự động cấu hình các phần cần thiết cho người sử dụng vì vậy ngườidùng chỉ cần Build Code sau đó là chạy chương trình bình thường

Xây dựng Annotation: Thay vì sử dụng các File XML thì ở Spring Boot sẽ thay thếngắn gọn bằng các @Bean sử dụng kỹ thuật IoC giúp cho việc khai báo trở nên nhanhchóng và bớt phức tạp Trong ví dụ ta thấy được một Annotation Bean của Cloudinarychỉ cần cấu hình các thuộc tính của biến cloudinary một cách dễ dàng và dễ hiểu Saukhi cấu hình xong thì có thể gọi và sử dụng biến đó trong các lớp khác

Hình 2.1.3.6 Annotation @Bean

Sử dụng Server Tomcat: Khi sử dụng Tomcat chúng ta chỉ cần cài đặt Server Tomcat

là có thể đơn giản hoá việc triển khai các File JAR vì giảm bớt việc cấu hình Nó còngiúp cho các File JAR được tối ưu tài nguyên vì chỉ cần đưa ra các thư viên và tàinguyên cần thiết khi sử dụng ứng dụng đó, việc này giúp tăng hiệu suất cho chươngtrình

Trang 21

Hình 2.1.3.7 Server TomcatTuy Spring Boot có rất nhiều tiện lợi nhưng đi cùng với đó là không ngừng học hỏi vềSpring Boot vì để sử dụng thành thạo và dễ dàng bạn cần phải có các kiển thức cơ bảncủa phần Java Core như Java, OOP, API,… ,việc quản lý các Package và cuối cùng làJPA để có thể kết nối và tương tác giữa cơ sở dữ liệu với phần Java Core kể trên

2.1.4 Kiến trúc về Spring Boot

Kiến trúc Spring Boot được tạo ra dựa trên Spring Framework vì vậy nó sẽ bao gồmcác module trong Framework Kiến trúc gồm 4 tầng với các tác vụ khác nhau

Hình 2.1.4.8 Kiến trúc Spring BootPresentation Layer hay còn gọi là Controller layer (lớp điều khiển) là lớp trên cùng củaSpring Boot được dùng để xử lý các HTTP và các Request được gửi từ server vềclient

Business Layer hoặc là Lớp xử lý Logic, là lớp xử lý các dữ liệu và thức hiện các yêucầu phức tạp của mã nguồn Business Layer đảm bảo rằng các hàm xử phải đúng vớitác vụ khi được gọi ở lớp Presentation Layer Lớp này giúp cho mã nguỗn có thể dễbảo trì và mở rộng

Persistence Layer là tầng tương tác và quản lý cơ sở dữ liệu Lớp này cũng giống nhưData Access/Intergration trong kiến trúc của Spring Framework

2.1.5 Hibernate

Hibernate là một Framework đã được giới thiệu ở phần cấu trúc Spring Frameworktrước đó ở Hình 2.1.2 3 Hibernate sử dụng ORM giúp Java đặt được năng suất cao

Trang 22

trong việc truy vấn dữ liệu trong Database Hibernate hỗ trợ những ứng dụng liênquan đến cơ sở dữ liệu như MySQL, SSMS…

Chúng ta cần phải cấu hình Hibernate để tạo sự liên kết giữa database và các lớp trongPOJO Một phần sẽ từ hàm kết nối các bảng trong POJO và một phần sẽ từ hàm kháclấy dữ liệu và đóng vai trò kết nối đến database của máy tính sẽ bao gồm các thànhphần như driverClass, username, password…

Hình 2.1.5.9 Kết nối databaseKhi sử dụng Hibernate sẽ giúp cho người sử dụng dễ dàng ánh xạ đến các thuộc tínhcủa đối tượng hiện tại trong lớp persistence mà không cần nhìn vào trong các bảng của

cơ sở dữ liệu [4] Chúng ta có thể tạo ra các lớp Persistence dựa vào lớp có sẵn củachương trình

Hình 2.1.5.10 Class persistence từ Database Sau khi chọn các bảng từ trong Database thì chúng ta sẽ nhận được các lớp trong góiPOJO đúng theo tên các bảng trong Database

Trang 23

Hình 2.1.5.11 Kết quả từ persistenceBên trong các lớp sẽ có các biến tương ứng với các cột/thuộc tính trong cơ sở dữ liệu

và được gắn các Annotation để xác định các mối quan hệ như một-nhiều, nhiều-nhiềutrong Database, khi tạo ra các lớp sẽ có những câu truy vấn cơ bản có sẵn do hàm tạo

ra trong Anntation @NamedQuery [4]

Hình 2.1.5.12 Class trong Persistence Hibernate có cấu trúc khá đơn giản Cơ sở dữ liệu sẽ tương tác với JDBC và được gọiqua các Session Factory hoặc các câu Query để tương tác với các Persistence Object

và trả về các kết quả tìm được Trong Java khi mọi người thường dùng từ POJO (PlainOld Java Object) hơn là Persistence Object, thì khi Hibernate tương tác với các đốitượng trong mỗi lớp của POJO thì những đối tượng trong lớp đó cần phải có nhữngyêu cầu sau để Hibernate có thể tương tác dễ dàng hơn như các phương thức không cótham số, phải khai báo Private và phải có phương thức Getter và Setter và các lớpkhông kế thừa tường minh

Trang 24

Hình 2.1.5.13 Cấu trúc HibernateNgoài ra các thuộc tính khoá ngoại khi dùng Hibernate có thể trả về cả một đối tượng

ở một bên bảng khác liên kết

Hình 2.1.5.14 Attribute HibernateTrong hình trên ta thấy được khoá ngoại của bảng hiện tại (bảng Employer ) có mộtliên kết đến bảng user bằng userID có kiểu dữ liệu là 1 User Vì vậy chúng ta có thểgọi Hibernate để lấy tất cả dữ liệu của user đó từ userID của bảng Employer chứkhông cần lấy từ bảng User Trong ví dụ ta thấy được cách sử dụng đối tượng khoángoại từ bảng khác để lấy được cả dữ liệu của user đó Có thể dùng “WHEREuserID.username” để lấy username từ bảng user để so sánh như ví dụ bên dưới

Hình 2.1.5.15 Minh hoạ Hibernate

Trang 25

2.1.6 Tổng quan về Spring MVC

Web (MVC -Remoting) hay còn được biết đến là Spring MVC Đây là phần nổi trộinhất của Spring Framework vì nó là nơi thực hiện các đặc trưng của Core module ởCore Container đó là IoC và DI Mô hình MVC bao gồm có Model-View-Controller.Model là nơi lưu trữ và xử lý logic các đối tượng trong Persistence Class (các lớptương tác với cơ sở dữ liệu)

View là nơi đại diện cho người dùng ứng dụng, sử dụng khuôn mẫu JSP cùng vớiJSTL (Java Standard Tag Library) để có thể sử dụng các Restful của Service Ví dụ vềTag Library về Spring Security và JSTL trong File JSP

Hình 2.1.6.16 Thư viện JSTL - Spring SecurityMột số thẻ thông dụng thường thấy khi sử dụng thư viện tag lib như của JSTL Core ta

có thẻ <c:if> để chứa điều kiện hoặc <c:forEach> để tạo vòng lặp xuất ra các dữ liệucủa nhiều đối tượng

Hình 2.1.6.17 Thẻ TagLib thông dụng Controller tương tác với các Model, tiếp nhận và xử lý các yêu cầu của người dùng,thực hiện các điều hướng từ Request

Trong Spring MVC còn có Front Controller là trung gian giữa Request của người dùng

và Controller Front Controller sẽ nhận những yêu cầu của người dùng rồi sau đóchuyển những request đó sang Controller để xử lý các tác vụ thông qua HTTPRequest Trong Spring Boot Front Controller sẽ được cấu hình ở DispatcherServlet đểthay thế cho Front Controller (DispatcherServlet hoạt động tương tự như FrontController) để xử lý các HTTP Request Dispatcher còn là nơi giúp chúng ta chạy cáccấu hình mà chúng ta thiết lập trước đó như: cấu hình Hibernate, Tiles, SpringSecurity…

Trang 26

DispatcherServlet sẽ gọi những phương thức phù hợp trong Controller để xử lý yêucầu của người dùng như GET, POST, DELETE…DispatcherServlet sẽ dùngViewResolver để tìm đến những File JSP tương ứng với Controller của trang Web đó

và những lớp Controller khi được DispatcherServlet gọi thì phải gắn @Controller hoặc

@RestController để nó có thể nhận diện được đó là lớp thuộc Controller

Hình 2.1.6.18 Load jspTrong hình minh hoạ trên ngoài return “index” để trả về đúng yêu cầu người là vềtrang index.jsp thì còn có @RequestMapping để vào trang /index.jsp còn có

@RequestParam để hiển thị các tham số lên thanh URL

Hình 2.1.6.19 @RequestParamNgoài RequestMapping để chuyển trang và RequestParam chúng ta còn có mộtAnnotation được sử dụng thường xuyên đó là @PathVariable để hiển thị phần chúng

ta lên trên thanh URL, nó cũng có công dụng cũng khá giống với RequestParam nhưngkhông được sử dụng như RequestParam

Hình 2.1.6.20 @PathVariableTrong Hình 2.1.6 20 ta thấy được trong @GetMapping chúng ta có /JobDetail/{id}thì {id} đó sẽ được nhận dạng từ biến int id bên dưới truyền lên và phần AnnotationPathVariable để nhận diện rằng biến int id bên dưới đó sẽ truyền vào đâu thì thuộc tínhvalue sẽ gán biến int id vào trong {id} đó

Trang 27

Hình 2.1.6.21 Nhận PathVariable id

Ví dụ khi ta ấn vào nút “Xem công việc” thì nó sẽ truyền id của công việc hiện tại lênthanh URL và chuyển thành trang JobDetail của công việc đó như kết quả

Hình 2.1.6.22 Kết quả PathVariableTóm lại, từ ví dụ ta thấy được rằng @RequestParam và @PathVariable dù đều làtruyền dữ liệu từ request URL nhưng chúng lại có công dụng và mục đích sử dụngkhác nhau Thông thường RequestParam sẽ được dùng cho các tham số tuỳ chọn hoặccác tham số không phải path còn PathVariable thì dùng các tham số là path

RequestParam PathVariableCách sử dụng Dưới dạng câu lệnh

Query hoặc URL Dưới dạng URLKiểu tham số Dưới dạng Query String/

Form Data

Dưới dạng URL

Bắt buộc truyền giá trị NOT NULL NOT NULL

Số lượng tham số Một hoặc nhiều tham số Duy nhất một tham số

Bảng 2.1 phân biệt RequestParam và PathVariableKhi sử dụng Spring MVC chúng ta sử dụng thành phần Apache Tiles (mộtFramework) giúp cho việc tái sử dụng mã nguồn của các trang Web trở nên tối ưu hơn

và tiết kiệm tài nguyên hơn khi xây dựng phần Front-End Tiles giúp cho chúng ta tách

ra những phần dùng chung cho tất cả các trang Web như Header, Footer hoặc các khaibáo <script> của bootstrap hoặc jquery ở một trang chung sau đó lắp ghép sẵn vào các

Trang 28

trang Web mới trong chương trình Đầu tiên tạo thư mục Tiles.XML để khai báo cáctrang Web để sử dụng các thành phần chung kể trên.

Hình 2.1.6.23 Phần chung

Ở đây chúng ta dùng thẻ <definition> để định nghĩa từng phần cũng như định nghĩatrang Web nào sẽ hiện các thành phần đó lên khi chạy chương trình.Trong hình ảnhtrên là định nghĩa 3 thành phần base, header và footer của mỗi trang Web sẽ có 3 thànhphần dùng chung đó, còn dưới đây là định nghĩa để từng trang Web có thể sử dụng 3thành phần trên

Hình 2.1.6.24 Khai báo Khi khai báo 1 trang Web dùng những thành phần chung đó thì chúng ta sẽ cho trangWeb đó kế thừa (extends) lại thành phần baseLayout đã khai báo ở phần ví dụ trước đó

và gán đường dẫn dẫn đến trang Web đó trong thư mục của chương trình ở phần

“value”

Thêm vào đó Spring MVC còn có phần đọc File Properties giúp cho lập trình viên tăngphần bảo mật các thông tin cần thiết hoặc cũng như kết hợp với khác như việc thôngbáo các Message khác nhau Đầu tiên chúng ta tạo 1 File Properties để chứa các thôngtin cần thiết để gọi ra

Trang 29

Hình 2.1.6.25 File PropertiesKhi khai báo ở đây thì chúng ta chỉ cần gọi phần bên trái ra chứ không cần khai báotrực tiếp phần bên phải ra trong chương trình, nó góp phần bảo mật những phần quantrọng mà chúng ta không muốn bị lộ ra từ bên ngoài Sau đây là một ví dụ để lấy ra cácthành phần của cloudinary có trong File Properties (lưu ý cần phải khai báo

@PropertiesSource để đọc được File có đuôi là properties)

Hình 2.1.6.26 Khai báo Properties

Ta thấy được chúng ta không cần gọi trực tiếp các dữ liệu ra mà chỉ cần gọi trong câulệnh getProperty() đúng tên với phần bên trái thì chương trình sẽ được ánh xạ đúngvào thành phần bên trái của File Properties.Trong Spring MVC, khi muốn kết nối dữliệu lấy được giữa các hàm với View (jsp) thì chúng ta sẽ có một hàm “addAttribute”

Hình 2.1.6.27 addAttributeĐầu tiên, chúng ta sẽ khai báo một biến Model để nhận dữ liệu và sử dụng hàmaddAttribute từ Spring Framework có sẵn, biến Model này sẽ giúp chúng ta kết nốigiữa View và Controller với nhau Như trong hình 2.1.6.12 ta thấy được khi gọi hàmgetCity để lấy toàn bộ các Thành phố trong cơ sở dữ liệu thì tất cả các dữ liệu lấy được

sẽ được đưa vào trong model có tên là “CITY” Nếu như muốn lấy các dữ liệu đó ra

Trang 30

thì bên View chúng ta sẽ sử dụng thư viện TagLib đã ví dụ về các TagLib thông dụng

đã nói ở bên trên Hình 2.1.6 17

Hình 2.1.6.28 Sử dụng ModelChúng ta sẽ sử dụng thư viện của JSTL để tạo ra vòng lặp forEach với items mà chúng

ta truyền vào đó là tên model CITY mà chúng ta đã tạo ra trước đó bên Controller dướidạng 1 tên khai báo là var=”ct” Khi đó tất cả các dữ liệu trong model CITY sẽ đượcthay thế ngắn gọn bằng ct để lập trình viên dễ gọi ra những thuộc tính trong bảng City.Trong từng thẻ option sẽ được gán 1 giá trị value đó là id của City hiện tại vàct.nameCity sẽ hiển thị ra tên của từng thành phố vào trong thanh select đó

2.1.7 Các thành phần cấu hình khác

2.2 ReactJS

2.2.1 Giới thiệu ReactJS

ReactJS là một thư viện mở rộng của JavaScript được sử dụng phổ biến rộng rãi trênthế giới, ReactJS được sử dụng để tạo ra giao diện người dùng và được phát triển bởiFacebook [5]

ReactJS sử dụng kiến trúc dựa trên các thành phần (components) để xây dựng nên giaodiện người dùng Điều này giúp cho việc bảo trì và mở rộng của ReactJS trở nên dễdàng và tiện lợi vì nó giúp cho mã nguồn trong khi viết bằng ReactJS có thể dễ đọchơn vì đa phần các ngôn ngữ khác sẽ cảm thấy rất khó để đọc được các thành phần đãliên kết nằm ở đâu và đã được gọi ra khi nào

ReactJS sử dụng cú pháp JSX (JavaScript XML) là một cú pháp để viết những thànhphần và thẻ trong HTML trong cùng 1 File JavaScript [5] Điều này giúp cho việc đọc

mã nguồn khi vừa viết HTML vừa chỉnh sửa các chức năng trong JavaScript trở nên

dễ đọc và dễ hiểu rằng chúng đang được gọi ra ở đâu

Trang 31

Hình 2.2.1.29 HTML và Javascrip Cấu trúc ReactJS của một Project cơ bản sẽ gồm các một nơi để chứa các component

để gọi lên các View và một nơi để cấu hình các API gọi từ Axios

Hình 2.2.1.30 Cấu trúc Project ReactJSKhi cấu hình xong các component thì chúng ta phải khai báo vào trong App.js đểchương trình ánh xạ đến các component đó và trả ra View của từng component Lưukhi sử dụng thẻ có liên quan đến Router thì chúng ta cần phải cài đặt react router trướcbằng cách mở một Terminal CMD và gõ lệnh “install react-router-dom@6” để sửdụng các thư viện router để ánh xạ đến từng đường dẫn path dựa vào từng thành phầnđược khai báo trong element như trong ví dụ thì đường dẫn mặc định path=”/” sẽ dẫnđến thành phần thẻ <Home> là component được tạo ra từ Home.js cũng chính là trangWeb Home

Hình 2.2.1.31 Khai báo component Home và Login

Ngày đăng: 13/06/2024, 09:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] N. H. Minh, “Spring Web MVC with PDF View Example (using iText 5.x)”, 2020.[Trực tuyến]. Địa chỉ: https://www.codejava.net/frameworks/spring/spring-web-mvc-with-pdf-view-example-using-itext-5x [Truy cập 25/9/2023] Sách, tạp chí
Tiêu đề: Spring Web MVC with PDF View Example (using iText 5.x)
[2] N. H. Minh “Spring MVC with Excel View Example (Apache POI andJExcelApi)”, 2020. [Trực tuyến]. Địa chỉ:https://www.codejava.net/frameworks/spring/spring-mvc-with-excel-view-example-apache-poi-and-jexcelapi [Truy cập 27/9/2023] Sách, tạp chí
Tiêu đề: Spring MVC with Excel View Example (Apache POI andJExcelApi)
[3] stackjava “Tổng quan về Spring Framework”, 2017. [Trực tuyến]. Địa chỉ:https://viblo.asia/p/tong-quan-ve-spring-framework-YWOZryEyKQ0 [Truy cập 1/10/2023] Sách, tạp chí
Tiêu đề: Tổng quan về Spring Framework
[4] L. V. Nguyên “Sử dụng Hibernate”, 2020. [Trực tuyến]. Địa chỉ:https://levunguyen.com/laptrinhspring/2020/04/11/hibernate/#:~:text=B%C6%B0%E1%BB%9Bc%201%20%3A%20Nh%C3%BAng%20th%C6%B0%20vi%E1%BB%87n%20hibernate%20v%C3%A0o,5.%20S%E1%BB%AD%20d%E1%BB%A5ng%20truy%20v%E1%BA%ABn%20d%E1%BB%AF%20li%E1%BB%87u%203. [Truy cập 20/9/2023] Sách, tạp chí
Tiêu đề: Sử dụng Hibernate
[5] N. Hà “ReactJS là gì? Nó có thể được sử dụng để làm gì?”, 2021. [Trực tuyển]. Địa chỉ: https://quantrimang.com/cong-nghe/reactjs-la-gi-184174 [Truy cập 1/10/2023] Sách, tạp chí
Tiêu đề: ReactJS là gì? Nó có thể được sử dụng để làm gì
[6] Mayur Kandalkar “How to make an AJAX call with jQuery - StackOverFlow”, 2019. [Trực tuyến]. Địa chỉ: https://stackoverflow.com/questions/54603350/how-to-make-an-ajax-call-with-jquery [Truy cập 25/9/2023] Sách, tạp chí
Tiêu đề: How to make an AJAX call with jQuery - StackOverFlow

HÌNH ẢNH LIÊN QUAN

Hình 2.1.1.1. Minh hoạ IoC - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.1.1. Minh hoạ IoC (Trang 17)
Hình 2.1.1.2. Annotation @Repository - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.1.2. Annotation @Repository (Trang 18)
Hình 2.1.2.4. Cấu hình context:annotation-config - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.2.4. Cấu hình context:annotation-config (Trang 19)
Hình 2.1.4.8. Kiến trúc Spring Boot - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.4.8. Kiến trúc Spring Boot (Trang 21)
Hình 2.1.3.7. Server Tomcat - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.3.7. Server Tomcat (Trang 21)
Hình 2.1.5.10. Class persistence từ Database  Sau khi chọn các bảng từ trong Database thì chúng ta sẽ nhận được các lớp trong gói POJO đúng theo tên các bảng trong Database. - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.5.10. Class persistence từ Database Sau khi chọn các bảng từ trong Database thì chúng ta sẽ nhận được các lớp trong gói POJO đúng theo tên các bảng trong Database (Trang 22)
Hình 2.1.5.12. Class trong Persistence - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.5.12. Class trong Persistence (Trang 23)
Hình 2.1.5.11. Kết quả từ persistence - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.5.11. Kết quả từ persistence (Trang 23)
Hình 2.1.5.13. Cấu trúc Hibernate Ngoài ra các thuộc tính khoá ngoại khi dùng Hibernate có thể trả về cả một đối tượng - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.5.13. Cấu trúc Hibernate Ngoài ra các thuộc tính khoá ngoại khi dùng Hibernate có thể trả về cả một đối tượng (Trang 24)
Hình 2.1.6.21. Nhận PathVariable id - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.6.21. Nhận PathVariable id (Trang 27)
Hình 2.1.6.23. Phần chung - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.1.6.23. Phần chung (Trang 28)
Hình 2.2.1.29. HTML và Javascrip  Cấu trúc ReactJS của một Project cơ bản sẽ gồm các một nơi để chứa các component - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.2.1.29. HTML và Javascrip Cấu trúc ReactJS của một Project cơ bản sẽ gồm các một nơi để chứa các component (Trang 31)
Hình 2.2.1.30. Cấu trúc Project ReactJS Khi cấu hình xong các component thì chúng ta phải khai báo vào trong App.js để chương trình ánh xạ đến các component đó và trả ra View của từng component - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.2.1.30. Cấu trúc Project ReactJS Khi cấu hình xong các component thì chúng ta phải khai báo vào trong App.js để chương trình ánh xạ đến các component đó và trả ra View của từng component (Trang 31)
Hình 2.2.1.32. Import Bootstrap - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.2.1.32. Import Bootstrap (Trang 32)
Hình 2.2.2.34. CrossOrigin Sau khi gắn Annotation CrossOrigin rồi thì trong ReactJS chúng ta sẽ tạo các endpoint - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.2.2.34. CrossOrigin Sau khi gắn Annotation CrossOrigin rồi thì trong ReactJS chúng ta sẽ tạo các endpoint (Trang 33)
Hình 2.2.2.38. Kiến trúc hệ thống quản lý việc làm Client: là phần giao diện người dùng được viết trong các File .jsp (hoặc giao diện React) và nó có nhiệm vụ gửi các Request từ Client về Server để xử lý bằng Java Spring. - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 2.2.2.38. Kiến trúc hệ thống quản lý việc làm Client: là phần giao diện người dùng được viết trong các File .jsp (hoặc giao diện React) và nó có nhiệm vụ gửi các Request từ Client về Server để xử lý bằng Java Spring (Trang 35)
Hình 3.3.1.39. Lược đồ Use Case - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.3.1.39. Lược đồ Use Case (Trang 36)
Hình 3.3.2.40. Cơ sở dữ liệu Bảng User sẽ kết nối với bảng Role với quan hệ một-nhiều - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.3.2.40. Cơ sở dữ liệu Bảng User sẽ kết nối với bảng Role với quan hệ một-nhiều (Trang 39)
Hình 3.4.2.49 Xem đánh giá - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.2.49 Xem đánh giá (Trang 43)
Hình 3.4.2.50. Kết quả đánh giá Khi thực hiện chức năng tìm kiếm cũng như xem các bình luận của doanh nghiệp thì cũng sẽ có dạng truyền id của doanh nghiệp đó thông qua nút bấm “Đánh giá” để truyền lên thanh URL và từ đó lấy id để chạy hàm tìm kiếm những  - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.2.50. Kết quả đánh giá Khi thực hiện chức năng tìm kiếm cũng như xem các bình luận của doanh nghiệp thì cũng sẽ có dạng truyền id của doanh nghiệp đó thông qua nút bấm “Đánh giá” để truyền lên thanh URL và từ đó lấy id để chạy hàm tìm kiếm những (Trang 43)
Hình 3.4.2.52. Hàm lấy bình luận - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.2.52. Hàm lấy bình luận (Trang 44)
Hình 3.4.2.54. Thêm vào Database - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.2.54. Thêm vào Database (Trang 45)
Hình 3.4.3.56. Tìm theo tiêu chí - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.3.56. Tìm theo tiêu chí (Trang 46)
Hình 3.4.3.59. Hàm getJob - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.3.59. Hàm getJob (Trang 47)
Hình 3.4.3.60. Tiêu chí cityId - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.3.60. Tiêu chí cityId (Trang 48)
Hình 3.4.4.63. Ajax&amp;ChartJS Khi sử dụng Ajax ta sẽ có các thuộc tính chính đó là “url” nơi sẽ truyền vào đường dẫn vào API để lấy dữ liệu, “method” để thực các RESTful API tương ứng  (GET-POST-PUT-DELETE) và “success” khi thành công Ajax sẽ chạy hàm n - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.4.63. Ajax&amp;ChartJS Khi sử dụng Ajax ta sẽ có các thuộc tính chính đó là “url” nơi sẽ truyền vào đường dẫn vào API để lấy dữ liệu, “method” để thực các RESTful API tương ứng (GET-POST-PUT-DELETE) và “success” khi thành công Ajax sẽ chạy hàm n (Trang 49)
Hình 3.4.5.67. Kết quả Excel - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.5.67. Kết quả Excel (Trang 51)
Hình 3.4.6.70. Controller CV Ứng viên sẽ thấy chức năng này khi bấm vào nút ứng tuyển một công việc nào đó, sẽ - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.6.70. Controller CV Ứng viên sẽ thấy chức năng này khi bấm vào nút ứng tuyển một công việc nào đó, sẽ (Trang 52)
Hình 3.4.7.81. Truyền dữ liệu Json - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.7.81. Truyền dữ liệu Json (Trang 56)
Hình 3.4.9.86. Ajax deleteApp Bên trong hàm xoá sẽ sử dụng chức năng Delete có sẵn của session factory vì vậy chúng ta chỉ cần truyền vào 1 biến id kiểu Integer và sau đó lấy ra Application dựa trên - Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java
Hình 3.4.9.86. Ajax deleteApp Bên trong hàm xoá sẽ sử dụng chức năng Delete có sẵn của session factory vì vậy chúng ta chỉ cần truyền vào 1 biến id kiểu Integer và sau đó lấy ra Application dựa trên (Trang 58)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w