You are on page 1of 25

A.

M u Phn ny ti s trnh by cho cc bn mt ci nhn tng quan v lp trnh web vi Java, tng quan v m hnh MVC, cc khi nim cn bn v Java servlet, JSP v v d minh ha. i tng c bi vit ny l nhng ngi c kin thc cn bn v HTML, lp trnh Java. B. Ni dung I. Kin trc ng dng Web Java 1) WEB APPLICATION, COMPONENTS V WEB CONTAINER Khi mt i tng Web client (v d nh trnh duyt) giao tip vi mt ng dng J2EE, n s lm vic thng qua cc i tng pha my ch c gi l cc thnh phn Web (Web components). Thnh phn Web y c chia thnh 2 loi l: Servlet (Java servlet) v JSP (Java server page).

Hnh 1: Kin trc ng dng web java Cc Web components chy trn mt Web container. Hin nay Web container ph bin l: Tomcat v resin. Tt c cc ng dng J2EE server chun u cung cp cc Web containers. Vai tr ca Web container l cung cp cc dch v h thng (System service) cho cc Web components: Nhn yu cu dch v t client, chuyn thng ip n Web component ph hp v qun l vng i ca cc Web components. ng dng web (Web application) l mt gi trin khai bao gm : o Web components (Servlets v JSPs) o Ti nguyn tnh (nh image,) o Helper classes (Cc lp tr gip c s dng bi Web components) o Th vin (Library) o Deployment descriptor (File miu t thc thi) Web application c th c t chc thnh mt th mc c cc th mc con v file (dng cha ng gi) hoc thnh mt *.war file (dng ng gi)

2) CC CNG NGH S DNG TRONG NG DNG WEB C rt nhiu cng ngh c th dng xy dng ln mt ng dng Web, sau y l cc cng ngh c s dng ch yu: Java Servlet API: Java Servlet API cho php bn xc nh c th cc lp HTTP. Mt lp servlet m rng kh nng ca mt my ch m qua cc ng dng trn my ch c truy cp bng m hnh lp trnh p ng yu cu (request- response). Servlet c th p ng bt k loi yu cu no chng ch yu c dng m rng cc ng dng c lu tr bi Web servers. Java Server Page (JSP): JSP cung cp mt cch n gin, nhanh chng to nn mt ni dung web ng. JSP cho php pht trin nhanh chng cc ng dng nn tng Web m khng ph thuc vo my ch v h iu hnh. JavaServer Pages Standard Tag Library (JSTL): JSTL ng gi cc hm ct li c s dng chung bi nhiu ng dng da trn cng ngh JSP. Thay v vic pha trn cc tag t nhiu nh cung cp trong ng dng ca bn, bn ch cn thc thi mt tp tiu chun ca cc tag.Vic tiu chun ha ny cho php bn trin khai cc ng dng trn bt k JSP container no h tr JSTL v gip ng dng thc hin cc tag mt cch ti u. JSTL c th iterator v conditional dng x l cc lung iu khin, cc th phc v thao tc vi ti liu XML, cc th cho vic truy cp c s d liu dng SQL, v cc th cho cc chc nng thng thng. JavaServer Faces Technology: JavaServer Faces l mt framework giao din ngi dng (UI framework) cho vic xy dng ng dng web. Thnh phn chnh ca cng ngh JavaServer Face bao gm mt thnh phn GUI framework, mt m hnh linh hot biu din cc thnh phn trong cc ngn ng nh du (markup) v cc cng ngh a dng, v mt b cng c (RenderKit) tiu chun thit lp HTML markup. Chc nng ny c sn thng qua cc chun Java APIs v cc tp tin cu hnh da trn XML. Java Message Service API: Gi thng ip (Message) l mt phng php giao tip gia cc thnh phn trong phn mm hoc ng dng. Mt h thng thng ip l mt h thng ngang hng, mt my khch trong h thng c th gi hoc nhn tin nhn t bt k mt my khch no khc. Mi my khch kt ni ti mt n v thng ip s cung cp c s cho vic to, gi, nhn v c thng ip. Bng vic kt hp cng ngh Java vi t chc cc thng ip, Java Message Service (JMS) API cung cp mt cng c mnh m gii quyt vn in ton doanh nghip. JavaMail API and the JavaBeans Activation Framework: ng dng web c th s dng tp lnh ca JavaMail gi i cc thng bo email. Trong vic kt hp vi phn m rng JavaMail, bn c th s dng cc JavaBeans Activation Framework (JAF) API. API ny cung cp cc dch v tiu chun xc nh kiu ca mt phn ty trong d liu, gi gn vic truy cp vo n, khm ph cc phng thc c th thc hin vi n v to ra cc thnh phn thch hp da trn kin trc thnh phn JavaBeans thc thi cc phng thc. Java API for XML Processing (JAXP):

