Tải bản đầy đủ (.docx) (92 trang)

Lập trình web với java và xây dựng ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.46 MB, 92 trang )

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
Chuyên 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........................................................................................................................1


BẢNG CÁC THUẬT NGỮ VIẾT TẮT................................................................................2
PHẦN I: Mở Đầu...................................................................................................................3
1.1 Tên đề tài......................................................................................................................3
1.2 Đặt vấn đề....................................................................................................................3
1.3 Mục đích và yêu cầu....................................................................................................3
1.3.1 Mục đích:..................................................................................................................3
1.3.2 Yêu cầu:.....................................................................................................................4
1.3.2.1 Đối với sinh viên thực hiện:...................................................................................4
1.3.2.2 Đối với sản phẩm phải đảm bảo các chức năng sau:..............................................4
PHẦN II: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC........4
2.1 Tình hình nghiên cứu trong nước.................................................................................4
2.2 Tình hình nghiên cứu ngoài nước................................................................................5
2.3 Tên đề tài, tính thời sự và tầm quan trọng của đề tài...................................................6
2.3.1. Tên đề tài..................................................................................................................6
2.3.2 Tính thời sự...............................................................................................................6
2.3.3 Tầm quan trọng của đề tài.........................................................................................6
PHẦN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU.............................................6
3.1 Địa điểm và thời gian nghiên cứu (thực tập):..............................................................6
3.2 Nội dung nghiên cứu....................................................................................................6
3.3 Phương pháp nghiên cứu..............................................................................................7
PHẦN IV: KẾT QUẢ VÀ THẢO LUẬN..............................................................................7
A. LÝ THUYẾT.....................................................................................................................7
I. TÌM HIỂU CÔNG NGHỆ JAVA SERVLET VÀ JSP.......................................................7
1. Giới thiệu ngôn ngữ Java...................................................................................................7
1.1 Lịch sử ra đời và phát triển của ngôn ngữ Java............................................................7
1.2 Java là gì?.....................................................................................................................8
1.3 Tính chất của Java........................................................................................................8
1.4 Java được sử dụng để làm gì?......................................................................................8
1.5 Những nơi sử dụng Java...............................................................................................9
2. Tìm hiểu về Java Servlet....................................................................................................9

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 của Servlet..................................................................................................10
2.5 Request và Response..................................................................................................13
2.6 Form Data trong 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 bởi sử dụng Servlet........................................................................14
2.7 Cookie trong Servlet..................................................................................................14
2.8 Upload File trong Servlet...........................................................................................15
2.9 Một số phương thức khác...........................................................................................15
3. Tìm hiểu về JSP................................................................................................................16
3.1 JSP là gì?....................................................................................................................16
3.2 Ưu điểm của JSP........................................................................................................16
3.3 Vòng đời của JSP.......................................................................................................17
3.4 Trình tự làm việc của JSP...........................................................................................18
3.5 Các bước xử lý trang JSP...........................................................................................18
3.6 Client Request trong JSP............................................................................................19
3.7 Server Response trong JSP.........................................................................................19
3.8 Xử lý Form trong 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 bởi sử dụng JSP.............................................................................20
3.9 Đối tượng ẩn (Implicit) trong JSP..............................................................................20
3.10 Cookie trong JSP......................................................................................................21
3.11 Upload File trong 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 nền 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 năng của 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ế cơ sở dữ liệu..............................................................................................65
2.2.3.1 Sơ đồ quan hệ thực thể.........................................................................................65
2.2.3.2 Danh sách các bảng và 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 là gì?..................................................................................................77
1.2 Sự tương tác giữa các lớp trong mô hình MVC.........................................................78
1.3 Ưu và nhược điểm của 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 hiện trong 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 của JSP.......................................................................................17
Hình 10: Trình tự làm việc của 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 năng phía Frontend..............................................34
Hình 13: Biểu đồ phân cấp chức năng 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 mới 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 thanh toá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 đã được phân rã nhỏ (1)............................................................58
Hình 40: Sơ đồ lớp đã được phân rã nhỏ (2)............................................................58
Hình 41: Sơ đồ lớp đã được 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ự thanh toá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ệ giữa các bảng trong 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 của 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 được bài báo cáo thực tập chuyên ngành này trước hết
em xin gửi đến các thầy, cô giáo trong 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 hoàn thành chuyên đề báo cáo thực
tập này.
Đồng thời nhà trường đã tạo điều kiện cho em có cơ hội được tìm hiểu
về cách làm việc cũng như vận dụng những kiến thức vào thực tế. Qua kì thực
tập này em nhận ra nhiều điều mới mẻ và bổ ích cho công việc sau này của
bản thân.
Với đề tài “Lập trình web với Java và xây dựng ứng dụng”, ở đây

