Anda di halaman 1dari 27

CHOOSING A JAVA WEB FRAMEWORK: A COMPARISON

Richard Pack, Lead U er I!"er#ace Archi"ec" $S%&'()

Learn how to choose a Java technology-based


Web Framework
Enable you to:
Categorize and understand what type of UI youre building Understand the features and nomenclature of Model View Controller MVC! "eigh the trade#offs

2008 JavaOneSM Conference | java.sun.com/javaone |

A*e!da
I!"r+d,c"i+! C,rre!" We- Fra.e/+rk $he $radi"i+!a0 Cri"eria Wha" are "he 1r+-0e. "ha" , er are #aci!*2 Wha" are 3+,r !eed 2 $he Ad4a!ced Cri"eria $he Fra.e/+rk S,..ar3 a!d C+!c0, i+! 5,e "i+!

2008 JavaOneSM Conference | java.sun.com/javaone |

C,rre!" Fra.e/+rk
Ac"i+! Fra.e/+rk A!4i0 Ara!ea A,r+ra Bari", Barrac,da Be!"+ Bi h+1 Ca!3a.+ Ca a!dra Chi-a Chr3 a0i C0ick C+c++! 6i!a.ica 6+4e"ai0 6WR Ech+ E81re + #0e7i4e F+0i,. GW$ Gr++43;Grai0 He0.a JSPWid*e" J,ca JWAA JWar1 9Wic 9:e!+ 9:+!ic O1e!E.cee O1e!7a4a O7F P, "e#i8 Re "0e" RIFE RSF S/i!*We$a1e "r3 $eaSer40e" $hi!Wire $ri.1a"h J,!c"i+! $,r-i!e Ver*e VRa1"+r War#are We-O!S/i!* We-W+rk Wicke" /i!*S 7+10+! :K
2008 JavaOneSM Conference | java.sun.com/javaone |

Over 100 Frameworks


Maca/ Sea. Mak,.-a Ma4erick Me0a"i Me!"a/ai Mi00 "+!e M3Face Nach+ Ni**0e Sh+ck S.i0e SOFIA S1ri!* MVC S"reck S"ri1e S"r," S"r," =

Jac<,ard Ja##a Ja110e JA$O JF+r.,0ar JOSSO JP,-0i h JSF

>"e.10a"e

$he Cri"eria

$he "radi"i+!a0 e"


$he He00+ W+r0d "e "
? Wha" d+e i" "ake "+ /ri"e He00+ W+r0d2

Per#+r.a!ce
? Fi0"er +r er40e"2

Vie/ dec+ra"i+! "30e


? 6+e i" , e $e.10a"e +r Ja4aSer4er@ Pa*e AJSP@B +#"/are;$a*0i- , Ja4a "ech!+0+*3
c+!"r+0 +# -0+ck 2

S1eed +# 6e10+3.e!"
? Wha" d+e i" "ake "+ hi1 i"2

S1eed +# 6e4e0+1.e!" % C Par"


? Ne/ % /ha" i "he 0ear!i!* c,r4e2 ? E8i "i!* % h+/ .,ch "i.e d+e i" "ake "+ add i.10e #ea",re 2 ? A*i0e % i cha!*i!* #ea",re ea 32

2008 JavaOneSM Conference | java.sun.com/javaone |

$he Cri"eria
Vali a!ion

$he "radi"i+!a0 e" % c+!"i!,ed

"oes i! #ave lo!s of $uil %in vali a!ors&


'n!erna!ionali(a!ion / Mul!ilin)uali(a!ion

*#a! s!+le of ,ro,er!ies& Var+in) sco,es&


"ocumen!a!ion -oo.mar.%a$ili!+ Scala$ili!+

2008 JavaOneSM Conference | java.sun.com/javaone |

S+ /h3 i "hi i.1+r"a!"


6i##ic,0" #+r "he "akeh+0der "+ ,!der "a!d a!d , e E!d ,1 /ri"i!* 0+" +# !+!%re, a-0e c+de N+ ,!i#ied A9a8 "ra! 1+r" 6irec" 1er i "e!ce "+ Re<,e ", Se i+! +r C+!"e8" Li.i"ed 6+c,.e!"a"i+! Wri"i!* -+i0er10a"e c+de N+ ,!i#ied e4e!" .+de0 6i##ic,0" #+r "radi"i+!a0 /ede i*!er C+!#i*,ra"i+! -ec+.e di##ic,0" "+ .a!a*e /he! "he a11 *r+/ N+ /a3 "+ r,! a de-,**er i! "he "e.10a"e A-i0i"3 #+r "he 4ie/ "+ -e , ed a "he c+!"r+00er JSP +#"/are;JS$L -ec+.e a !i*h".are "+ read /he! "he 1a*e *r+/ $e.10a"e .a3 ha4e a "ee1 0ear!i!* c,r4e S1eed +# de10+3.e!"