JAXP l Java API dng x l XML, n l mt phn trong Java SE platform, h tr cho vic x l cc ti liu XML bng vic s dng Document Object Model (DOM), the Simple API for XML (SAX) v Extensible Stylesheet Language Transformations (XSLT). JAXP cho php ng dng phn tch v chuyn i cc ti liu XML m khng ph thuc vo vic thc thi x l XML. JDBC API: JDBC API cho php bn gi cc lnh thc thi vi c s d liu SQL t cc phng thc ca ngn ng Java. Bn c th s dng JDBC API trong mt servlet, trang JSP, hoc mt Enterprise bean khi bn cn truy cp c s d liu.

Hnh 2: Cc cng ngh xy dng ng dng Java Web 3) CC BC PHT TRIN V TRIN KHAI NG DNG WEB Vit code, bin dch cho cc Web components (Servlet hoc JSP), cc helper classes s dng bi Web components To cc ti nguyn tnh (Images, cc trang HTML,) Vit file deployment descriptor (web.xml) Build ng dng Web (to file *.war hoc th mc dng cha ng gi nhng trin khai c) Trin khai ng dng Web trn mt Web container, t web client c th truy cp ng dng qua URL II. Tng quan v MVC

Hnh 3: Kin trc m hnh MVC 1) KHI NIM V M HNH MVC nim chnh ca m hnh ny l tch bit phn nh x, lu tr v x l d liu (Model) tch bit hon ton vi thnh phn trnh by giao din kt qu cho ngi dng hay phn giao din gip n nhp nhp xut cho ngi dng (View). nim trn cho php ngi lp trnh c th tch bit cng vic trong qu trnh xy dng chc nng cho ng dng v qu trnh xy dng giao din cho ngi dng. Bn cnh , nim trn cho php vic thay i thnh phn ca d liu s khng nh hng nhiu n giao din ca ngi dng v m hnh a ra Model khng cho ngi dng thao tc trc tip vo d liu vt l (C s d liu hay l tp tin) m phi thng qua Model, do vy cho d d liu vt l thay i cu trc nhng cu trc Model cho vic truy cp, x l, lu tr d liu s khng b nh hng. Nhn theo khi nim cc thnh phn giao tip trn Model l tn hm tham s truyn (interface) t khi thay