em áp dụng vào để xây dựng một website thương mại điện tử, là một đề tài có
tính thực tế nhưng do thời gian ngắn và trình độ hiểu biết chưa sâu nên bài
làm của em không tránh khỏi những thiếu sót. Em rất mong nhận được sự góp
ý, chỉ bảo của thầy cô cùng toàn thể các bạn trong lớp, khoa để bài báo cáo
của em được hoàn thiện hơn nữa.

SVTH

1

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 chú

1

CSDL

Cơ sở dữ liệu


Nơi lưu trữ thông
tin và cho phép
truy cập

2

DESC

Description

Mô tả

3

RAT

Rationnal

Quan hệ

4

CNTT

Công nghệ thông tin

5

SP


Sản phẩm

6

NCC

Nhà cung cấp

7

NSX

Nhà sản xuất

8

TNHH

Trách nhiệm hữu
hạn

9

CTHD

Chi tiết hóa đơn

10

HD


Hóa đơn

11

QL

Quản lý

SVTH

2

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 và xây dựng ứng dụng”
1.2 Đặt vấn đề
Khái niệm về website được hình thành từ thập niên 90, khi mà các trình
duyệt đi vào giai đoạn hoàn thiện và phát triển mạnh mẽ như ngày nay. Không
có lí do nào khiến chúng ta còn hoài nghi về lợi ích mà công nghệ web mang
lại cho chúng ta, cũng như cho sự phát triển của thế giới giai đoạn hiện tại và
trong tương lai.
Công nghệ web trong tương lai có thể sẽ thay thế cho các ứng dụng

desktop hiện tại, khi đó công việc của chúng ta sẽ trở lên đơn giản hơn rất
nhiều. Dựa trên nền tảng công nghệ web và các phần kết nối trên môi trường
internet thì mọi sự kiện trao đổi thông tin, mua bán hàng hóa…vv… đều được
diễn ra trên môi trường web.
Chúng ta hoàn toàn có thể tin tưởng vào một tương lai phát triển mạnh
mẽ của công nghệ web.
Ngôn ngữ lập trình Java được biết đến từ năm 1991. Là một trong
những ngôn ngữ lập trình phổ biến nhất trong giới lập trình viên và nó được
sử dụng để tạo ra các ứng dụng web, phần mềm tùy chỉnh, cổng thông tin điện
tử, bao gồm các giải pháp thương mại điện tử trên web và di động.
Có rất nhiều các công nghệ Java được sử dụng trong các ứng dụng web.
Hãy nhớ rằng, chúng ta không cần phải sử dụng tất cả những công nghệ Java
đó trong một ứng dụng web.
1.3 Mục đích và yêu cầu
1.3.1 Mục đích:
Trong bài viết này, tôi sẽ đi tìm hiểu công nghệ web với Java
(JSP/Servlet) và xây dựng ứng dụng thương mại điện tử bán điện thoại và phụ

SVTH

3

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

kiện. Sau khi hoàn thành sẽ hiểu biết nhiều hơn về các công nghệ làm web

của java, đồng thời sẽ là nền tảng để phát triển các ứng dụng web khác.
1.3.2 Yêu cầu:
1.3.2.1 Đối với sinh viên thực hiện:
Kiến thức cơ bản về JSP/Servlet, như JDBC, cách lấy dữ liệu từ form,
cách truyền biến và session trong java.
 Kiến thức về Front-end như HTML, CSS, JS.
 Kiến thức về cơ sở dữ kiệu MySQL.
 Kĩ năng phân tích các yêu cầu cần có của hệ thống.
 Xác định rõ các tính năng chính, các yêu cầu cơ bản về mặt giao