2008 JavaOneSM Conference | java.sun.com/javaone |

Wha" are .3 !eed 2


A. I -,i0di!* a! a110ica"i+!2 H+/ -i* i .3 a110ica"i+!2 Wha" i .3 , a*e ce!ari+2 I "hi 0ike03 "+ cha!*e2
? D+, are -,i0di!* #+r "he #,",reE

6+ I rea003 !eed a C%"ier archi"ec",re2 Wha" i "he i>e a!d c+.1e"e!cie +# .3 "ea.2

2008 JavaOneSM Conference | java.sun.com/javaone |

S/ee" S1+"
N+" a +!e i>e #i" a00 *a.e ? S+.e re<,ire.e!" .a3 ha4e di4er*i!* i.10e.e!"a"i+! /hich
crea"e "rade%+##

6i##ere!" #ra.e/+rk #+r di##ere!" , a*e ce!ari+


? ? ? ?
Vie/ AReadB +!03E E8 % "+re#r+!", -0+*, +!0i!e -a!k, c+r1+ra"e /e- i"e Wri"e +!03 B+"h 4ie/ a!d /ri"e Hi*h03 I!"erac"i4e

2008 JavaOneSM Conference | java.sun.com/javaone |

$he Cri"eria
AJA7 ,11+r"

$he ad4a!ced e"


? I!"e*ra"ed +r a#"er "he #ac" ? 6+e i" re03 +! e8"er!a0 "++0

C0ie!";Ser4er Ja4aScri1"@ 1r+*ra..i!* 0a!*,a*e


? I "here "i*h" c+,10i!* -e"/ee! "he
0a!*,a*e 6+e

Vie/ 0a!*,a*e
? Ja4a 1r+*ra..i!* 0a!*,a*e, EL, OGNL,
M,0"i10e

C+..,!i"3
? Ac"i4e, c+!"i!,a0 de4e0+1.e!"

Ma",ri"3 P,00 -a ed +r P, h -a ed C%"ier ,11+r" % EJB;S1ri!* a!d hi-er!a"e Frie!d03 URL : URL .a11i!*

a!+"her 1ar" +# "he c+.1a!3 , e "he #ra.e/+rk2 6+ 3+,r de4e0+1er ha4e e81erie!ce /i"h i"2 C0ie!" e4e!" dri4e!2 Aka 6+e i" ,11+r" Ser4ice 2 6+e i" ha4e a! Arche"31e

2008 JavaOneSM Conference | java.sun.com/javaone | 10