i, ni dung thay i chnh l cch thc ci t bn trong hm. Nhng ni dung ngi s dng chc nng trn giao din khng quan tm v a s h ch quan tm interface l g, gi tr nhp v kt xut ra sao. Do vy, y l mt tnh cht linh hot v uyn chuyn ca m hnh MVC. Ngoi ra, vic tch bit ri rc gia Model v View theo phn tch ca chng ta ang th hin tnh u vit. Tuy nhin, mt ng dng c rt nhiu Model v nhiu View, do vy, m hnh cn c mt thnh phn la chn v kt ni cc thnh phn ny li vi nhau theo cch hiu qu nht. Controller l mt trong nhng i tng a ra n nhn yu cu nhp xut t ngi dng, xc nh model tng ng vi view nhp a model x l, kt qu x l ca model s c chuyn n controller controller xc nh view kt xut kt qu x l v hin th cho ngi dng. Nh vy ta c th nh ngha cc thnh phn trong m hnh MVC nh sau: Model: o L cc thnh phn h tr nh x d liu vt l ln b nh, lu tr d liu tm thi trn b nh, h tr cc cch thc x l d liu, h tr kh nng giao tip v trao i d liu gia cc i tng khc trong b nh v c s d liu. o M hnh ha d liu v hnh vi trong x l nghip v. o C th l mt i tng Object trong khi nim ca lp trnh hng i tng OOP v mang y khi nim v tnh cht ca mt Object. o Trong ng dng Web ca Java, Model s l JavaBean hay Enterprise JavaBean hay Web Service. View: o L thnh phn h tr trnh by d liu hay kt qu ra mn hnh, h tr nhp thng tin t pha ngi dng, biu din kt qu ca tng business logic (model). o Cc thnh phn ny c kh nng truy cp Model, truy xut Model thng qua nhng hnh vi m Model cho php nhng View khng th thay i cc thnh phn trong Model. o Trong m hnh ng dng Web th html, servlet, jsp l nhng thnh phn i din cho View. Controller: o L cc thnh phn h tr kt ni ngi dng server, n nhn yu cu ngi dng, thc hin chuyn x l, la chn v cp nht model v view tng ng trnh by v pha ngi dng o H tr kt ni gia ngi model v view, gip model xc nh c view trnh by o Trong m hnh ng dng Web th Servlet ng vai tr ca Controller 2) KIN TRC M HNH MVC2 (SERVLET-CENTRIC ARCHITECTURE)

Hnh 4: Mu thit k m hnh MVC C ch thc hin: o Web Browser gi request n server thng qua cc control trn form HTML hay JSP, hay query string url hay qua cookies. o Servlet Controller n nhn request v xc nh Model tng ng to ra instance ca JavaBean n nhn cc gi tr nhp t request lu tr v x l o Model thc hin x l, kt ni d liu vt l di DBMS (nu c) v tr kt qu tr v cho Controller o Kt qu x l c chuyn vo Servlet Controller, Servlet Controller thc hin to hay la chn View t a kt qu x l hay d liu ly t Model

cp nht li trang kt qu View. o Controller gi View qua response cho ngi dng browser c th trnh by d liu trong Web Browser u im: o Tnh tin cy (reliability): vic chia tng phn ring bit gip chng ta sa i tng thnh phn ring bit, khng nh hng, c th thay th thnh tng phn tng ng, c th chia cng vic theo nhm, bin dch c lp, tng cng kh nng tch hp vi kh nng ng n cao o Tnh tng thch cao (compatibility): c kh nng s dng cc loi cng ngh khc nhau khng l thuc v chng ta c tch bit v khi nim cho tng loi thnh phn ring bit o Tnh ti s dng (reusable): chng ta c th s dng cc thnh phn chia ct li trong cc ng dng khc hay s dng li nhiu ln trong cng mt ng dng, tng tnh hiu qu trong lp trnh o Kh nng trin khai nhanh chng v bo tr nhanh chng (quick deploy and easy maintenance): v cc thnh phn c lp vi nhau 3) WEB APPLICATION FRAMEWORKS Ph bin hin nay l cc framework da trn kin trc MVC model 2 Cung cp cc lp v cc interfaces cho lp trnh vin s dng, m rng nhm p ng yu cu v mt chc nng ca cc ng dng web hin nay nh: o Nhn v chuyn tip cc HTTP requests. o Gi cc phng thc t tng model. o Tng hp v chn ra cc View tr v cho client u im khi s dng framework: o Phn tch tng presentation v cc business logic thnh cc components o Cung cp 1 im iu khin trung tm o Cung cp cc tnh nng m rng o D dng cho vic kim th n v (unit testing) v bo tr o Nhiu cng c h tr o n nh o C cng ng h tr mnh m o n gin ha ch a ngn ng o n gin ha vic xc nhn u vo o nh ngha cc components chun, cho php ti s dng o Ch r cch thc phi hp cc components trong 1 ng dng Mt s Web application framework: o Apache Struts I v II o Spring Framework MVC o JavaServer Faces (JSR-127) o Echo o Tapestry o Wicket [++III. C bn v Servlet v JSP] 1) KIN TRC J2EE

