Professional Documents
Culture Documents
Sinh vin thc hin: 0612089 Nguyn c Linh Giang 0612119 Nguyn c Hong
Mc lc
1 Gii thiu v Spring MVC Framework :
1.1 1.2 Spring Framework : Spring MVC Framework : Cc thnh phn quan trng nht v chc nng ca mt Spring MVC framework: Lung x l request trong Spring MVC Framework :
2
2 3 3 4
1.2.1 1.2.2
5
5 6 6 9 11
22
22 22 22 28 32 39 42 46 49 52
4 5
56 56
FIT-HCMUS
Trang 1
Inversion of Control container: hiu chnh cc components ca chng trnh v qun l vng i (lifecycle) ca cc i tng Java. Aspect-oriented programming: k thut lp trnh mi cho php ng gi nhng hnh vi c lin quan n nhiu lp Data access: lm vic vi relational database management systems (h thng qun l c s d liu quan h) trn nn Java platform s dng JDBC v cng c object-relational mapping. Transaction management: thng nht cc hm APIs qun l transaction v iu phi transactions cho i tng Java. Model-View-Controller (MVC) mt framework da trn HTTP v Servlet cung cp kh nng m rng v ty bin nhiu hn. Remote Access framework: hiu chnh RPC-style trong vic import v export cc i tng java thng qua mng li h tr phng thc RMI, CORBA v HTTP bao gm SOAP. Convention-over-configuration: mt chng trnh nhanh mnh trong vic pht trin cc hng gii quyt cho ci chng trnh s dng Spring enterprise. Batch processing: mt framework tt cho vic x l mt lng ln thng tin v hm nh logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. Authentication and authorization: hiu chnh ch an tan bo mt, cung cp cc phng thc, chng trnh mc c bn cho chng trnh s dng Spring. Remote Management: hiu chnh cch hin th v qun l cc i tng java mc local hoc remote qua JMX. Messaging: hiu chnh vic x l cc thong tin trao i gia cc i tng da trn chun JMS APIs. Testing: cung cp cc lp h tr vic vit cc unit kim tra v phn tch li.
Trong ti tm hiu ny. Ch quan tm v cp n module Model-View-Controller (MVC) trong Spring Framework. Ta gi n l Spring MVC Framework.
FIT-HCMUS
Trang 2
Cc thnh phn quan trng nht v chc nng ca mt Spring MVC framework: DispatcherServlet l mt lp ng ra qun l ton b cc hnh ng ca framework (front controller) trong sut qu trnh thc thi cc lnh thng qua HTTP request. HandlerMapping: chn mt i tng s x l cc request da trn cc thuc tnh v iu kin ca cc request . HandlerAdapter: thc thi cc handler c chn. Controller: ng gia Model v View qun l cc request c gi ti v chuyn cc response chnh xc.
View: chu trch nhim tr cc respone cho client. ViewResolver: chn phng php view da trn cc logical name c sn ca View. HandlerInterceptor: ngn chn (lc) cc request t user. N c coi nh Servlet filter (ko bt buc v ko b qun l bi DispatcherServlet). LocaleResolver: x l v lu mt phn cc thng tin ca user. MultipartResolver: lm cho vic upload file d dng hn bng cch gi cc request li.
FIT-HCMUS
Trang 3
Trch t http://www.vaannila.com/spring/spring-mvc-tutorial-1.html
Vic x l request v response trong Spring MVC Framework c m t nh sau : Bc 1 : o DispatcherServlet nhn Request. o DispatcherServlet tra trong HandlerMapping v gi Controller kt hp vi Request. Bc 2 : o Controller x l Request bng cch gi nhng phng thc dch v thch hp v sau tr v mt i tng ModelAndView cho DispatcherServlet. i tng ModelAndView ny cha d liu trong i tng Model v tn ca View. Bc 3 : o DispatcherServlet gi tn ca View n cho mt ViewResolver. ViewResolver s tm View thc s cn dng. Bc 4 : o DispatcherServlet truyn i tng Model n cho View xc nh hin th kt qu. o View ly d liu trong i tng Model v hin th kt qu cho ngi dng.
FIT-HCMUS
Trang 4
FIT-HCMUS
Trang 5
1. Click File
5. Click Next
FIT-HCMUS
Trang 6
8. Click Next
FIT-HCMUS
Trang 7
FIT-HCMUS
Trang 8
2.2.2
Trong file web.xml, ta thy c dng thit lp ch trang ch ca ng dng l redirect.jsp nh sau cui file :
Trong file redirect.jsp ch lm duy nht mt vic l redirect tt c nhng request gi n ti index.htm :
FIT-HCMUS
Trang 9
Class DispatcherServlet qun l nhng request n ng dng da trn nhng thit lp cu hnh c tm thy trong file dispatcher-servlet.xml Gi ta xt n file dispatcher-servlet.xml , ta ch n on code sau :
Khi DispatcherServlet nhn mt request khp *.htm nh l index.htm n s tm bn trong urlMapping ny mt controller cung cp cho request .
nh x index.htm vi indexController
viewResolver nhn vo Logical view name t indexController v tm trong th mc /WEB.INF/jsp/ trang jsp c tn tng ng.
iu ny cho php nh v nhng file trong gi file WAR ca ng dng lc runtime v response vi trang jsp tng ng.
FIT-HCMUS
Trang 10
ng dng ny s bao gm 2 trang JSP hay cn gi l 2 View trong cng ngh Spring Web MVC. View th nht cha 1 form HTML vi mt field yu cu nhp tn ca ngi dng. View th 2 l mt trang n gin ch vic hin th : Hello + [tn ngi dng va nhp]
Nhng views ny s c qun l bi mt controller, controller ny s nhn request v quyt nh view no c tr v. N cng s truyn cho view c chn nhng thng tin cn thit view hin th, nhng thng tin ny c gi l Model. Ta s t tn controller ny l HelloController. Trong nhng ng dng web phc tp, nhng x l nghip v thuc tng Business Logic khng c cha trc tip trong controller m thay vo nhng thc th khc gi l service c dng bi controller khi n cn thc hin nhng nghip v ca tng Business Logic. Trong ng dng ny, nghip v cn x l l vic tnh ton v to ra cu thng ip hello, cho nn v mc ch ny ta to mt lp HelloService.
2.2.3.2 Implementing the HelloService :
FIT-HCMUS
Trang 11
5. Click Finish
Ta c lp HelloService c to :
FIT-HCMUS
Trang 12
2.2.3.3 Implementing the Controller and Model y ta c th dng mt SimpleFormController qun l d liu ngi dng v xc nh view no c tr v.
1. Click File 2. Click New File
5. Click Next
FIT-HCMUS
Trang 13
8. Click Finish
Kt qu ta to c lp HelloController :
FIT-HCMUS
Trang 14
Mt instance ca lp ny s c to vi mi request. t tn view c dng hin th thng ip Hello khi submit thnh cng t tn view c dng hin th form nhp tn
By gi ta cn to class Name nh mt bean n gin gi thng tin ca mi request. Tng t nh cch to lp trn. Phi chut vo project chn New => Java Class To mt lp tn l Name trong package pojo.
Trong lp Name ny ta to mt bin private value lu tn ngi dng nhp vo. Sau l cc phng thc get set. Nh sau :
Quay tr li class HelloController, ta xo phng thc doSubmitAction() i v b comment phng thc onSubmit() bn di. Phng thc onSubmit ny cho php ta t to ModelAndView. Import org.springframework.web.servlet.ModelAndView. Lp ModelAndView c tr v bi mt controller v c x l bi mt DispatcherServlet. View c th c ly da vo chui View Name m s c x l bi mt i tng ViewResolver, hoc i tng View c th c ch nh trc tip. Thm mt bin mc lp kiu HelloService cho HelloController. Import service.HelloService v thm nhng dng sau vo lp HelloController :
FIT-HCMUS
Trang 15
FIT-HCMUS
Trang 16
FIT-HCMUS
Trang 17
Ci th nht gi l nameView.jsp hin th trang welcome v cho php ngi dng nhp tn. Ci th hai gi l helloView.jsp hin th li cho cng vi tn ca ngi dng va nhp.
2. Click JSP 1. Phi chut here
4. Click Finish
FIT-HCMUS
Trang 18
FIT-HCMUS
Trang 19
Tag spring:nestedPath ch nh mt bean v tag spring:bind kt buc tham s vi mt thuc tnh. ng dn n bean ny tr thnh name.value. Nh ci t t trc, tn command ca HelloController l name. V vy ng dn ny tham chiu n thuc tnh value ca bean tn l name trong phm vi trang. Cui cng m file redirect.jsp v i index.htm thnh hello.htm.
FIT-HCMUS
Trang 20
FIT-HCMUS
Trang 21
Sau khi tri qua ng dng HelloWorld v hiu khi qut v cc bc cn thit cu hnh cho ng dng s dng Spring MVC Framework. Sau y l mt v d nng cao hn v gn vi thc t hn. ng dng s c y kin trc ca mt phn mm nn c. D liu ca ng dng c lu tr trong c s d liu.
ng dng c xy dng theo kin trc 3 tng dng Spring MVC tng giao din (presentation) v Hibernate tng truy xut d liu.
3.2 Cc bc xy dng:
3.2.1 To CSDL v lin kt kho ngoi
3.2.1.1 Mi trng to lp : Trong ng dng ny ta s dng H qun tr CSDL MySQL cung cp bi XAMPP Control Panel :
FIT-HCMUS
Trang 22
Khi ng XAMPP Control Panel : Start >> All Programs >> XAMPP for Windows >> XAMPP Control Panel
Ca s sau hin th :
1. Click Start
Kt qu nh sau c ngha l H qun tr MySQL c khi ng v sn sng s dng. Sau y ta s m trang cu hnh MySQL to CSDL.
2. Click Apache
3. Click Apache
FIT-HCMUS
Trang 23
6. Chn li l utf8_unicode_ci
5. Chn li l utf8_unicode_ci
Nh sau :
7. Click Create
FIT-HCMUS
Trang 24
9. Fill it
10. Chn l InnoDB mi c th thc hin to kho ngoi 11. Click Save
FIT-HCMUS
Trang 25
Gi ta c 2 bng ta cn lin kt kho ngoi t thuc tnh SanPham.MaDM tham chiu n DanhMuc.MaDM Ti trang ca bng SanPham :
12. Click here to index cho thuc tnh ny 13. Click Relation view
FIT-HCMUS
Trang 26
xem lc CSDL thy quan h ny ta click vo link Database : mobiledb v trang qun l Database :
14. Click here
FIT-HCMUS
Trang 27
4. Click Next
5. Fill them
6. Click Next
FIT-HCMUS
Trang 28
8. Click Next
FIT-HCMUS
Trang 29
11. Click OK
FIT-HCMUS
Trang 30
Project c to
FIT-HCMUS
Trang 31
1. Right Click
2. Select Other
3. Select Hibernate
5. Click Next
FIT-HCMUS
Trang 32
6. Click Next
8. Click OK
FIT-HCMUS
Trang 33
FIT-HCMUS
Trang 34
1. Right Click
2. Select Other
5. Click Next
8. Click Finish
FIT-HCMUS
Trang 35
FIT-HCMUS
Trang 36
1. Right Click
2. Select Other
5. Click Next
8. Click Finish
FIT-HCMUS
Trang 37
Ni dung file ny :
FIT-HCMUS
Trang 38
3.2.4 Tao cc lp DAO v BUS Cc lp DAO : DanhmucDAO, SanphamDAO s dng Hibernate truy xut d liu t CSDL. Cc lp BUS : DanhmucBUS, SanphamBUS chnh l cc Service cung cp x l nghip v s c s dng bi cc Control trn tng presentation theo SpringMVC framework. To cc packages v files sau :
M session
FIT-HCMUS
Trang 39
Hon tt Transaction
Nu c li th rollback ng session
FIT-HCMUS
Trang 40
Lp SanphamBUS nh sau :
FIT-HCMUS
Trang 41
3.2.5
1. Right Click
2. Select Other
FIT-HCMUS
Trang 42
5. Click Next
7. Nhp Package
8. Click Finish
FIT-HCMUS
Trang 43
Thm 2 thuc tnh kiu DanhmucBUS v SanphamBUS ng vai tr l 2 services lp Controller ny s dng x l cc nghip v trong qu trnh x l :
FIT-HCMUS
Trang 44
Override li phng thc showForm add mt danh sch cc Danh mc cho ngi dng chn khi nhp loi sn phm. Phng thc ny c gi khi form c hin th ban u.
Lu li i tng ModelAndView tr v t cc lp cha
Ly danh sch danh mc Add thm i tng danh sch danh mc vo ModelAndView kt qu Tr v
Xo phng thc doSubmitAction c ci t sn. B comment v edit li phng thc onSubmit nh sau :
To ModelAndView s tr v khi submit thnh cng p kiu command thnh Sanpham ly kt qu c commit
Lu sn phm mi vo CSDL
Ly m Danh mc c chn, sau to v set thuc tnh danh mc cho sn phm c nhp. Ti sao li phi ly ring nh vy s c gii thch phn sau
FIT-HCMUS
Trang 45
Ta to 3 file sau :
FIT-HCMUS
Trang 46
sanpham l object c truyn vo trong cu lnh mv.AddObject(sanpham, sp); trong phng thc onSubmit ca ThemSanPhamController
File ThemSanPham_InputView.jsp
FIT-HCMUS
Trang 47
Vng lp add cc phn t ca danh sch danh mc c trong CSDL vo select control
lstDM l object c truyn vo trong cu lnh mv.AddObject(lstDM, lst); trong phng thc showForm ca ThemSanPhamController
Ghi ch : Tr li cu hi ti sao phi gi phng thc request.getParameter trong phng thc onSubmit ly gi tr m danh mc c chn bi ngi dng to v gn thuc tnh Sanpham.danhmuc ch khng ly sn trong Object command. Do tag select cung cp bi Spring Form khi tr v s tr v gi tr kiu String ca mc c chn, nn ta khng th kt buc gi tr ca control ny vi thuc tnh Sanpham.danhmuc kiu class Danhmuc c. Do ta phi submit ring l gi tr m danh mc c chn bi ngi dng v s x l request ly, sau to v set thuc tnh Sanpham.danhmuc kiu Danhmuc trong hm onSubmit.
FIT-HCMUS
Trang 48
3.2.7 Config Controller : u tin ta khai bo cc service s c s dng trong file applicationContext.xml
FIT-HCMUS
Trang 49
Thm bean ny vo trong thn bean gc. y l bean khai bo cho ThemSanPhamController ca chng ta.
Gn 2 services khai bo trn cho 2 thuc tnh ca class ThemSanPhamContrroler l sanphamBUS v danhmucBUS
FIT-HCMUS
Trang 50
Vy l ta cu hnh xong cho phn Spring MVC Framework x l phn giao din. By gi ta c th build v run chng trnh. Nu thnh cng kt qu s nh sau :
Click OK ta c kt qu nh sau :
c mt im c bit khi s dng Spring MVC Framework l ch url. Cho d tht s trong ng dng ta c 2 file jsp. Nhng url lun l url m c map vi controller tng ng :
iu ny gip che du c nn cng ngh bn di v tnh an ninh hn v framework h tr qun l trang thnh vic truy cp trc tip vo url ca trang tri php. y cng l mt u im ca Spring MVC Framework. Phn k tip ta s bn v vic Validation d liu nhp ca ngi dng s dng Spring MVC Framework.
FIT-HCMUS
Trang 51
3.2.8 To Validation : Validator dng kim tra tnh hp l ca input t ngi dng. ci t cc input ny ta lm nh sau :
1. Right Click
2. Select Other
5. Click Next
FIT-HCMUS
Trang 52
To mt class mi :
FIT-HCMUS
Trang 53
Implement Validator
Xut li ti tag form:errors vi path = tenSp v xut chui thng bo lu trong thuc tnh TenSP.required trong messages.properties
FIT-HCMUS
Trang 54
FIT-HCMUS
Trang 55
4.1 u im :
Spring l mt framework Java mnh m c s dng trong nhng ng dng Java c phm vi ln. N cung cp nhng dch v Enterprise n nhng Plain Old Java Objects (POJOs). C ch IoC gip ng dng t c s n gin ho v tng kh nng kim tra li. Spring MVC cung cp mt s phn chia rt r rng, rnh mch gia nhng Controller, Java Bean models v Views. Spring MVC rt linh hot, ton b Spring MVC c xy dng da trn nhng interfaces. Mi phn ca Spring MVC framework c cu hnh thng qua vic lp ghp nhng interface, class tin ch sn c, v thm ch c to bi ngi dng. Spring khng ch s dng cng ngh JSP m cn c th d dng tch hp cc cng ngh view khc nh Velocity, XSLT, FreeMarker, XL, Cung cp c ch che du nn cng ngh bn di, trang web khi hin th ch c extension l .htm, khng th bit c bn di ta s dng cng ngh, k thut g, JSP hay Velocity, XLST, thm ch l l nhng cng ngh view c custom bi ngi dng. Spring Controller c cu hnh thng qua IoC nh mi i tng khc. iu ny lm chng d dng c test, v c tch hp d dng vi nhng i tng khc c qun l bi Spring. Kt buc trc tip cc input t view vi nhng i tng domains.
4.2 Khuyt im :
Cu hnh phc tp v cng knh => khng pht huy c sc mnh khi p dng cho cc ng dng quy m nh m c th ngc li cn lm cho ng dng phc tp.
FIT-HCMUS
Trang 56