diện của website.
1.3.2.2 Đối với sản phẩm phải đảm bảo các chức năng sau:
 Chức năng dành cho quản trị:
 Quản ký danh mục, quản lý sản phẩm
 Quản lý hóa đơn bán hàng.
 Thêm, sửa, xóa, tìm kiếm dữ liệu.
 Đăng nhập và truy cập vào cơ sở dữ liệu.
 Chức năng dành cho người dùng:
 Đăng kí, đăng nhập thành viên.
 Chức năng giỏ hàng.
 Gửi mail.
 Thanh toán đơn hàng.

SVTH

4

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH


GVHD: TRẦN TRUNG HIẾU

PHẦN II: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ
NGOÀI NƯỚC
2.1 Tình hình nghiên cứu trong nước
Ở Việt Nam trong những năm gần đây, Java đang được ứng dụng rất
rộng rãi, chủ yếu là các ứng dụng viết trên Internet nhằm khai thác tối đa khả
năng của nó trong lĩnh vực viễn thông, truyền hình, mạng và các máy tính đơn
lẻ.
Tại cuộc hội thảo “Java: Xu hướng phát triển ứng dụng tại Việt
Nam” diễn ra tại trường ĐH KHTN Hà Nội, các chuyên gia của trung tâm
đào tạo lập trình viên quốc tế Hanoi-Aptech đã khẳng định, nếu chỉ xét đến
mảng dùng để tạo đoạn mã trong trang Web thì Java đã thực sự trở thành một
trong những ngôn ngữ căn bản của Web và nó hữu dụng đến mức khó mà thay
thế.
Năm 2017, thị trường thương mại điện tử của nước ta đang có mức
tăng trưởng về số lượng và trong các lĩnh vực ngày càng nhiều. Thị trường
thương mại điện tử bắt đầu trở lên sôi động hơn nhiều.
Các trang thương mại điện tử lớn ở Việt Nam có thể kể đến như:
“Lazada, Tiki, Sendo, Zalora, Adayroi…..vv….”.
2.2 Tình hình nghiên cứu ngoài nước
Hiện nay có hầu hết các ứng dụng web chạy trên internet hay mạng nội
bộ được phát triển bằng Java có nguồn gốc là Servlet API. Nó là tiêu chuẩn
trong phát triển Web bằng Java. JSP được dựa trên Servlet. Hầu hết tất cả các
framework như Spring MVC, Struts, Wicker cũng sử dụng Servlet API.
Theo thống kê thì các Java Framework phổ biến nhất hiện nay như:
Sping MVC, Struts, Hibernate, JSF (Java Server Faces), Vaadin…
Trên thế giới thì khái niệm “thương mại điện tử” được xuất hiện từ thập
niên 70, cho phép các doanh nghiệp gửi các hợp đồng điện tử như đơn đặt

hàng hay hóa đơn điện tử. Cho đến nay, thương mại điện tử đã được ứng dụng
trong hầu hết các lĩnh vực có liên quan đến thương mại. Không chỉ dừng ở đó,
thương mại điện tử còn đụng chạm tới mọi hoạt động giao tiếp xã hội, giải trí,
SVTH

5

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

hầu hết trong các lĩnh vực kinh doanh. Được thể hiện rất rõ ở Mỹ. Ở châu Mỹ
La Tinh, thương mại điện tử tập trung ở 4 thị trường Internet phát triển nhất là
Argentina, Brazil, Chile và Mexico…
Có thể kể đến một vài trang thương mại điện tử hàng đầu như:
“Amazon, Alibaba, Walmart, Bestbuy, Ebay…..”

2.3 Tên đề tài, tính thời sự và tầm quan trọng của đề tài
2.3.1. Tên đề tài