Hnh 5: Kin trc J2EE 1.2 2) V TR CA SERVLET V JSP Chng ch yu nm pha server v tng biu din trong nn tng ng dng J2EE.

Hnh 6: J2EE Platform 3) SERVLET 3.1. Khi nim Khi nim: o L cc i tng hoc mt on chng trnh trong Java, m rng chc nng ca mt HTTP server. o c nh x vi mt URL v c qun l bi container tng ng o Chy c trn tt c cc web servers v cc application server chun o Khng ph thuc vo platform v server. u im ca Servlet: o C rt nhiu cng c ca bn th 3 v nhiu server h tr servlet. o Truy cp c mi Java APIs o tin cy cao (Reliable), an ton (secure), hiu nng tt, d m rng (scalability) 3.2. M hnh Servlet request v response

Hnh 7: M hnh x l Request ca Servlet Request v Response o Request: l thng tin c gi t client ti 1 server. Thng qua cc thng tin cha trong request m server bit c ai to ra request, d liu g c user nhp vo v gi i, cc HTTP header. Http request bao gm : o Header o Phng thc : Get: Thng tin nhp vo trong form c truyn nh mt phn ca URL Post: Thng tin nhp vo trong form c truyn trong ni dung thng ip Put, Delete, o D liu km theo trong request (request data) Response : l thng tin gi n client t 1 server. C th l d liu dng text (html, thun text) hoc d liu binary (image). Nhim v ca Servlet: o Nhn client request (hu ht dng HTTP request). o Trch xut mt s thng tin t request. o X l nghip v (truy cp database, gi EJBs,) hoc sinh ra ni dung mi. o To v gi tr response cho client (hu ht dng HTTP response) hoc forward request cho servlet khc hoc mt trang JSP. 3.3. Vng i ca servlet

Hnh 8: Vng i Servlet Khi mt ng dng cha c deploy vo trong server th servlet cha c khi to (uninstantiated). Khi ng dng c deploy vo server th container s thc hin khi to instance cho servlet, trong lc khi to kch hot hm init. Lu , hm init ch c kch hot ln duy nht khi deploy. Khi c mt request n servlet ca ngi dng, container n nhn request v chn instance bean bt k tng ng vi yu cu p ng. Sau khi chn c bean, container s kch hot hm service tng ng. Lu y, ln yu cu th 2 th container cng s chn bean v kch hot hm service tng ng, do vy, hm service s c gi rt nhiu ln. Khi servlet c cp nht mi hay server b crash hay undeploy ng dng ra khi server container, th hm destroy ca servlet c kch hot. Ngha l servlet ch kch hot phng thc destroy ln cui cng duy nht. 3.4. Cc phng thc trong vng i Servlet Container iu khin vng i ca mt servlet v cc phng thc trong vng i Servlet c gi bi container init(): c gi mt ln khi servlet c to th hin ha ln u tin. Ta s thc hin cc khi to trong phng thc ny destroy(): c gi trc khi hy mt servlet instance, hm ny thc hin thao tc dn dp service(): trong lp javax.servlet.http.HttpServlet l mt phng thc ci t t phng thc abstract trong lp javax.servlet.GenericServlet. Hm ny gi n hai phng thc doGet() v doPost(). Ta khng override phng thc ny. doGet() v doPost() trong lp javax.servlet.http.HttpServlet dng x l cc HTTP GET, POST requests. Ta s override cc phng thc ny trong servlet ca mnh c x l ph hp.

S khc bit gia phng thc service() vi 2 phng thc doGet(), doPost() l phng thc service() nhn tham s l cc requests v responses tng qut, cn doGet() v doPost() nhn tham s l cc HTTP requests v HTTP responses.

Hnh 9: Minh ha phng thc Service()

