Mục tiêu đồ án nhằm: mô tả một cách chi tiết về những chức năng của Website giới thiệu mỹ phẩm. Minh họa chi tiết chức năng và xây dựng một hệ thống hoàn chỉnh. Giải thích rõ ràng về ràng buộc của hệ thống, trình bày tổng quan về giao diện và những tương tác với hệ thống. Để nắm rõ nội dung nghiên cứu mời các bạn cùng tham khảo đồ án.
Trang 1TRƯỜNG Đ I H C VINH Ạ Ọ
Trang 2Ngh An – 05/2019ệ
Trang 3TRƯỜNG Đ I H C VINH Ạ Ọ
VI N K THU T VÀ CÔNG NGHỆ Ỹ Ậ Ệ
XÂY D NG WEBSITE GI I THI U Ự Ớ Ệ
M PH M Ỹ Ẩ
Đ ÁN T T NGHI P Đ I Ồ Ố Ệ Ạ H C Ọ
NGÀNH CÔNG NGH THÔNG Ệ TIN
Gi ng viên h ả ướ ng d n: ThS. H TH HUY N ẫ Ồ Ị Ề
TH ƯƠ NG Sinh viên th c hi n: NGUY N TH NG C ự ệ Ễ Ị Ọ
Mã sinh viên: 145D4802010026
L p: 55K2 CNTT ớ
Ngh An – 05/2019ệ
Trang 4L I CAM ĐOANỜ
Em xin cam đoan đây là b n báo cáo đ án c a riêng em v i đ tài “Xâyả ồ ủ ớ ề
d ng website gi i thi u m ph m” và đự ớ ệ ỹ ẩ ượ ự ước s h ng d n ch d y c a gi ngẫ ỉ ạ ủ ả viên,
ThS. H Th Huy n Thồ ị ề ương. Các n i dung, k t qu cũng nh s li u trong độ ế ả ư ố ệ ề tài này là trung th c và ch a đự ư ược công b dố ướ ấ ỳi b t k hình th c nào.ứ
N u phát hi n có b t k s gian l n nào, em xin ch u hoàn toàn tráchế ệ ấ ỳ ự ậ ị nhi m v n i dung đ án c a mình.ệ ề ộ ồ ủ
Nghê An, ngày 15 tháng 05 năm 2019 ̣
Sinh viên th c hi nự ệ Nguy n Th Ng cễ ị ọ
Trang 5M C L CỤ Ụ
DANH M C TỤ Ừ
VI T Ế T T Ắ 6
DANH M CỤ B NG Ả BI U Ể 7
DANH M C CÁC HÌNH V ,Ụ Ẽ ĐỒ THỊ 8
MỞ Đ U Ầ 9
1 Lý do ch n ọ đề tài 9
2 M c đích ụ th c ự hi n ệ 10
3 Ph m vi ạ th c ự hi n ệ 10
4 N i dung ộ th c ự hi n ệ 10
5 C u trúc ấ đồ án 10
L IỜ C M Ả NƠ 11
CHƯƠNG 1. GI I THI U V NGÔN NG JAVA, JAVA SERVLET VÀ Ớ Ệ Ề Ữ MÔ HÌNH MVC 12
1.1 Tính năng kỹ thu t ậ 12
1.2 Công cụ phát tri n ể 12
1.3 Ngôn ngữ Java 12
1.3.1. L ch s ra đ i ngôn ị ử ờ ngữ Java 12
1.3.2. Java là gì? 14
1.3.3. Java đ ược dùng để làm gì? 15
1.4 Gi i thi u v ớ ệ ề Java Servlet 15
1.4.1. Java Servlet là gì? 15
1.4.2. Ư u đi mể c a Servletủ 18
1.5 Mô hình MVC 19
1.5.1 L ch s ị ử hình thành 19
1.5.2 MVC là gì? 19
CHƯƠNG 2. KH O SÁT VÀ PHÂN TÍCHẢ HỆ TH NG Ố 22
2.1 Kh o sát và xác đ nh yêu c u ả ị ầ bài toán 22
Trang 62.1.1 Mô tả bài toán 22
2.1.2 Kh o sát hi n tr ng và xây d ng h ả ệ ạ ự ệ th ng m i ố ớ 24
2.1.3 Phân tích ch c năng ứ 24
2.2 Phân tích hệ th ng ố 25
2.2.1 Các tác nhân 25
2.2.2 S đ ơ ồ Use Case 26
CHƯƠNG 3. THI T K VÀẾ Ế L P Ậ TRÌNH 30
3.1 Thi t k c s ế ế ơ ở d li u ữ ệ 30
3.1.1 Các b ng trong c s ả ơ ở d li u ữ ệ 30
3.1.2 M i quan h gi a ố ệ ữ các b ng ả 33
3.2 Ki n ế trúc Project 33
3.3 Danh sách File Types 34
3.3.1 WebContent 34
3.3.2.Java Resources 35
CHƯƠNG 4: CÀI Đ T TH NGHI MẶ Ử Ệ 37
4.1 Công cụ s d ng ử ụ 37
4.2.Minh h a ọ website 37
4.2.1 Trang đăng ký 37
4.2.2 Trang đăng nh p ậ 38
4.2.3.Trang hi n th ể ị s n ph mả ẩ 38
4.2.4.Trang tìm ki m ế s n ph mả ẩ 39
4.2.5.Trang hi n th s n ph m theo danh m c ể ị ả ẩ ụ s n ph mả ẩ 40
4.2.6.Trang hi n th s n ph m theo ể ị ả ẩ th ương hi u ệ 41
4.2.7 Trang chi ti t ế s n ph mả ẩ 42
4.2.8.Trang đ t hàngặ 42
4.2.9.Trang qu n lý c a c ng ả ủ ộ tác viên 43
4.2.10 Trang qu n lý ả c a Adminủ 43
Trang 7K TẾ
LU N Ậ 44 TÀI LI UỆ
THAM KH O Ả 45
Trang 8DANH M C T VI T T TỤ Ừ Ế Ắ
T vi t t từ ế ắ Chú thích
CSDL C s d li uơ ở ữ ệ
GNU General Public License, là gi y phép ph n m m ấ ầ ề
t do đự ượ ử ục s d ng r ngộ rãi
CGI Common Gateway Interface (Giao di n c ng ệ ổ
chung)API Application Programming Interface (giao di n ệ
l p trình ng d ng)ậ ứ ụMVC Model View Controller
CTV C ng tác viênộ
Trang 10DANH M C CÁC HÌNH V , Đ THỤ Ẽ Ồ Ị
Hình 1.4.1 Vai trò c a Servlet ủ
Hình 1.5.2 Mô hình MVC
Hình 2.2.2.1 Qu n lý ngả ười dùng Admin
Hình 2.2.2.2 Qu n lý thả ương hi u ệ
Trang 11Hình 4.2.9 Trang qu n lý c a c ng tác ả ủ ộviên Hình 4.2.10 Trang qu n lý c a ả ủAdmin
Trang 12M Đ UỞ Ầ
1 Lý do ch n đọ ề tài
Ngày nay, công ngh thông tin đã có nh ng bệ ữ ước phát tri n m nh mể ạ ẽ theo c chi u r ng và sâu. Máy tính đi n t không còn là m t th phả ề ộ ệ ử ộ ứ ương ti nệ quý hi m mà đang ngày càng tr thành m t công c làm vi c và gi i trí thôngế ở ộ ụ ệ ả
d ng c a con ngụ ủ ười, không ch n i làm vi c mà còn ngay c trong gia đình.ỉ ở ơ ệ ả
Đ c bi t là công ngh thông tin đặ ệ ệ ược áp d ng trên m i lĩnh v c kinh t , chínhụ ọ ự ế
tr , xã h i. Nó đóng vai trò h t s c quanị ộ ế ứ tr ng.ọ
Trong ho t đ ng s n xu t, kinh doanh gi đây thạ ộ ả ấ ờ ương m i đi n t vàạ ệ ử
ng d ng công ngh thông tin đã kh ng đ nh đ c vai trò xúc ti n và thúc đ y
s phát tri n c a doanh nghi p. Đ i v i m t c a hàng hay shop, vi c qu ng báự ể ủ ệ ố ớ ộ ử ệ ả
và gi i thi u đ n khách hàng các s n ph m m i đáp ng đớ ệ ế ả ẩ ớ ứ ược nhu c u c aầ ủ khách hàng đ ng th i cho khách hàng th y đồ ờ ấ ược s khác bi t gi a các s nự ệ ữ ả
ph m c a các nhà s n xu t (thẩ ủ ả ấ ương hi u) khác nhau s là c n thi t. V y ph iệ ẽ ầ ế ậ ả
qu ng bá th nào đó là xây d ng đả ế ự ược m t Website cho c a hàng c a mìnhộ ử ủ
gi i thi u t t c các s n ph m c a mìnhớ ệ ấ ả ả ẩ ủ bán
Vì v y, em đã th c hi n đ tài “Xây d ng website gi i thi u m ph mậ ự ệ ề ự ớ ệ ỹ ẩ ” cho m t s thộ ố ương hi u m ph m. Ngệ ỹ ẩ ười ch c a hàng ho c c ng tác viênủ ử ặ ộ
đ a các s n ph m đó lên website và qu n lý b ng website đó, khách hàng cóư ả ẩ ả ằ
th đ t hàng trên website mà không c n đ n c a hàng. Ch c a hàng s tr cể ặ ầ ế ử ủ ử ẽ ự
ti p liên h cho khách hàng khi nh n đế ệ ậ ược đ n đ t hàng qua website. V iơ ặ ớ
nh ng tính năng c b n, Website giúp g n k t ngữ ơ ả ắ ế ười mua và ch c a hàng dủ ử ễ dàng, ti t ki m th i gian cho khách hàng h n vi c ph i đ n tr c ti p c a hàngế ệ ờ ơ ệ ả ế ự ế ử
đ mua s n ph m. Nó còn giúp ngể ả ẩ ười ch c a hàng d dàng n m b t, qu n líủ ử ễ ắ ắ ả
s n ph m c a mình và truy n thông qu ng cáo đả ẩ ủ ề ả ược r ng h n, đ ng th iộ ơ ồ ờ
c nh tranh cao v i các thạ ớ ương hi u khác ngay trên chính website gi i thi u mệ ớ ệ ỹ
ph mẩ chung
Ngoài ra, b n thân cũng là m t ngả ộ ười thích xem và tìm hi u các thể ương hi uệ
m ph m khác nhau, b i v y vi c l a ch n đ tài “Xây d ng website gi iỹ ẩ ở ậ ệ ự ọ ề ự ớ
Trang 13thi u m ph m” làm đ tài b o v đ án t t nghi p đ i h c cũng là m t sệ ỹ ẩ ề ả ệ ồ ố ệ ạ ọ ộ ự
l a ch n em nghĩ là khá phù h p v i b n thânự ọ ợ ớ ả mình
Trang 142 M c đích th cụ ự hi nệ
M c đích c a tài li u này mô t m t cách chi ti t v nh ng ch c năngụ ủ ệ ả ộ ế ề ữ ứ
c a “Website gi i thi u m ph m”. Nó minh h a chi ti t ch c năng và xâyủ ớ ệ ỹ ẩ ọ ế ứ
d ng m t h th ng hoàn ch nh. Nó gi i thích rõ ràng v ràng bu c c a hự ộ ệ ố ỉ ả ề ộ ủ ệ
th ng, trình bày t ng quan v giao di n và nh ng tố ổ ề ệ ữ ương tác v i h th ng. Tàiớ ệ ố
li u này dùng mô t trình bày l i nh m ch nh s a và đi u ch nh đệ ả ạ ằ ỉ ử ề ỉ ượ ố ơc t t h n
- Phương pháp phân tích t ng h p kinhổ ợ nghi mệ
- Tham kh o các h th ng website m ph m l n Vi tả ệ ố ỹ ẩ ớ ở ệ Nam
Trang 15hướng d n gi ng d y c a các cô th y trong Vi n ẫ ả ạ ủ ầ ệ K ỹ thu t & Công ngh vàậ ệ
s giúp đ nhi t tình c a m t s anh ch có kinh nghi m, em đã hi u và c ngự ỡ ệ ủ ộ ố ị ệ ể ủ
c , n m v ng h n các ki n th c đã đố ắ ữ ơ ế ứ ược h c t các đ t th c t p trọ ừ ợ ự ậ ước và có cái nhìn th c t h n v chuyên ngành mình h c, giúp em hoàn thành bài báoự ế ơ ề ọ cáo đ ánồ này
Trong quá trình h c t p cũng nh làm báo cáo đ tài, m c dù đã r t cọ ậ ư ề ặ ấ ố
g ng nh ng do kinh nghi m th c ti n và trình đ còn h n ch nên khó tránhắ ư ệ ự ễ ộ ạ ế
kh i sai sót. Em r t mong nh n đỏ ấ ậ ược ý ki n đóng góp t các th y cô đ em cóế ừ ầ ể thêm nhi u kinh nghi m và hề ệ ướng phát tri n đ tài trong tể ề ương lai
Ngh An , ngày 15 tháng 05 năm 2019 ệ
Sinh viên th c hi nự ệ Nguy n Th Ng cễ ị ọ
Trang 16CHƯƠNG 1. GI I THI U V NGÔN NG JAVA, JAVA SERVLET Ớ Ệ Ề Ữ
VÀ MÔ HÌNH MVC
1.1 Tính năng kỹ thu t ậ
Website được thi t k theo hế ế ướng m , có th nâng c p và c p nh t ở ể ấ ậ ậthêm các tính năng m i khi có nhuớ c u.ầ
H tr s d ng ti ng vi t theo đúng chu nỗ ợ ử ụ ế ệ ẩ Unicode
Tương thích v i các lo i trình duy t Internet nh Google Chome, ớ ạ ệ ư
Mozilla Firefox, và Internet Explorer…
Hi n th trên m i giao di n nh mobile,ệ ị ọ ệ ư Ipad,…
Ứng d ng các công ngh phát tri n web m i nh t , đ ng th i s d ngụ ệ ể ớ ấ ồ ờ ử ụ các công c ph bi n nh Photoshop,… và phát tri n trên mô hình MVCụ ổ ế ư ể
c a Java đ mang đ n cho website m t dáng v s ng đ ng và hi n đ i .ủ ể ế ộ ẻ ố ộ ệ ạ
S d ng các hi u ng làm n i b t , lôi cu n cho giao di nử ụ ệ ứ ổ ậ ố ệ website.1.2 Công c phátụ tri nể
Đ tài đề ược xây d ng d a trên các công c , ngôn ng :ự ự ụ ữ
Trang 17Java ban đ u đầ ược phát tri n b i ể ở James Gosling t i ạ Sun microsystems (
đã được Oracle mua l i ạ ) và phát hành vào năm 1995 nh là m t thành ph n c tư ộ ầ ố lõi c a ủ n n t ng Java ề ả c a Sun microsystems . Các ủ trình biên d ch ị Java , máy oả
Trang 18và th vi n l p ư ệ ớ ban đ u và ầ tham chi u ế ban đ u đầ ược Sun phát hành theo gi yấ phép đ c quy n ộ ề K t tháng 5 năm 2007, tuân th các thông s k thu tể ừ ủ ố ỹ ậ
c a ủ Quy trình c ng đ ng Java ộ ồ , Sun đã c p phép l i ấ ạ h u h t các công nghầ ế ệ Java c a mình theo ủ Gi y phép công c ng GNUấ ộ Trong khi đó, nh ng ngữ ườ ikhác đã phát tri n các tri n khai thay th cho các công ngh M t tr i này,ể ể ế ệ ặ ờ
ch ng h n nh ẳ ạ ư Trình biên d ch GNU cho Java ị (trình biên d ch mã byte),ị
GNU Classpath (th vi n chu n) và ư ệ ẩ IcedTea Web (plugin trình duy t cho cácệ applet)
K t ngày 20 tháng 3 năm 2018 , c Java 8 và 11 đ u để ừ ả ề ược h tr chínhỗ ợ
th c. Các phiên b n phát hành chính c a Java, cùng v i ngày phát hành c aứ ả ủ ớ ủ chúng:
mi n phí cho m c đích thễ ụ ương m i, vào tháng giêng năm 2019. Java 8 s đạ ẽ ượ c
Trang 19h tr v i b n c p nh t nào cho m c đích cá nhân lên đ n ít nh t là thángỗ ợ ớ ả ậ ậ ụ ế ấ
mười hai năm 2020. Oracle và nh ngữ ngườ khác "khuyên b ni ạ nên gỡ bỏ phiên b nả cũ c aủ Java" vì
Trang 20r i ro nghiêm tr ng do ch a đủ ọ ư ược gi i quy t v n đ an ninh. ả ế ấ ề Oracle h tr mỗ ợ ở
r ng cho Java 6 đã k t thúc vào tháng 12 năm 2018.ộ ế
1.3.2 Java là gì?
Java là m t ngôn ng l p trình hộ ữ ậ ướng đ i tố ượng (OOP) và d a trên cácự
l p. Khác v i ngôn ng l p trình thông thớ ớ ữ ậ ường, thay vì biên d ch mã ngu nị ồ thành mã máy ho c thông d ch mã ngu n khi ch y, Java đặ ị ồ ạ ược thi t k đ biênế ế ể
d ch mã ngu n thành bytecode, bytecode sau đó s đị ồ ẽ ược môi trường th c thiự
ch y.ạ
Đi u quan tr ng v Java giúp phân bi t nó v i nhi u công ngh khác làề ọ ề ệ ớ ề ệ
nó được thi t k sao cho mã đế ế ược vi t b ng Java có th ch y trên b t k hế ằ ể ạ ấ ỳ ệ
th ng nào mà máy o Java (JVM) có th ch y. Khái ni m vi t m t l n,ố ả ể ạ ệ ế ộ ầ
ch y m i n i đạ ọ ơ ượ ử ục s d ng nh m t kh u hi u đ thúc đ y các kh năng đaư ộ ẩ ệ ể ẩ ả
n n t ng c a Java.ề ả ủ
B n thân ngôn ng l p trình Java là ngôn ng hả ữ ậ ữ ướng đ i tố ượng, v m tề ặ
cú pháp tương t nh C ++. Không gi ng nh m t s ngôn ng khác đi trự ư ố ư ộ ố ữ ướ c
nó, đã tri n khai các l p nh ng không yêu c u s d ng chúng, các chể ớ ư ầ ử ụ ươ ngtrình Java luôn được thi t k v i thi t k hế ế ớ ế ế ướng đ i tố ượng
Trong khi ngôn ng Java và máy o Java ch y mã Java đữ ả ạ ược ghép n iố
ch t ch , hai ngôn ng này tách bi t nhau. Mã t các ngôn ng khác đặ ẽ ữ ệ ừ ữ ược thi tế
k riêng cho JVM, nh Groovy và Scala, cũng có th ch y trên máy oế ư ể ạ ả Java
Hãy c n th n đ ng nh m l n Java v i JavaScript. M c dù c hai ngônẩ ậ ừ ầ ẫ ớ ặ ả
ng hi n đữ ệ ược tìm th y trong nhi u môi trấ ề ường, JavaScript, được s d ngử ụ
ph bi n nh t đ tăng s c m nh tổ ế ấ ể ứ ạ ương tác bên trong trình duy t web, là m tệ ộ công c hoàn toàn khác. Khác v i m t ph n c a cái tên, c hai không có nhi uụ ớ ộ ầ ủ ả ề
đi m chung.ể
Có 5 m c tiêu chính trong vi c xây d ng ngôn ng Java:ụ ệ ự ữ
3.2.1 Đ n gi n, hơ ả ướng đ i tố ượng và quen thu c.ộ
3.2.2 M nh m và anạ ẽ toàn
3.2.3 Ki n trúc trung l p và diế ậ đ ng.ộ
3.2.4 Th c thi v i hi u su tự ớ ệ ấ cao
Trang 213.2.5 D ch ra bytecode, phân lu ng và năngị ồ đ ng.ộ
Trang 221.3.3 Java được dùng đ làmể gì?
T t c các lo i ng d ng, t các trò ch i c c k ph bi nấ ả ạ ứ ụ ừ ơ ự ỳ ổ ế
nh Minecraft đ n môi trư ế ường phát tri n tích h p Eclipse để ợ ược các nhà phát tri n s d ng cho nhi u ngôn ng và n n t ng khác nhau, ch yể ử ụ ề ữ ề ả ạ trên Java. Java cũng c p m t s ng d ng đấ ộ ố ứ ụ ược xây d ng riêng choự web. M c dù v i nh ng c i ti n v JavaScript và HTML, các appletặ ớ ữ ả ế ề Java không còn là tiêu chu n th c t cho các ng d ng web tẩ ự ế ứ ụ ương tác, nhi u ngề ườ ẫi v n d a vào Java đ cung c p tr i nghi m tự ể ấ ả ệ ương tác trên trình duy t.ệ
Ứng d ng JavaFX: ụ JavaFX là m t ộ n n t ng ph n m m ề ả ầ ề để
t o và phân ph i ạ ố các ng d ng máy tính đ bàn ứ ụ ể , cũng nh ư các ngứ
d ng Internet phong phúụ
(RIA) có th ch y trên nhi u lo i thi tể ạ ề ạ ế
b JavaFX d đ nh thay th ị ự ị ế Swing làm th vi n ư ệ GUI tiêu chu nẩ cho Java SE , nh ng c hai s đư ả ẽ ược đ a vào trong tư ương lai g n.ầ JavaFX có h tr cho ỗ ợ máy tính đ bàn ể và trình duy t ệ web trên Microsoft Windows , Linux và macOS . JavaFX không h tr giao di n h đi uỗ ợ ệ ệ ề hành g c.ố
M t s n n t ng cung c p h tr ph n c ng tr c ti p choộ ố ề ả ấ ỗ ợ ầ ứ ự ế Java; có các b đi u khi n vi mô có th ch y mã byte Java trong ph nộ ề ể ể ạ ầ
c ng thay vì máy o Java ph n m m, và m t s b x lý d a trên ứ ả ầ ề ộ ố ộ ử ự ARM
Ngày nay, t t c chúng ta đ u nh n th c đấ ả ề ậ ứ ượ ự ầc s c n thi t c a vi cế ủ ệ
t oạ các trang web đ ng, t c là nh ng trang có kh năng thay đ i n i dung trangộ ứ ữ ả ổ ộ theo th iờ gian ho cặ có thể t oạ n iộ dung theo yêu c uầ mà khách hàng nh nậ
đượ N uc ế b nạ thích mã hóa b ngằ Java, thì b nạ sẽ r tấ vui khi bi tế r ngằ sử
d ngụ Java cũng t nồ t iạ m tộ cách để t oạ các trang web đ ngộ
và cách đó là Java Servlet.Servlets là các chương trình Java ch y trên máy ch ng d ng web ho cạ ủ ứ ụ ặ máy ch ng d ng Java. Chúng đủ ứ ụ ược s d ng đ x lý yêu c u thu đử ụ ể ử ầ ượ ừ c t
Trang 23máy ch web, x lý yêu c u, t o ph n h i, sau đó g i ph n h i l i cho máyủ ử ầ ạ ả ồ ử ả ồ ạ
ch web.ủ
Thu c tính c a Servlets:ộ ủ
15
Trang 24Servlets có kh năng x lý yêu c u ph c t p thu đả ử ầ ứ ạ ượ ừc t máy
ch web. Th c thi Servlets bao g m sáu bủ ự ồ ướ ơ b n:c c ả
1 Các khách hàng g i yêu c u đ n máy chử ầ ế ủ web
2 Máy ch web nh n đủ ậ ược yêu c u.ầ
3 Máy ch web chuy n yêu c u đ n servlet tủ ể ầ ế ươ ng.ngứ
4 Servlet x lý yêu c u và t o ph n h i dử ầ ạ ả ồ ướ ại d ng đ uầ ra
5 Servlet g i ph n h i tr l i máy chử ả ồ ở ạ ủ web
6 Máy ch web s g i ph n h i l i cho máy khách và trình duy t máy ủ ẽ ử ả ồ ạ ệkhách s hi n th nó trên mànẽ ể ị hình
Công ngh ệJava servlet cung c p cho các nhà phát tri n Web m t c chấ ể ộ ơ ế
nh t quán, đ n gi n đ m r ng ch c năng c a máy ch Web và đ truy c pấ ơ ả ể ở ộ ứ ủ ủ ể ậ các h th ng kinh doanh hi n có. Các ệ ố ệ máy ch là ủ các thành ph n Java EE ầ phía máy ch ủ t o ra các ph n h i (thạ ả ồ ường là các trang HTML ) cho các yêu c uầ (thường là các yêu c u ầ HTTP ) t các ừ máy khách
API servlet Java m t m c đ nào đó đã đở ộ ứ ộ ược thay th b i hai công ế ởngh Java tiêu chu n cho các d ch v web:ệ ẩ ị ụ
Các Java API cho các d ch v Web RESTful ị ụ (JAXRS 2.0) h u ích cho ữAJAX, JSON và REST d chị v ụ
Các Java API cho các d chị vụ Web XML (JAXWS) h uữ ích cho SOAP Web Services
Các trang JavaServer (JSP) là các thành ph n Java EE ầ phía máy ch ủ t oạ
ra các ph n h i, đi n hình là các trang ả ồ ể HTML , cho các yêu c u ầ HTTP t cácừ
máy khách . Các t p nhúng nhúng mã Java vào m t trang HTML b ng cách sệ ộ ằ ử
d ng các ụ d u phân cách ấ đ c bi t <% và %> . M t t p JSP đặ ệ ộ ệ ược biên d chị thành
m t ộ servlet Java , m t ng d ng Java theo đúng nghĩa c a nó, l n đ u tiên nó ộ ứ ụ ủ ầ ầ
được truy c p. Sau đó, servlet đậ ượ ạ ẽ ạc t o s t o ra ph n h i.ả ồ
Trang 25M t trình duy t ch p nh n đ u vào d ng ộ ệ ấ ậ ầ ở ạ HTML, khi ngườ ử ụ i s d ng
nh n m t nút đ yêu c u m t s thông tin nào đó, m t ấ ộ ể ầ ộ ố ộ Servlet đ n gi n đơ ả ượ c
g i đ x lý các yêu c u đó. Các công vi c chính c a ọ ể ử ầ ệ ủ Servlet được mô t kháiả quát trong hình 1, bao g m:ồ
Trang 26 Đ c các d li u tọ ữ ệ ường minh đượ Client g i đ n t các yêu c u (d li uc ử ế ừ ầ ữ ệ theo các khuôn d ng – ạ form data).
Đ c các d li u không tọ ữ ệ ường minh đượ Client g i đ n t các yêu c u c ử ế ừ ầ(d li u trong ph n đ u c a yêu c u – ữ ệ ầ ầ ủ ầ request headers)
X lý và l u tr các d li u đử ư ữ ữ ệ ược cung c p dấ ướ ạ HTML.i d ng
G i tr l i d li u tử ả ờ ữ ệ ường minh cho Client (d ng ạ HTML), cung c p các ấ
n i dung đ ng, ví d tr l i yêu c u ộ ộ ụ ả ờ ầ Client v các câu truy v n vào cácề ấ CSDL
Qu n lý các thông tin tr ng thái và tr l i d li u không tả ạ ả ờ ữ ệ ường minh cho Client (các mã tr ng thái và các ph n đ u c a trạ ầ ầ ủ ả l i).ờ
CGI: Theo cách thông th ng, đ b sung các ch c năng vào cho m tườ ể ổ ứ ộ Web Server người ta hay s d ng ử ụ Common Gateway Interface (CGI), m tộ giao di n đ c l p v i ngôn ng cho phép m t ệ ộ ậ ớ ữ ộ Server kh i đ ng m t ti nở ộ ộ ế trình ngo i đ nh n thông tin đạ ể ậ ược yêu c u thông qua các bi n môiầ ế
trường. M i yêu c u đỗ ầ ược tr l i b i m t ti n trình riêng thông qua m tả ờ ở ộ ế ộ
đ i di n riêng c a m t chạ ệ ủ ộ ương trình CGI ho c b i m t k ch b n ặ ở ộ ị ả CGI (thường được vi t b ng ngôn ng thông d ch nh ế ằ ữ ị ư Perl)
Trang 27 Fast CGI: Open Marked đã phát tri n m t chu n khác thay cho ể ộ ẩ CGI đượ c
g i là ọ Fast CGI. Fast CGI hành đ ng gi ng nh ộ ố ư CGI. Nó khác ch , ở ỗ Fast CGI t o ra m t ti n trình b n v ng cho t ng chạ ộ ế ề ữ ừ ươ trình.ng
M t s chộ ố ương trình ng d ng khác nh ứ ụ ư ASP và Java Script cũng h trỗ ợ
đ t o ra các ng d ng ể ạ ứ ụ Web. ASP đượ Microsoft phát tri n đ t o ra cácc ể ể ạ
n i dung cho các trang ộ Web đ ng. Trong ộ ASP, trang HTML có th nhúngể
nh ng ph n nh đữ ầ ỏ ược vi t b ng ế ằ VBScript ho c ặ JScript. Netscape đ a ra kư ỹ thu t đậ ược g i là ọ JavaScript, cho phép đ a các ph n mã l nh nh nhúngư ầ ệ ỏ vào trang HMTL, nh m t o ra nh ng n i dung ằ ạ ữ ộ Web đ ng m t cách linhộ ộ
h at h n. Ngoài ra, ọ ơ Netscape còn cung c p ấ NSAPI, Microsoft đ a ra ư ISAPI cho các Web Server c aủ h ọ
1.4.2. Ưu đi m c aể ủ Servlet
Servlet đượ ử ục s d ng đ thay th cho nh ng công ngh Web đ ng. Vi c s ể ế ữ ệ ộ ệ ử
d ng Servlet mang l i nh ng l i th :ụ ạ ữ ợ ế
D di chuy n ễ ể Servlet được vi t b ng ế ằ Java nên nó có tính di đ ng cao,ộ
th c hi n đự ệ ược trên nhi u h đi u hành, trên các ề ệ ề Web Server khác nhau. Khái ni m “Vi t m t l n, ch y m i n i” cũng r t đúng v iệ ế ộ ầ ạ ở ọ ơ ấ ớ Servlet
M nh m ạ ẽ Servlet h tr r t hi u qu cho vi c s d ng các giao di n lõiỗ ợ ấ ệ ả ệ ử ụ ệ API nh l p trình m ng, x lý đa lu ng, x lý nh, nén d li u, k t n iư ậ ạ ử ồ ử ả ữ ệ ế ố các CSDL, b o m t, x lý phân tán và tri u g i t xa ả ậ ử ệ ọ ừ RMI, CORBA, v.v.
Nó cũng thích h p đ trao đ i tin, truy n thông gi a ợ ể ổ ề ữ Client và Server m tộ cách bình thường
Hi u qu ệ ả Servlet có tính hi u qu cao. M t khi đệ ả ộ ượ ả ềc t i v , nó s đẽ ượ c
l u l i trong b nh c a máy ch ư ạ ộ ớ ủ ủ Servlet duy trì các tr ng thái c a nó,ạ ủ
do v y nh ng tài nguyên ngo i nh vi c k t n i v i ậ ữ ạ ư ệ ế ố ớ CSDL cũng sẽ
Trang 28Đ ng th i nó x lý các l i r t an toàn theo c ch x lý ngo i l c aồ ờ ử ỗ ấ ơ ế ử ạ ệ ủ Java.
Tính tích h p ợ Các Servlet được tích h p v i các ợ ớ Server. Chúng c ng tácộ
v i các ớ Server t t h n các chố ơ ương trình CGI
Trang 29 Tính linh ho t. ạ Các Servlet hoàn toàn m m d o. M t ề ẻ ộ HTTP Servlet đượ ử c s
d ng đ t o ra m t trang ụ ể ạ ộ Web, sau đó ta có th s d ng th ể ử ụ ẻ <Servlet> để
đ a nó vào trang ư Web tĩnh, ho c s d ng v i các ặ ử ụ ớ Servlet khác đ l c raể ọ các n i dung c nộ ầ thi t.ế
1.5 Mô hình MVC
1.5.1 L ch s hình ị ử thành.
MVC được phát minh b i m t giáo s ngở ộ ư ười Na Uy tên là Trygve Reenskaug và được ông công b , trình bày ngày 10/12/1979 t i phòng thíố ạ nghi m Xerox PARC Palo Alto.ệ ở
Trang 30Hình 1.5.2 Mô hình MVC.
Trang 31 Model là m t đ i tộ ố ượng ho c t p h p các đ i tặ ậ ợ ố ượng bi u di n choể ễ
ph n d li u c a chầ ữ ệ ủ ương trình, ch a các th c th , g m các d li uứ ự ể ồ ữ ệ ( private ) , kèm theo các phương th c set/get; th c hi n các công vi cứ ự ệ ệ liên quan đ n CSDL nh k t n i, l y d li u , truy v n, ch nh s a, thêmế ư ế ố ấ ữ ệ ấ ỉ ử xóa d li u tr c ti p v i database; Truy n yêu c u t Servlet và l y dữ ệ ự ế ớ ề ầ ừ ấ ữ
v choề Servlet
Ch u trách nhi m chính trong mô hình hóa đ i tị ệ ố ượng. Có nhi mệ v :ụ+ Nh n các yêu c u t View.ậ ầ ừ
+ Th c thi các yêu c u đó (tính toán, k t n iự ầ ế ố CSDL )
+ Tr v các giá tr tính toánả ề ị choView
View(Khung nhìn): là giao di n c a h th ng tệ ủ ệ ố ương tác tr c ti p v iự ế ớ
người dùng, là các trang JSP, nhi m v tr v hi n th cho ngệ ụ ả ề ể ị ười như
hi n th form nh p li u, hi n d li u ra màn hình, cung c p các menu,ể ị ậ ệ ệ ữ ệ ấ nút b m, h p đ i tho i, ch n l a , đ ngấ ộ ố ạ ọ ự ể ười dùng có th thêm, xóa,ể
s a,ử tìm ki m, các k t qu tr v tế ế ả ả ề ừ Model…
- Controller(B đi u khi n): Là các Servlet, có nhi m v nh n các yêuộ ề ể ệ ụ ậ
c u t ngầ ừ ười dùng, đ a yêu c u và nh n d li u t t ng Model, t đóư ầ ậ ữ ệ ừ ầ ừ chuy n hể ướng và tr v cho t ngả ề ầ View
Java là m t ngôn ng l p trình hộ ữ ậ ướng đ i tố ượng thu n túy nên vi c ápầ ệ
d ng MVC vào các ph n m m vi t b ng Java r t d dàng và hi n nhiên. Cóụ ầ ề ế ằ ấ ễ ể hai hình m u chính c a phẫ ủ ương pháp thi t k MVC trong Java là MVC modelế ế