“Lập trình web với Java và xây dựng ứng dụng”.
2.3.2 Tính thời sự
Do nhu cầu phát triển của thế giới nói chung và các doanh nghiệp nói
riêng. Thì phương diện quảng bá sản phẩm cũng như tiếp cận khách hàng
luôn là yếu tố tiên quyết đối với mỗi doanh nghiệp. Vì vậy đòi hỏi những sản
phẩm Website được tạo ra phải đáp ứng được yêu cầu rất cao.
Lập trình web với Java tuy không phải là một vấn đề mới mẻ, nhưng

chúng ta phải thừa nhận với nhau rằng, vị trí của Java trong giới lập trình Web
vẫn luôn là một ngôn ngữ lập trình rất mạnh và phổ biến.
2.3.3 Tầm quan trọng của đề tài
Đề tài với mục đích tìm hiểu rõ hơn các công nghệ Web với Java, cụ
thể là công nghệ (JSP/Servlet). Đồng thời xây dựng lên website bán hàng ,
giúp dễ dàng trong việc quản lí và triển kha bán sản phẩm online. Giới thiệu
sản phẩm đến với khách hàng tốt hơn, thuận lợi giao dịch và mua bán từ xa.
PHẦN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Địa điểm và thời gian nghiên cứu (thực tập):
 Cơ sở thực tập: Bộ môn Công Nghệ Phần Mềm – Khoa Công
Nghệ Thông Tin – Học Viện Nông Nghiệp Việt Nam.
 Thời gian nghiên cứu: Bắt đầu từ 08/01/2018 đến 21/05/2018
SVTH

6

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

3.2 Nội dung nghiên cứu
 Java Server Pages (JSP).
 Java Servlet.
 Xây dựng website thương mại điện tử.
3.3 Phương pháp nghiên cứu
 Tìm kiếm, nghiên cứu và tổng hợp tài liệu.
 Tiếp nhận ý kiến của giáo viên hướng dẫn, định hướng cụ thể.

 Tìm hiểu và cài đặt các môi trường nền tảng cần thiết.
 Khảo sát yêu cầu người dùng, thu thập tài liệu.
 Tham khảo các tài liệu chuyên môn.
 Viết đặc tả yêu cầu.
 Phân tích thiết kế cho hệ thống.
 Lập trình.
 Kiểm thử.
 Tham khảo, xin ý kiến của các anh chị có kinh nghiệm về làm web,
bố trí một cách khoa học.
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
1. Giới thiệu ngôn ngữ Java
1.1 Lịch sử ra đời và phát triển của ngôn ngữ Java
Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào
tháng 6 năm 1995. Từ đó, nó đã trở thành một công cụ lập trình của các lập
trình viên chuyên nghiệp. Java được xây dựng trên nền tảng của C và C++.

SVTH

7

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

Do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối tượng của

C++.
Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định
thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như Tivi, lò
nướng,… Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch
lại phụ thuộc vào từng loại CPU.
Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất
đắt. Vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém. Do
đó nhu cầu thực tế đoi hỏi một ngôn ngữ chạy nhanh, gọn, hieju quả và độc
lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi
trường khác nhau. Mặc dù mục tiêu ban đầu không phải cho Internet nhưng
do đặc trưng không phụ thuộc thiết bị nên Java đã trở thành ngôn ngữ lập
trình cho Internet.
1.2 Java là gì?
Java là ngôn ngữ lập trình hướng đối tượng, do vậy không thể dùng
java để viết một chương trình hướng chức năng. Java có thể giải quyết hầu hết
các công việc mà các ngôn ngữ khác có thể làm được.
Java là ngôn ngữ vừa biên dịch vừa thông dịch. Đầu tiên mã nguồn
được biên dịch bằng công cụ JAVAC để chuyển thành dạng ByteCode. Sau đó
được thực thi trên từng loại máy cụ thể nhờ chương trình thông dịch.
1.3 Tính chất của Java
- Tính đơn giản.
- Khả chuyển.
- Hướng đối tượng.
- Độc lập phần cứng và hệ điều hành.
- Hiệu quả cao.
- Truy cập từ xa.
- Đa luồng.