Hnh 10: Minh ha phng thc doGet(), doPost() Nhng vic cn lm trong phng thc doGet() v doPost(): Trch xut cc thng tin gi t client (HTTP parameter) t HTTP request Thit lp, truy cp cc thuc tnh ca cc i tng phm vi (page, request, session, ServletContext) Thc hin cc x l nghip v (business logic) hoc truy cp CSDL Ty chn chuyn tip request n cc web components khc (Servlet hoc JSP) Sinh HTTP response v tr v cho client 3.5. i tng phm vi (Scope object) Thng tin s c chia s gia cc web components thng qua thuc tnh ca cc Scope objects. Mi thuc tnh l mt cp (name, object). y l vng khng gian b nh (memory segment) c cung cp cho mi ng dng web dng cha cc thng tin giao tip vi cc thnh phn khc trong server. Mi vng khng gian

ny tn ti trong mt khong thi gian nht nh ty theo qui nh cho tng loi Scope object. Cc thuc tnh c tham chiu trong cc Scope objects thng qua phng thc getAttribute() v setAttribute() C 4 loi Scope object c nh ngha nh sau: Servlet context: Phm vi truy cp l tt c cc web components trong 1 servlet context. Thi gian tn ti t lc bt u ng dng n khi ng dng b undeploy ra khi server hay server b crash Session: Phm vi truy cp l cc web components x l request trong 1 session. Thi gian tn ti l t lc m trnh duyt n ng trnh duyt, ht thi gian session, session b hy, Request: Phm vi truy cp l t cc components x l request . Thi gian tn ti t lc gi request cho n khi response. Page: Phm vi truy cp l trong trang JSP to ra object . 4) JSP 4.1 Th no l ni dung tnh v ni dung ng Ni dung tnh (static content): l ni dung hin th nh nhau cho tt c mi ngi, in hnh l cc trang HTML tnh. Ni dung ng (dynamic content): l ni dung c sinh ra v bin i ty theo mt s iu kin nht nh. Cc iu kin c th lin quan n ti khon ngi dng, thi gian, gi tr m user nhp vo thng qua form hoc qua s la chn. 4.2 Khi nim v cng ngh JSP Cng ngh JSP: o L cng ngh c xy dng da trn nn tng cng ngh Servlet. o Cho php phn tch tng business logic vi tng presentation gip ng dng Web d bo tr, c kh nng ti s dng. Presentation gm cc file c dng HTML hoc XML/XSTL. Business logic c ci t trong cc Java Beans hoc cc th m rng (custom tags) o D m rng nh cc custom tags. o Mt trang JSP l mt ti liu text, cho php tr v ni dung ng cho trnh duyt pha client.Mt trang JSP thng thng bao gm c ni dung tnh nh: HTML, XML v ni dung ng nh: m lp trnh, JavaBeans, custom tags. V d mt trang JSP hin th ngy thng trong trnh duyt: <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Using the date class</title> </head> <body>

<h1>S dng lp Date trong java</h1> The date is: <%= new Date() %> </body> </html> Kt qu khi m trang JSP bng trnh duyt:

Hnh 11 : V d minh ha 4.3 So snh gia Servlet v JSP

Hnh 12: So snh gia Servlet v JSP u im ca JSP: o Tch bit ni dung v cch thc trnh by o n gin ha vic pht trin ng dng web vi JavaBeans v custom tags o H tr ti s dng nh s dng cc components o T ng bin dch li cc trang JSP khi c thay i m ngun o c lp platform, d vit u im ca JSP so vi Servlet: o Servlet s dng lnh println() sinh cc trang HTML, nh vy s dn n hn ch trong vic bo tr cc trang HTML o Khi servlet thay i th phi bin dch li, deploy li o JSP khc phc c c 2 hn ch trn Tuy nhin ta cn ng thi khai thc c 2 cng ngh, sc mnh ca servlet l controlling v dispatching cn sc mnh ca JSP l displaying. Trong thc t c servlet v JSP c s dng trong mu thit k MVC, servlet x l phn Controller cn JSP x l phn View. 4.4 Kin trc JSP