Gr++43;Grai0
U a*e "31e: Vie/ ; Wri"e ? E8"e! i+! "+ "he Ja4a
1r+*ra..i!* 0a!*,a*e
<!-- template code --> <div id="table" class="hidden"> <%=dojoTable(id:'Defs', title:l !lassicDefsTable, "#l:"#l$o#(action:'defData'%,s chema:def&chema, n"m'o(s:)*% %> <+div> ++,#oovstatic &t#in. dojoTable(/indin. sc#ipt/indin., pa#ams% def id = "01pa#ams id2" def #es = ne( &t#in./"ffe#(""" <sc#ipt t-pe="te3t+javasc#ipt"> dojo #e4"i#e("dojo topic"%5

Pr+ : ? H+"%de10+3 ? Si.10e c+!#i*,ra"i+! ? C0+ ,re ? I!"e*ra"e S1ri!* a!d Hi-er!a"e C+! : ? S0+/ c+.1ared "+ !a"i4e
#ra.e/+rk

2008 JavaOneSM Conference | java.sun.com/javaone | 11

Gr++43;Grai0

AJA7 ,11+r"2 Vie/ La!*,a*e P, h +r P,00 Ma",ri"3 C+..,!i"3 C $ier F;W ,11+r" Frie!d03 URL

N+ Ja4a, Gr++43 P, h D+,!* S.a00, -," *r+/i!* De N+" -,i0" i!

2008 JavaOneSM Conference | java.sun.com/javaone | 12

G++*0e We- $++0ki" AGW$B


U a*e $31e: Vie/ ; Wri"e ? M+di#ied Ja4a 1r+*ra..i!* 0a!*,a*e ,11+r" Pr+ : ? Si.10ici"3, S/i!*;SW$ Like ? L+" +# -,i0" i! c+.1+!e!" ? S"r+!* -i!di!* -e"/ee! Ja4a a!d Ja4a cri1" 1r+*ra..i!* 0a!*,a*e ? Pr+9ec" Arche"31e C+! : ? Hard "+ c+!"r+0 c c0a e ? B,i0" i! c+.1+!e!" are #air03 -a ic AS+04ed /i"h GW$%E8"B ? C,rre!"03 !+ ,11+r" #+r Ja4a (;Ja4a & 1r+*ra..i!* 0a!*,a*e

2008 JavaOneSM Conference | java.sun.com/javaone | 13

G++*0e We- $++0ki" AGW$B


p"blic class 6ail implements 7nt#-8oint, p"blic void on6od"le9oad(% 1 top8anel add(men"/a#%5 #i.ht8anel add(list%5 main8anel add(table%5 :indo( enable&c#ollin.(false%5 :indo( set6a#.in(";p3"%5 Doc<8anel o"te# = ne( Doc<8anel(%5 o"te# add(top8anel, Doc<8anel =>'T?%5 o"te# add(left8anel, Doc<8anel 7@&T%5 o"te# add(main8anel, Doc<8anel !7=T7'%5 ?isto#- add?isto#-9istene#(this%5 'oot8anel .et(% add(o"te#%5
2008 JavaOneSM Conference | java.sun.com/javaone | 14

G++*0e We- $++0ki" AGW$B

AJA7 ,11+r"2 Vie/ La!*,a*e P, h +r P,00 Ma",ri"3 C+..,!i"3 C $ier F;W ,11+r" Frie!d03 URL

De Ja4a *e!era"ed P,00 D+,!* S.a00 N+ De , /i"h +.e /+rk

2008 JavaOneSM Conference | java.sun.com/javaone | 15

S"r," =
U a*e $31e: Vie/ ; Wri"e, Hi*h03 I!"erac"i4e Pr+ : ? Fir " c0a AJA7 ,11+r" ? S1ri!* c+!"ai!er i!"e*ra"i+! ? POJO a c+!"r+00er , d+e !F" re<,ire i!heri"a!ce ? FreeMarker a!d Ve0+ci"3 ,11+r" C+! : ? S"i00 , e LO$S +# 7ML c+!#i*,ra"i+! ? S"i00 0ea4e "he #0+/ .a11i!* "+ 7ML

2008 JavaOneSM Conference | java.sun.com/javaone | 16

S"r," =
p"blic class 9o.in@ction implements 8#epa#able 1 p"blic 9o.in@ction(9o.in&e#vice se#vice% 1 this se#vice = se#vice5 2 p"blic &t#in. e3ec"te(% 1 #et"#n @ction &A!!7&&5 2 p"blic &t#in. lo.in(% 1 se#vice lo.in("n, p(%5 #et"#n e3ec"te(%5 2 <s:te3tfield id=""se#=ame" label="Ase#=ame" name="lo.in fi#st=ame"+> <s:te3tfield id="pass(o#d" label="8ass(o#d" name="lo.in last=ame"+> <s:s"bmit theme="aja3" ta#.ets="lo.in" notif-Topics="+lo.in"+>
2008 JavaOneSM Conference | java.sun.com/javaone | 1/

S"r," =

AJA7 ,11+r"2 Vie/ La!*,a*e P, h +r P,00 Ma",ri"3 C+..,!i"3 C $ier F;W ,11+r" Frie!d03 URL

De JSP, OGNL P, h D+,!* Medi,. De N+" -,i0" i!

2008 JavaOneSM Conference | java.sun.com/javaone | 18

$a1e "r3
2sa)e !+,e3 Vie4 / *ri!e5 6i)#l+ 'n!erac!ive 7ros3 2ses anno!a!e 68M9 !em,la!es 6o!% e,lo+ :Version 5; Sim,le confi)ura!ion <irs! class =J=> su,,or!5 an lo!s of i! Cons3 "ocumen!a!ion oesn?! use real 4orl ,ro$lems @o =7' $ac.4ar s com,a!i$ili!+ $e!4een major versions

2008 JavaOneSM Conference | java.sun.com/javaone | 10