SVTH


8

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

- Thông dịch.
- Linh động.
- Mạnh mẽ.
- Bảo mật.
1.4 Java được sử dụng để làm gì?
 Viết ứng dụng web (J2EE): Java hường được sử dụng để xây
dựng các hệ thống Web lớn đòi hỏi độ bảo mật cao, số lượng
người dùng lớn như ngân hàng, phần mềm quản lý bệnh viện,
quản lý nhà xe…. Đối với các website nhỏ thông thường ít khi
viết bằng Java.
 Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường
được sử dụng để viết game và app cho di động feature phone
(file.jar) và bây giờ khi smartphone Android lên ngôi Java lại
tiếp tục được sử dụng để viết app và game cho nền tảng Android
(file.apk).
 Viết ứng dụng desktop (J2SE): các ứng dụng desktop viest bằng
Java thật sự không nhiều có thể kể đến một số phần mềm như
“Jmeter” hoặc “Designer Vista”. Lợi thế lớn nhất của ứng dụng
Java là bạn chỉ viết một lần và sau đs có thể đem chương trình
lên Windows, Linux, hay MAC để chạy mà không cần phải viết
lại.

1.5 Những nơi sử dụng Java
Có rất nhiều thiết bị hiện tại đang sử dụng Java. Bao gồm:
 Desktop App như media player, antivirus, reader,…
 Web App như javapoint.com, irctc.co.in,….
 Enterprise App như các ứng dụng về xử lý nghiệp vụ ngân
hàng…
 Trên các thiết bị Mobile.

SVTH

9

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

2. Tìm hiểu về Java Servlet
2.1 Khái niệm Java Servlet
Java Servlet là chương trình chạy trên một Web hoặc ứng dụng máy
chủ (Application Server) và hành động như một lớp trung gian giữa một yêu
cầu đến từ một trình duyệt web hoặc HTTP khách (client) khác và cơ sở dữ
liệu hoặc các ứng dụng trên máy chủ HTTP (HTTP Server).
Sử dụng Servlet bạn có thể thu thập đầu vào từ người dùng thông qua
các hình thức trang web, từ một cở sở dữ liệu hoặc một nguồn khác, và tạo ra
các trang web động.
Cụ thể như sau:
- Nhận client request.

- Lấy thông tin từ request.
- Tạo và gửi request với client hoặc gửi request tới servlet hoặc
JSP khác.
- Xử lý nghiệp vụ và phát sinh nội dung bằng cách truy cập
Database.
2.2 Ưu điểm Servlet
 Có nhiều web servers hỗ trợ servlet.
 Truy cập được mọi java APIs.
 Độ tin cậy cao, hiệu năng tốt, dễ mở rộng.
 Độc lập Platform và server.
 An toàn.
 Hầu hết server cho phép load lại server khi có sự thay đổi.

SVTH

10

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

2.3 Kiến trúc Servlet

Hình 1: Kiến trúc Servlet

2.4 Vòng đời của Servlet
Hình ảnh dưới sẽ minh họa rõ nét về vòng đời của một Servlet. Từ khi

nó được tạo ra, xử lý các đòi hỏi từ người dùng, cho tới khi nó bị hủy.

Hình 2: Vòng đời Servlet

Có 5 bước:
B1. Tải lớp Servlet vào bộ nhớ.
B2. Tạo đối tượng Servlet.
SVTH

11

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

B3. Gọi phương thức init() của Servlet.
B4. Gọi phương thức Service() của Servlet.
B5. Gọi phương thức destroy() của Servlet.

Hình 3: Các bước thực hiện trong servlet

 Phương thức init(): Phương thức được thiết kế chỉ được gọi
một lần. Nó được gọi khi Servlet lần đầu được tạo. và không
được gọi lại cho mỗi yêu cầu cua người dùng. Vì thế, nó được sử
dụng cho các khởi tạo one-time, giống như phương thức init của
Applet.
Định nghĩa phương thức init() như sau:


Hình 4: Phương thức init()

 Phương thức Service(): là phương thức chính để thực hiện tác