Hnh 13: Kin trc thit k ng dng Web Vng i ca 1 trang JSP

Hnh 14: Vng i mt trang JSP 1 Ngi dng gi yu cu ti trang JSP thng qua trnh duyt 2 Yu cu c chuyn ti web server 3 Web server s chuyn JSP vo b dch chuyn thnh m Servlet. 4 Nu file JSP c gi khng phi ln u th s n bc 7 5 To mt servlet t file JSP, tt c cc on m HTML s c chuyn i sang lnh println() 6 Servlet s c bin dch thnh mt file class 7 To i tng servlet 8 HTML thng qua phng thc output ca servlet s c tr v 9 Browser hin th kt qu Cc phng thc trong giai on thc thi: o jspInit(): c tham s cu hnh, khi to ti nguyn, lm bt k cng vic khi to no khc bng vic override phng thc ny o _jspService(): Phng thc ny c gi vi mi request trong sut vng i ca JSP. Thc t th cc business logic c vit trong hm ny o jspDestroy(): c tham s cu hnh, gii phng ti nguyn, lm bt k cng vic no bng cch override phng thc ny 4.5 K thut sinh ni dung ng vi JSP 4.5.1 Cc k thut sinh ni dung ng vi JSP: Gi m Java trc tip trong JSP Gi m Java gin tip trong JSP S dng JavaBeans

T pht trin v s dng cc custom tags S dng cc custom tags ca bn th 3 hoc JSTL S dng mu thit k MVC S dng model 2 framework c kim chng 4.5.2 K thut gi m java trc tip: L k thut t tt c m ngun java trong trang JSP, ch ph hp vi ng dng web n gin. Kh bo tr, kh ti s dng, kh hiu Phn tch gia phn ni dung v phn trnh by l cha r rng, khng nn dng vi loi ng dng web tng i phc tp. 4.5.3 K thut gi m java gin tip Pht trin cc lp tin ch c lp, chn vo trang JSP m ngun Java gi n cc lp tin ch. Phn tch tt hn phn sinh ni dung (contents) vi phn biu din (presentation) so vi k thut gi m java trc tip. Ti s dng, bo tr tt hn so vi k thut gi m java trc tip, tuy nhin s tch bit gia phn ni dung v phn biu din cha r rng. 4.5.4 S dng JavaBeans Pht trin cc lp tin ch di dng JavaBeans Khai thc c cc h tr ca JSP cho JavaBeans D s dng hn vi ngi pht trin Web, d ti s dng, bo tr hn so vi 2 cch u 4.5.5 Pht trin v s dng cc custom tags Pht trin cc i tng gi l cc custom tags (custom tag c thit k c bit cho JSP) Mnh m hn JavaBeans component Ti s dng, bo tr tt hn, n nh hn Tuy nhin, pht trin custom tags kh hn to cc JavaBeans 4.5.6 S dng cc custom tags ca bn th 3 hoc JSTL C nhiu custom tags m ngun m hoc thng mi; JSTL l mt tp chun ha cc custom tags ti thiu cho J2EE 4.5.7 S dng mu thit k MVC Model : S dng cc cng ngh sn c nh JDBC, hibernate, View : S dng JSP Controller : s dng Servlet 4.5.8 S dng model 2 framework c kim chng C rt nhiu framework nh: Spring, Apache struts, JavaServer Faces (JSF) 4.6 Gi m ngun Java s dng JSP Scripting elements 4.6.1 Khi nim JSP scripting l cc phn t cho php chn m ngun Java vo servlet c sinh tng ng cho trang JSP C 3 dng: Expressions: <%= Expressions %> Scriptlets: <% Code %> Declarations: <%! Declarations %>