$a1e "r3
<!-- template code --> <div j(cid="Bh-pe#ic:6essa.e8anel" messa.e="messa.e"+> <inp"t j(cid="Bh-pe#ic:Cnp"t$ield" fieldDal"e=""se#=ame" fieldTitle="messa.e:"se#=ameTitle" field9abel="messa.e:"se#=ame"+> <a j(cid="Bh-pe#ic:/"tton" listene#="listene#:si.nin/"tton9istene#" label="messa.e:si.nCn/"tton" enableEe-9istene#="t#"e" +>

++Fava !ont#olle# p"blic abst#act class &i.nCn e3tends /ase8a.e 1 B8e#sist(% p"blic abst#act &t#in. .etAse#=ame(%5 p"blic abst#act void setAse#=ame(&t#in. "se#=ame%5 p"blic C9in< si.nin/"tton9istene#(C'e4"est!-cle c-cle% 1 ++b"tton clic< listene# 2
2008 JavaOneSM Conference | java.sun.com/javaone | 20

$a1e "r3

AJA7 ,11+r"2 Vie/ La!*,a*e P, h +r P,00 Ma",ri"3 C+..,!i"3 C $ier F;W ,11+r" Frie!d03 URL

E8"e! i4e OGNL, Pr+1 P,00 Ma",re Lar*e, Ac"i4e De De

2008 JavaOneSM Conference | java.sun.com/javaone | 21

Wicke"
U a*e $31e: Hi*h03 I!"erac"i4e Pr+ : ? A!!+"a"ed H$ML $e.10a"e ? E8ce00e!" d+c,.e!"a"i+! ? C+.1+!e!" ca! -e e8"e!ded ? E4er3"hi!* i d+!e i! Ja4a 1r+*ra..i!* 0a!*,a*e C+! : ? E4er3"hi!* i d+!e i! Ja4a 1r+*ra..i!* 0a!*,a*e

2008 JavaOneSM Conference | java.sun.com/javaone | 22

Wicke"
++Definition p"blic class 9o.in e3tends :eb8a.e 1 p"blic 9o.in(%1 add(lo.in8anel%5 2 p"blic void on&"bmit(%1 lo.in(%5 set'esponse8a.e(ne( ?ome8a.e(%%5 2 2 <(ic<et:panel><div (ic<et:id="lo.in"> <div><span (ic<et:id=""se#name"><+span><+div> <div><span (ic<et:id="pass(o#d"><+span><+div> <+div><+(ic<et:panel> ++ Asa.e add(ne( 9o.in8anel("lo.in", lo.in%5 <span (ic<et:id="lo.in"+>
2008 JavaOneSM Conference | java.sun.com/javaone | 23

Wicke"

AJA7 ,11+r"2 Vie/ La!*,a*e P, h +r P,00 Ma",ri"3 C+..,!i"3 C $ier F;W ,11+r" Frie!d03 URL

E8"e! i4e OGNL P,00 M+dera"e Medi,., Ac"i4e De De

2008 JavaOneSM Conference | java.sun.com/javaone | 24

S,..ar3
N+" a00 #ra.e/+rk are e<,a0 U!der "a!d a!d +,"0i!e 3+,r !eed Fi!d a #e/ "ha" 0++k 0ike "he3 .ee" "h+ e !eed U e "he cri"eria a!d e4a0,a"e 6+!F" "ake .3 /+rd #+r i", "r3 a GHe00+ W+r0dH +# 3+,r +/!

2008 JavaOneSM Conference | java.sun.com/javaone | 25

F+r M+re I!#+r.a"i+!


$he e 0ide ? ///Eh31ericE+r*;c+!#ere!ce ; 0ide Ja4a Fra.e/+rk GS/ee" S1+" H A ///E4ir",a Ec+.;#i0e ;Ja4aWe-Fra.e/+rkS/ee"S1+" E1d# $he Fra.e/+rk ? *rai0 Ec+deha, E+r*; ? c+deE*++*0eEc+.;/e-"++0ki"; ? "r," Ea1acheE+r*; ? "a1e "r3Ea1acheE+r* A /icke"Ea1acheE+r*

2008 JavaOneSM Conference | java.sun.com/javaone | 26

CHOOSI ! " J"#" W$% F&"'$WO&() " CO'*"&ISO &+chard *ack


,S--./0

2008 JavaOneSM Conference | java.sun.com/javaone | 2/

Anda mungkin juga menyukai