vụ thực sự. Nơi chứa servlet gọi phương thức service() để xử lý
các yêu cầu từ Client và viết phản hồi đã được định dạng trở lại
Client đó.
Minh họa phương thức service() như sau:

SVTH

12

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

Hình 5: Phương thức service()

 Phương thức doGet(): Một yêu cầu Get, là kết quả từ một yêu
cầu chuẩn cho URL hoặc từ một HTML form, mà không có
phương thức nào được xác định và nó nên được xử lý bởi
phương thức doGet().

Hình 6: phương thức doGet()

 Phương thức doPost(): là kết quả từ một HTML form mà liệt kê

POST như là phương thức, và nên được xử lý bởi phương thức
doPost();

Hình 7: Phương thức request

 Phương thức destroy(): chỉ được gọi một lần ở giai đoạn cuối
trong vòng đời Servlet. Phương thức này giúp đóng các kết nối
Database, dừng thread, viết các danh sách cookie,……

Hình 8: phương thức destroy()

SVTH

13

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

2.5 Request và Response
Request là gì?
Thông tin được gửi từ Client đến server.
- Ai tạo ra request?
- Dữ liệu người dùng nhập vào và gửi đi.
- HTTP header.
Response là gì?
Thông tin được gửi đến Client từ server.

- Dữ liệu text, image…
- HTTP header, cookies,..
2.6 Form Data trong Servlet
2.6.1 Phương thức GET
Phương thức GET gửi thông tin người dùng đã được mã hóa phụ thêm
tới yêu cầu trang. Trang này mà thông tin đã được mã hóa được phân biệt bởi
kí tự “?”.
Là phương thức mặc đinhn để truyền thông tin từ trình duyệt tới web
Server và nó tạo ra một chuỗi dài mà xuất hiện trong Location: box của trình
duyệt.
2.6.2 Phương thức POST
Một phương thức đáng tin cậy hơn để truyền thông tin tới chương trình
backend là phương thức POST.
Nó gói thông tin theo cách giống như phương thức GET, nhưng thay vì
gửi nó như một chuỗi text sau một ký tự “?” trong URL, nó gử thông tin như
là một thông báo riêng biệt. Thông báo này tới chương trình Backend trong
form của input chuẩn, có thể parse và sử dụng cho tiến trình xử lý tiếp theo.

SVTH

14

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

2.6.3 Đọc Form Data bởi sử dụng Servlet

JSP xử lý Form Data bằng việc parse một cách tự động bởi sử dụng các
phương thức sau tùy thuộc vào từng tình huống:
- getParameter():
Chúng
ta
gọi
phương
request.getParameter() để nhận giá trị của tham số Form.

thức

- getParameterValues(): Chúng ta gọi phương thức này nếu
parameter xuất hiện nhiều hơn một lần và trả về nhiều giá trị, ví
dụ checkbox.
- getParameterNames(): Chúng ta gọi phương thức này nếu như
muốn một danh sách đầy đủ của tất cả các parameter trong yêu
cầu hiện tại.
2.7 Cookie trong Servlet
Cookie là các text file được lưu giữ trên máy tính client và chúng được
giữ cho mục đích theo dõi các thông tin đa dạng. JSP hỗ trợ các HTTP cookie
bởi sử dụng công nghệ Servlet ở tầng dưới.
Có 3 bước liên quan trong việc nhận diện việc phản hồi người dùng:
- Server scrip gửi một tập hợp các Cookie tới trình duyệt.
- Trình duyệt lưu giữ thông tin này trên thiết bị nội bộ để sử dụng
trong thời gian tới.
- Trong lần tới, trình duyệt gửi bất kì yêu cầu nào tới webserver,
thì nó gửi những thông tin Cookie này tới Server và Server này
sử dụng thông tin đó dể nhận diện người dùng.
2.8 Upload File trong Servlet
Những điểm quan trọng cần ghi nhớ:

 Thuộc tính Phương thức của thẻ form nên được thiết lập