4.6.2 Expressions Trong giai on thc thi mt trang JSP Expression c tnh gi tr v chuyn thnh mt String, String ny sau c chn vo output ca servlet tng ng. Kt qu c c tng ng vi cu lnh trong Servlet sau : out.println(expression). C th s dng cc bin c nh ngha t trc trong expression. C php : <%= Expression %> hoc <jsp:expression> Expression </jsp:expression>. Ch : Ta khng c dng du ";" 4.6.3 Scriptlets Scriptlet c s dng chn m Java bt k vo phng thc _jspService() ca Servlet tng ng. C th lm c cc vic m expressions khng lm c nh : Thit lp response headers v status codes Ghi log cho server Cp nht CSDL Thc thi m ngun c iu khin lp, r nhnh C php: <% Java code %> hoc <% jsp:scriptlet> Java code </jsp:scriptlet> 4.6.4 Declarations Declaration c s dng nh ngha cc bin hoc cc phng thc s c chn vo trong lp servlet tng ng. Declaration nm ngoi phng thc _jspSevice(), khng c truy cp cc i tng khai bo t trc (implicit objects), thng c s dng vi Expression hoc Scriptlets. C php : <% ! M khai bo bin v phng thc %> hoc <jsp:declaration> M khai bo bin v phng thc </jsp:declaration> 4.7 Include v forward ti cc ti nguyn Web khc 4.7.1 Include cc thnh phn trong mt trang JSP C 2 k thut dng nh km mt ti nguyn web trong 1 trang JSP S dng ch th include S dng phn t jsp:include 4.7.2 Ch th Include c x l khi trang JSP c dch thnh servlet. Hot ng ca ch th l chn vn bn cha trong file khc ( hoc ni dung tnh hoc 1 trang JSP khc) vo trong trang JSP ang xt Thng c s dng nh km cc thng tin banner, copyright, hoc bt k ni dung no ti s dng cho trang khc C php: <%@ include file=filename %> 4.7.3 Phn t jsp:include c x l khi thc thi 1 trang JSP Cho php chn ti nguyn tnh hoc ng vo 1 file JSP o Static: Ni dung ca resource c chn vo file JSP ang xt o Dynamic: Mt yu cu c gi ti resource cn c nh km, trang cn nh km (included page) s c thc thi v kt qu s c nh vo response ri tr v cho trang JSP ban u. C php:<jsp:include page =includePage/> 4.7.4 Cch la chn s dng 2 k thut include Chng ta s s dng ch th include (include directive) nu file t khi thay i v

include directive ch chn ni dung tnh nn x l nhanh hn jsp:include S dng jsp:include cho ni dung thay i thng xuyn S dng jsp:include khi cha quyt nh c s nh km trang no cho n khi main page c request. 4.7.5 Forward ti web component khc Cng c ch nh trong servlet. C php: <jsp:forward page=abc.jsp /> Thng qua phn t ny i tng request ban u s c chuyn cho trang ch. C th nh thm cc tham s mi trc khi chuyn i. V d: *<jsp:forward page=> *<jsp:param name = param1 value = value1/> *</jsp:forward> 4.8 Directives Directives l cc thng ip (message) chuyn n JSP container, hng dn cch bin dch trang JSP Khng sinh ra output C php : <%@ directive {attr = value} %> C 3 loi Directive: page: Ch ra cc thuc tnh ca trang JSP: <%@ page import = java.util.* %> include: c s dng nh km text hoc m ngun khi dch trang JSP thnh Servlet. <%@ include file = header.html %> Taglib: Ch ra mt th vin th m JSP container cn phi bin dch <%@ taglib uri = mytags prefix = codecamp %> Ch th <%@ page {name = value} %> dng a thm cc thng tin vo Servlet bin dch t trang JSP tng ng. Cho php ch ra: o Import cc class no: <%@ page import = java.util.* %> o Loi MIME sinh ra l g: <%@ page contentType = "MIME-Type " %> o X l a lung nh th no: <%@ page isThreadSafe = true %> hoc < %@ page isThreadSafe = false %> o X l cc li khng mong i: <%@ page errorPage = errorpage.jsp %> 4.9 JavaBeans components JavaBeans l cc lp java c th c ti s dng trong cc ng dng. Bt k mt lp java no tun theo cc quy nh thit k u c th tr thnh mt JavaBean. Trong mt trang JSP c th khi to cc JavaBeans v truy cp, thit lp (get/set) cc thuc tnh ca n. JavaBeans c th cha cc x l nghip v hoc truy cp c s d liu *Quy c thit k JavaBeans: JavaBeans c cc thuc tnh (properties) Mt thuc tnh c th l: Read, write, read-only, write-only; t chc kiu n hoc kiu mng. Cc thuc tnh c thit lp v truy cp qua cc phng thc setX, getX.

JavaBeans phi c constructor mc nh u im khi s dng JavaBeans trong cc trang JSP o Ngi thit k trang web khng cn hc Java. o Tch bit r rng gia content v presentation. o Ti s dng m ngun hiu qu o Chia s i tng d dng 5) V D P DNG Sau y mnh s a ra mt v d ngn ht sc n gin cc bn hiu r hn v vic lp trnh web vi Servlet v JSP.Gi s bn mun lp mt trang m phng mt gi hng trong ca hng bn dng vn phng phm ca bn. Ngi mua s thm cc mt hng trong danh sch sn phm ca bn vo gi, c th tnh c tng s tin phi tr cho ton b gi hng. Di y l hng dn c th, s dng Eclipse: Bc 1: Bn to mt c s d liu cha danh sch cc mt hng trong ca hng ca bn. y ta dng MySQL, to mt c s d liu c tn l qlsp, trong c mt bng t tn l sanpham. Bng ny c 3 trng: msSP (M s sn phm), tenSP (Tn sn phm), dongia (n gi cho mi loi sn phm). Ta lp mt bng biu din danh sch cc mt hng v d nh sau:

Hnh 15 : Bng c s d liu Bc 2: To cc lp c t cc i tng c lin quan n gi hng: ControllerServlet.java: Lp ny ng vai tr nh thnh phn Controller trong m hnh MVC, k tha lp HttpServlet, c nhim v qun l cc tc v (request) ca ngi dng thng qua vic override phng thc doGet() v doPost(). DBActions.java: Lp ny m nhim vic kt ni vi c s d liu, thc hin vic truy vn tng sn phm cng nh danh sch tt c sn phm. N ging nh thnh phn Model trong m hnh MVC SanPham.java: Mi mt i tng ca lp ny biu din cho mt loi sn phm. MonHang.java: Lp ny m t cho mt mn hng c t mua bao

gm loi sn phm t mua v s lng ca loi sn phm . GioHang.java: Lp ny biu din cho mt gi hng vi cc thao tc thm mn hng, xa mn hng, ly gi hng, tnh tin ca ton b sn phm trong gi hng. o Bc 3: To cc file jsp tng ng vi cc trang GianHang.jsp, GioHang.jsp, ThanhToan.jsp. t cc file ny vo th mc WebContent. Cc file ny tng ng vi thnh phn View trong m hnh MVC. Ch l trong v d ny phn bit controller, view mang tnh cht tng i. GianHang.jsp: File ny biu din giao din khi khch hng mun truy cp gi hng tin hnh t sn phm. GioHang.jsp: Thc cht y ch biu din mt bng thng k cc sn phm trong gi hng. Trong GianHang.jsp c include file ny. ThanhToan.jsp: Th hin giao din khi tnh tng tin cc sn phm c trong gi hng. o Bc 4 : To file web.xml ri t trong th mc "WEB-INF". o Bc 5 : Copy th vin dng kt ni vi c s d liu vo trong th mc lib. Chy Tomcat server , ri truy cp vo ng dn n trang web. Giao din chng trnh :

Hnh 16: Giao din 1

Hnh 17: Giao din 2

Hnh 18: Giao din 3 C. Kt lun Trn y l nhng trnh by s lc, khi qut v cng ngh lp trnh web vi servlet v jsp. Nm vng cc khi nim cn bn ny s gip cc bn lm quen tt hn vi cc framework lp trnh web lin quan n java.

You might also like