là phương thức POST và phương thức GET không thể
được sử dụng.
 Thuộc tính enctype của thẻ form nên được thiết lập là
multipart/form-data.
SVTH

15

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 action trong thẻ form nên được thiết lập là một
JSP file mà sẽ xử lý việc upload file tại Backend Server.
 Để upload một file đơn, nên sử dụng một thẻ <input../>
đơn với thuộc tính là type=”file”. Để cho phép upload
nhiều file lên, sử dụng nhiều thẻ input với các giá trị thuộc
tính khác nhau.
2.9 Một số phương thức khác

 Redirect Page: được sử dụng khi một tài liệu di chuyển tới một
địa chỉ mới và chúng ta cần gửi Client tới vị trí mới này hoặc có
thể vì cân bằng tải (load balancing) hoặc do ngẫu nhiên.
 Hit Counter: Nhiều khi chúng ta quan tâm đến tổng lượt click
trên một trang cụ thể trong website. Tính toán những lượt Click
này bởi sủ dụng một Servlet, bởi vì vòng đời được điều khiển bởi

Container, mà nso chạy trong đó.
 Auto Refresh: Cung cấp một kĩ thuật giúp bạn refresh trang web
một cách tự động sau một khoảng thời gian đã cho. Sử dụng
phương thức setIntHeader() của đối tượng Response.
 Gửi Email: cần cài đặt javaMail API và Java Activation
Framework (JAF).
 Package: Cấu trúc web application bao gồm các thư mục phụ
WEB-INF là chuẩn với tất cả các Java Web Application và xác
định bởi Servlet API.
3. Tìm hiểu về JSP
3.1 JSP là gì?
JSP là một công nghệ để phát triển các webpage mà hỗ trợ nội dung
động, giúp các lập trình viên chèn java code vào trong các HTML page bằng
việc sử dụng các JSP tag đặc biệt, hầu hết bắt đầu với <% và kết thúc với %>.

SVTH

16

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

- Là 1 tài liệu text có thể trả về cả static và dynamic content cho
trình duyệt.
- Static content và dynamic content có thể được phép lẫn với nhau.
- Static content: HTML, XML, Text.

- Dynamic content:
+ Mã java, các thẻ Custom tags.
+ Các thuộc tính hiển thị của javabean.
- JSP là mở rộng của Servlet, trong thực tế JSP và Servlet được sử
dụng đồng thời để phát triển ứng dụng.
- Trong mô hình MVC, thì JSP xử lý phần view, Servlet xử lý
phần controller.
3.2 Ưu điểm của JSP
 Tách biệt nội dung và cách trình bày.
 Đơn giản hóa việc phát triển ứng dụng web với JSP, Javabean.
 Hỗ trợ tái sử dụng phần mềm qua các components (javabean,
custom tags).
 Tự động biên dịch lại các trang JSP khi có sự thay đổi.

SVTH

17

LỚP: K59THA


BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

GVHD: TRẦN TRUNG HIẾU

3.3 Vòng đời của JSP

Hình 9: Vòng đời của JSP

 Biên dịch: Tiến trình biên dịch gồm 3 bước.

 Parse một JSP.
o Biên dịch JSP thành một Servlet.
o Biên dịch Servlet đó.
 Khởi tạo: Khi một container tải một JSP, nó gọi phương thức
jspInit() trước khi phục vụ bất kì yêu cầu nào. Nếu cần thực hiện
sự khởi tạo JSP riêng, ghi đè phương thức jspInit().
 Thực thi: Giai đoạn này trong vòng đời JSP biểu diễn tất cả các
tương tác với Request tới khi JSP đó bị hủy. Bất cứ khi nào một
trình duyệt yêu cầu một JSP và trang đã được tải và được khởi
tạo thì JSP engine triệu hồi phương thức _jspService(). Phương
thức _jspService() nhận một HttpServletRequest và một
HttpServletResponse.
 Hủy JSP: Giai đoạn hủy JSP trong vòng đời JSP biểu thị khi nào
thì một JSP bị gỡ bỏ khỏi một container.

SVTH

18

LỚP: K59THA


×