Tải bản đầy đủ (.pdf) (74 trang)

Head First Servlets and JSP phần 6 ppt

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 (2.48 MB, 74 trang )


FKDSWHU
AW]KIV][MVM[\MLM`XZM[[QWV[
QV[QLM\PMJZIKSM\[
MDYDXWLO0DSPXVLF0DS QHZMDYDXWLO+DVK0DS
PXVLF0DSSXW³$PELHQW´³=HUR´
PXVLF0DSSXW³6XUI´³7DKLWL´
PXVLF0DSSXW³'-´³%7´
PXVLF0DSSXW³,QGLH´³)URX)URX´
UHTXHVWVHW$WWULEXWH³PXVLF0DS´PXVLF0DS
6WULQJ>@PXVLF7\SHV ^³$PELHQW´³6XUI´³'-´³,QGLH´`
UHTXHVWVHW$WWULEXWH³0XVLF7\SH´PXVLF7\SHV
0XVLFLV^PXVLF0DS>0XVLF7\SH>@@`
,QDVHUYOHW
7KLV'2(6ZRUNLQD-63
KWWSORFDOKRVWWHVW-637HVWHUGR
0XVLFLV=HUR
0XVLFLV^PXVLF0DS>³$PELHQW´@`
)TSEXPRESSIONSALLTHEWAYDOWNIN%,9OUNEST
EXPRESSIONSTOANYARBITRARYLEVEL)NOTHERWORDSYOUCAN
PUTACOMPLEXEXPRESSIONINSIDEACOMPLEXEXPRESSION
INSIDEAITKEEPSGOING!NDTHEEXPRESSIONSARE
EVALUATEDFROMTHEINNERMOSTBRACKETSOUT
4HISPARTWILLSEEMCOMPLETELYINTUITIVETOYOUBECAUSE
ITSNODIFFERENTTHANNESTING*AVACODEWITHINPARENS4HE
TRICKYPARTISTOWATCHOUTFORQUOTESVSNOQUOTES
0XVLFLV=HUR
becomes
becomes
QHVWHGH[SUHVVLRQV
Chapter 8. Script-free pages


Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

AW]KIV¼\LW^IRR`
7ITHBEANSAND-APSYOUCANUSETHEDOTOPERATORBUTONLYIFTHE
THINGYOUTYPEAFTERTHEDOTISALEGAL*AVAIDENTIFER
7KLV
^PXVLF0DS$PELHQW`
,VWKHVDPHDV
WKLV
^PXVLF0DS>³$PELHQW´@`
%XW
WKLV
^PXVLF/LVW>³´@`
&$1127EHWXUQHGLQWR
WKLV
^PXVLF/LVW`
NO! NO! NO!
works
works
,I\RXZRXOGQ·WXVHLWIRUD
YDULDEOHQDPHLQ\RXU-DYDFRGH
'21·7SXWLWDIWHUWKHGRW
6KDUSHQ \RXU SHQFLO

MDYDXWLO$UUD\/LVWQXPV QHZMDYDXWLO$UUD\/LVW
QXPVDGG³´
QXPVDGG³´
QXPVDGG³´
UHTXHVWVHW$WWULEXWH³QXPEHUV´QXPV
6WULQJ>@IDYRULWH0XVLF ^³=HUR´³7DKLWL´³%7´³)URX)URX´`
UHTXHVWVHW$WWULEXWH³PXVLF/LVW´IDYRULWH0XVLF
^PXVLF/LVW>QXPEHUV>@@`
^PXVLF/LVW>QXPEHUV>@@`
^PXVLF/LVW>QXPEHUV>³´@@`
^PXVLF/LVW>QXPEHUV>QXPEHUV>@@@`
:KDWSULQWV"
*LYHQWKHVHUYOHWFRGHEHORZ¿JXUHRXWZKDWZRXOGSULQWRULIWKHUH¶GEHDQHUURU
MXVWZULWH\RXNQRZ³HUURU´$QVZHUVDUHDWWKHERWWRPRIWKHQH[WSDJH




(WeÕll talk more about EL
operators in a few pages.)
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
$ONTBESURPRISEDIFYOUlNDSOMETHINGLIKE

THISONTHEEXAMEXCEPTINTHEREALEXAMITLL
LOOKUGLIER
3TUDYTHETHREECLASSESONTHEPAGEAND
THESERVLETCODEONTHEOPPOSITEPAGETHEN
CONSTRUCTTHECODEMAGNETSTOMAKETHE%,
THATLLPRODUCETHERESPONSESHOWNINTHE
BROWSER4URNTHEPAGEFORTHEANSWERSBUT
NOTUNTILYOU$/4()3ESPECIALLYIFYOURE
GOINGTOTAKETHEEXAM
SDFNDJHIRR
SXEOLFFODVV'RJ^
SULYDWH6WULQJQDPH
SULYDWH7R\>@WR\V
SXEOLFYRLGVHW1DPH6WULQJQDPH^
WKLVQDPH QDPH
`
SXEOLF6WULQJJHW1DPH^
UHWXUQQDPH
`
SXEOLFYRLGVHW7R\V7R\>@WR\V^
WKLVWR\V WR\V
`
SXEOLF7R\>@JHW7R\V^
UHWXUQWR\V
`
`
IRR'RJ
SDFNDJHIRR
SXEOLFFODVV3HUVRQ^
SULYDWH'RJGRJ

SULYDWH6WULQJQDPH
SXEOLFYRLGVHW'RJ'RJGRJ^
WKLVGRJ GRJ
`
SXEOLF'RJJHW'RJ^
UHWXUQGRJ
`
SXEOLFYRLGVHW1DPH6WULQJQDPH^
WKLVQDPH QDPH
`
SXEOLF6WULQJJHW1DPH^
UHWXUQQDPH
`
`
IRR3HUVRQ
SDFNDJHIRR
SXEOLFFODVV7R\^
SULYDWH6WULQJQDPH
SXEOLFYRLGVHW1DPH6WULQJQDPH^
WKLVQDPH QDPH
`
SXEOLF6WULQJJHW1DPH^
UHWXUQQDPH
`
`
IRR7R\
&RGH0DJQHWV
$QVZHUVWR6KDUSHQRQSUHYLRXVSDJH7DKLWL%7)U
RX)URX)URX)URX
ELJH[HUFLVHRQ(/

Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

IRR3HUVRQS QHZIRR3HUVRQ
SVHW1DPH³/HHOX´
IRR'RJG QHZIRR'RJ
GVHW1DPH³&O\GH´
IRR7R\W QHZIRR7R\
WVHW1DPH³VWLFN´
IRR7R\W QHZIRR7R\
WVHW1DPH³QHLJKERU¶VFDW´
IRR7R\W QHZIRR7R\
WVHW1DPH³%DUELHGROOKHDG´
GVHW7R\VQHZIRR7R\>@^WWW`
SVHW'RJG
UHTXHVWVHW$WWULEXWH³SHUVRQ´S
6HUYOHWFRGH
KWWSORFDOKRVWWHVW-637HVWHUGR
/HHOX¶VGRJ&O\GH¶VWR\VDUHVWLFN
QHLJKERU¶VFDWDQGD%DUELHGROO
KHDG
&RPSRVHWKH(/IRUWKLVRXWSXW
¶V

^SHUVRQQDPH`
GRJ
^SHUVRQGRJWR\V
^SHUVRQGRJQDPH`
WR\VDUH
¶V
^SHUVRQGRJ
`
>@
QDPH
WR\V>@
QDPH
`
DQGD
^SHUVRQ
GRJ
WR\V
>@
QDPH

`
QDPH
WR\V
WR\V
WR\V


^SHUVRQGRJWR\VQDPH`
^SHUVRQGRJWR\VQDPH`
WR\V

^SHUVRQGRJWR\V>³QDPH´@
WR\V>³QDPH´@
WR\V>³QDPH´@
>@
>@
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
IRR3HUVRQS QHZIRR(PSOR\HH
SVHW1DPH³/HHOX´
IRR'RJG QHZIRR'RJ
GVHW1DPH³&O\GH´
IRR7R\W QHZIRR7R\
WVHW1DPH³VWLFN´
IRR7R\W QHZIRR7R\
WVHW1DPH³QHLJKERU¶VFDW´
IRR7R\W QHZIRR7R\
WVHW1DPH³%DUELHGROOKHDG´
GVHW7R\VQHZIRR7R\>@^WWW`
SVHW'RJG
UHTXHVWVHW$WWULEXWH³SHUVRQ´S
6HUYOHWFRGH
KWWSORFDOKRVWWHVW-637HVWHUGR
/HHOX¶VGRJ&O\GH¶VWR\VDUH

VWLFNQHLJKERU¶VFDWDQGD
%DUELHGROOKHDG
&RPSRVHWKH(/IRUWKLVRXWSXW
¶V
^SHUVRQQDPH`¶VGRJ^SHUVRQGRJQDPH`¶VWR\VDUH^SHUVRQGRJWR\V>@
QDPH`^SHUVRQGRJWR\V>@QDPH`DQGD^SHUVRQGRJWR\V>@QDPH`
^SHUVRQQDPH`
GRJ
^SHUVRQGRJWR\V
^SHUVRQGRJQDPH`
WR\VDUH¶V
^SHUVRQGRJ
`
>@
QDPH
WR\V>@
QDPH
`
DQGD
^SHUVRQ GRJ WR\V
>@
QDPH

`
&RGH0DJQHWV
$QVZHUV
>@
>@
WR\V>³QDPH´@
^SHUVRQGRJWR\V>³QDPH´@

WR\V
^SHUVRQGRJWR\VQDPH`
^SHUVRQGRJWR\VQDPH`


WR\V
WR\V
WR\V
QDPH
H[HUFLVHDQVZHUV
This is not the ONLY way to produce the output, but
itÕs the only way using this set of magnets. Bonus
exercise: write the EL expressions a little differently
(forget the magnets), but print the same result.
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

<PM-4QUXTQKQ\WJRMK\[
2EMEMBER%,HASSOMEIMPLICITOBJECTS"UTTHESE
ARENOTTHESAMEASTHE*30IMPLICITOBJECTSEXCEPT
FORONEPAGE#ONTEXT(ERESAQUICKLISTWELLLOOK
ATSOMEOFTHEMINMOREDETAILONTHENEXTFEWPAGES
9OULLNOTICETHATALLBUTONEPAGE#ONTEXTAGAINARE

SIMPLE-APSNAMEVALUEPAIRS
5HPHPEHUWKDWP\+70/IRUP
DFWLRQJRHVVWUDLJKWWRWKH
-63LVWKHUHDZD\,FDQXVHWKH
UHTXHVWSDUDPHWHUVMXVWXVLQJ(/"
SDJH6FRSH
UHTXHVW6FRSH
VHVVLRQ6FRSH
DSSOLFDWLRQ6FRSH
SDUDP
SDUDP9DOXHV
KHDGHU
KHDGHU9DOXHV
FRRNLH
LQLW3DUDP
SDJH&RQWH[W
A Map of the scope
attributes.
Maps of the request
parameters.
Maps of the
request headers.
Ooohhhh this is a tough one
could it be a Map of cookies?
A Map of the context init parameters
(NOT servlet init parameters!)
The only thing that is NOT a Map. This is
the real dealÑan actual reference to the
pageContext object, which you can think of as
a bean. Look in the API for the PageContext

getter methods.
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
:MY]M[\XIZIUM\MZ[QV-4
0IECEOFCAKE4HEPARAMIMPLICITOBJECTISlNEWHENYOUKNOWYOUHAVEONLY
ONEPARAMETERFORTHATPARTICULARPARAMETERNAME5SEPARAM6ALUESWHENYOU
MIGHTHAVEMORETHANONEPARAMETERVALUEFORAGIVENPARAMETERNAME
,QWKH+70/IRUP
IRUPDFWLRQ ´7HVW%HDQMVS´!
1DPHLQSXWW\SH ´WH[W´QDPH ´QDPH´!
,'LQSXWW\SH ´WH[W´QDPH ´HPS,'´!

)LUVWIRRGLQSXWW\SH ´WH[W´QDPH ´IRRG´!
6HFRQGIRRGLQSXWW\SH ´WH[W´QDPH ´IRRG´!

LQSXWW\SH ´VXEPLW´!
IRUP!
The ÒnameÓ and ÒempIDÓ will each have a
single value. But the ÒfoodÓ parameter could
have two values, if the user Þ lls in both
Þ elds before hitting the submit button
5HTXHVWSDUDPQDPHLV^SDUDPQDPH`EU!
5HTXHVWSDUDPHPS,'LV^SDUDPHPS,'`EU!

5HTXHVWSDUDPIRRGLV^SDUDPIRRG`EU!
)LUVWIRRGUHTXHVWSDUDP^SDUDP9DOXHVIRRG>@`EU!
6HFRQGIRRGUHTXHVWSDUDP^SDUDP9DOXHVIRRG>@`EU!
5HTXHVWSDUDPQDPH^SDUDP9DOXHVQDPH>@`
KWWSORFDOKRVWWHVW-637HVWHUGR
5HTXHVWSDUDPQDPHLV)OXII\
5HTXHVWSDUDPHPS,'LV
5HTXHVWSDUDPIRRGLV6XVKL
)LUVWIRRGUHTXHVWSDUDP6XVKL
6HFRQGIRRGUHTXHVWSDUDP0DFDURQL
&KHHVH
5HTXHVWSDUDPQDPH)OXII\
KWWSORFDOKRVWWHVW-637HVW%HDQMVS
1DPH ,'
)LUVWIRRG
6HFRQGIRRG
)OXII\

6XVKL
0DFDURQL&KHHVH
,QWKH-63
,QWKHFOLHQW·VEURZVHUFOLHQWÀOOVLQ
WKHIRUPDQGKLWVWKHVXEPLWEXWWRQ
7KHUHVSRQVH
Remember, param is just a Map of
parameter names and values. The things to
the right of the dot come from the names
speciÞ ed in the input Þ elds of the form.
Even though there might be multiple values
for the ÒfoodÓ parameter, you can still use

the single param implicit object, but youÕll
get only the Þ rst value.
SDUDPDQGSDUDP9DOXHV
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

?PI\QNaW]_IV\UWZMQVNWZUI\QWVNZWU\PMZMY]M[\'
7HATIFYOUWANTSAYTHESERVERHOSTINFORMATIONTHATCOMESWITHTHEhHOSTvHEADERIN
THEREQUEST)FYOULOOKINTHE(TTP3ERVLET2EQUEST!0)YOUCANSEEAGET(EADER3TRING
METHOD7EKNOWTHATIFWEPASShHOSTvTOTHEGET(EADERMETHODWELLGETBACK
SOMETHINGLIKEhLOCALHOSTvBECAUSETHATSWHERETHEWEBSERVERIS
:HNQRZZHFDQGRLWZLWK
VFULSWLQJ
+RVWLV UHTXHVWJHW+HDGHU³KRVW´!
%XWZLWK(/ZH¶YHJRWWKHKHDGHULPSOLFLWREMHFW
+RVWLV^KHDGHU>³KRVW´@`

+RVWLV^KHDGHUKRVW`
The header implicit object keeps a Map of all the headers.
Use either access operator to pass in the header name and
the value of that header will print. (Note: thereÕs also
a headerValues implicit object for headers with multiple
values. It works just like paramValues.)

*HWWLQJWKH´KRVWµKHDGHU
:HNQRZZHFDQGRLWZLWK
VFULSWLQJ
0HWKRGLV UHTXHVWJHW0HWKRG!
%XWZLWK(/
WKLV
ZLOO127ZRUN
0HWKRGLV^UHTXHVWPHWKRG`
*HWWLQJWKH+773UHTXHVWPHWKRG
5HOH4HISISALITTLETRICKIERTHERESAMETHODINTHE
(TTP3ERVLET2EQUEST!0)FORGET-ETHODTHATRETURNS'%40/34ETC
"UTHOWDO)GETITUSING%,
NO! NO! NO! There IS no
implicit request object!
$QG
WKLV
ZLOO127ZRUN
0HWKRGLV^UHTXHVW6FRSHPHWKRG`
NO! NO! NO! There IS an implicit
requestScope, but itÕs NOT the
request object itself.
&DQ\RXÀJXUHRXWKRZWRGRLW"
+LQWORRNDWWKHRWKHULPSOLFLWREMHFWV
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.


FKDSWHU
<PMZMY]M[\;KWXMQ[67<\PMZMY]M[\WJRMK\
4HEIMPLICITREQUEST3COPEISJUSTA-APOFTHEREQUESTSCOPEATTRIBUTES
NOTTHEREQUESTOBJECTITSELF7HATYOUWANTTHE(440METHODISA
PROPERTYOFTHEREQUESTOBJECTNOTANATTRIBUTEATREQUESTSCOPE)NOTHER
WORDSYOUWANTSOMETHINGTHATCOMESFROMCALLINGAGETTERMETHODON
THEREQUESTOBJECTIFWETREATTHEREQUESTOBJECTLIKEABEAN
"UTTHEREISNOREQUESTIMPLICITOBJECTONLYREQUEST3COPE7HATTODO
9OUNEEDSOMETHINGELSE
8VHUHTXHVW6FRSHWRJHWUHTXHVW
$775,%87(6QRWUHTXHVW3523(57,(6
)RUUHTXHVWSURSHUWLHV\RXQHHGWRJR
WKURXJKSDJH&RQWH[W
0HWKRGLV^SDJH&RQWH[WUHTXHVWPHWKRG`
8VHSDJH&RQWH[WWRJHWWRHYHU\WKLQJHOVH
SDJH&RQWH[W
KDVD
UHTXHVW
SURSHUW\
UHTXHVW
KDVD
PHWKRG
SURSHUW\

,W¶VVRHDV\WRWKLQNWKDWVD\DSSOLFDWLRQ6FRSHLVDUHIHUHQFHWR6HUY
OHW&RQWH[WVLQFHWKDW¶VZKHUHDSSOLFDWLRQVFRSHGDWWULEXWHVDUHERXQG
%XWMXVWDVZLWKUHTXHVW6FRSHDQGWKHUHTXHVWREMHFWWKHVFRSH0DSIRU
DSSOLFDWLRQVFRSHGDWWULEXWHVLVMXVWWKDW²D0DSRIDWWULEXWHVDQGQRWK
LQJPRUH<RXFDQ¶WWUHDWLWOLNHD6HUYOHW&RQWH[WVRGRQ¶WH[SHFWWRJHW

6HUYOHW&RQWH[WSURSHUWLHVEDFNIURPWKHDSSOLFDWLRQ6FRSHLPSOLFLWREMHFW
'RQ·WFRQIXVHWKH0DS
VFRSH
REMHFWVZLWKWKH
REMHFWVWRZKLFKWKHDWWULEXWHVDUHERXQG
VFRSHPDSVDUH127WKHUHDOREMHFW
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

;KWXMQUXTQKQ\WJRMK\[KIV[I^MaW]
)FALLYOUNEEDISTOPRINTTHENAMEOFAPERSONANDYOUREALLY
DONTCAREWHATSCOPETHEPERSONISINORYOUDOCAREBUT
YOUKNOWTHERESONLYONEPERSONOUTOFALLFOURSCOPESYOU
JUSTUSE
/RIFYOUREWORRIEDABOUTAPOTENTIALNAMINGCONmICTYOU
CANBEEXPLICITABOUTWHICHPERSONYOUWANT
^UHTXHVW6FRSHSHUVRQQDPH`
"UTISTHEREANOTHERREASONYOUMIGHTHAVETOPREFACETHE
ATTRIBUTEWITHTHEIMPLICITSCOPEOBJECT/THERTHANTO
CONTROLSCOPING
4HINKABOUTTHISSCENARIOIFYOUHAVEANAMETHATSNOT
INQUOTESINBRACKETS;=THATMEANSIT-534ADHERETO
*AVANAMINGRULESRIGHT(EREWERE/+BECAUSEPERSON

ISAPERFECTLYLEGAL*AVAVARIABLENAME"UTTHATSBECAUSE
SOMEWHERESOMEONESAID
UHTXHVWVHW$WWULEXWH³SHUVRQ´S
"UTANATTRIBUTENAMEISA3TRING
3TRINGSDONTFOLLOW*AVAVARIABLENAMERULES
4HATMEANSSOMEONE
COULD
SAY
UHTXHVWVHW$WWULEXWH³IRRSHUVRQ´S
!NDTHENYOUDBEINTROUBLEBECAUSE4()3WONTWORK
^IRRSHUVRQQDPH`
"UTYOULLBESOTHANKFULFORSCOPEOBJECTSBECAUSEUSINGA
SCOPEOBJECTLETSYOUSWITCHTOTHE;=OPERATORTHATCANTAKE
3TRINGNAMESTHATDONTCONFORMTO*AVANAMINGRULES
,I(/ORRNVWKURXJKDOOWKH
VFRSHVDQ\ZD\ZK\ZRXOG
,HYHUXVHRQHRIWKHVFRSH
LPSOLFLWREMHFWV"7KHRQO\WKLQJ,
FDQWKLQNRILVDQDPLQJFRQÁLFW
EXW,ZRQGHULIWKHUHPLJKW
EHDQRWKHUUHDVRQ
^SHUVRQQDPH`
^
UHTXHVW6FRSH>³IRRSHUVRQ´@QDPH`
NO! This is certainly legal, but the Container
just thinks that ÒfooÓ is an attribute
somewhere, with a ÒpersonÓ property. But the
Container never Þnds a ÒfooÓ attribute.
Perfect! Using the
requestScope object gives

us a way to put the
attribute name in quotes.
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
/M\\QVO+WWSQM[IVLQVQ\XIZIU[
7EVELOOKEDATALLTHEIMPLICITOBJECTSEXCEPTCOOKIESANDINITPARAMSSO
HEREWEARE!NDYESANYOFTHEIMPLICITOBJECTSCANSHOWUPONTHEEXAM
This is kind of a pain, because the
request object does NOT have a
getCookie(cookieName) method! We
have to get the whole Cookie array and
iterate through it ourselves.
:HNQRZZHFDQGRLWZLWK
VFULSWLQJ
&RRNLH>@FRRNLHV UHTXHVWJHW&RRNLHV
IRULQWL LFRRNLHVOHQJWKL^
LIFRRNLHV>L@JHW1DPHHTXDOV³XVHU1DPH´^
RXWSULQWOQFRRNLHV>L@JHW9DOXH
`
`!
%XWZLWK(/ZH¶YHJRWWKH&RRNLHLPSOLFLWREMHFW
^
FRRNLHXVHU1DPHYDOX`

3ULQWLQJWKHYDOXHRIWKH´XVHU1DPHµ&RRNLH
WAY easier. Just give it the name, and the value
comes back from the Map of Cookie names/values.
Remember. this is how you conÞ gure
context (app-wide) parameters. These
are NOT the same as servlet init params.
:HKDYHWRFRQ¿JXUHWKHSDUDPHWHULQWKH''
FRQWH[WSDUDP!
SDUDPQDPH!PDLQ(PDLOSDUDPQDPH!
SDUDPYDOXH!OLNHZHFDUH#ZLFNHGO\VPDUWFRPSDUDPYDOXH!
FRQWH[WSDUDP!
3ULQWLQJWKHYDOXHRIDFRQWH[WLQLWSDUDPHWHU
:HNQRZZHFDQGRLWZLWK
VFULSWLQJ
HPDLOLV DSSOLFDWLRQJHW,QLW3DUDPHWHU³PDLQ(PDLO´!
$QGZLWK(/LW¶VHYHQHDVLHU
HPDLOLV^LQLW3DUDPPDLQ(PDLO`
WZRPRUHLPSOLFLWREMHFWV

+HUH¶VZKDW¶VFRQIXVLQJVHUYOHWLQLWSDUDPVDUH
FRQ¿JXUHGXVLQJLQLWSDUDP!ZKLOHFRQWH[WSDUDPV
XVHFRQWH[WSDUDP!EXWWKH(/LPSOLFLW³LQLW3DUDP´
LVIRUFRQWH[WSDUDPV+DGWKH\FRQVXOWHGXVZH
ZRXOGKDYHVXJJHVWHGWKDWWKHVSHFGHVLJQHUVPLJKW
FRQVLGHUQDPLQJWKLVYDULDEOHRK³FRQWH[W3DUDP´
EXWRQFHDJDLQWKH\IRUJRWWRDVNXV
7KH(/LQLW3DUDPLV127
IRUSDUDPVFRQÀJXUHG
XVLQJLQLWSDUDP!
Chapter 8. Script-free pages

Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

;PMLWM[V¼\SVW_IJW]\-4N]VK\QWV[
7HENYOUNEEDALITTLEEXTRAHELPFROMSAYA*AVAMETHOD
BUTYOUDONTWANTSCRIPTINGYOUCANUSEAN%,FUNCTION)TS
ANEASYWAYTOWRITEASIMPLE%,EXPRESSIONTHATCALLSASTATIC
METHODINAPLAINOLD*AVACLASSTHATYOUWRITE7HATEVERTHE
METHODRETURNSISUSEDINTHEEXPRESSION)TDOESTAKEATINY
BITMOREWORKTOCONlGURETHINGSBUTFUNCTIONSGIVEYOUA
LOTMOREFUNCTIONALITY
(/LVZRQGHUIXOEXWVRPHWLPHV
,QHHG
IXQFWLRQDOLW\
QRWMXVW
DWWULEXWHRUSURSHUW\YDOXHV,I
RQO\WKHUHZHUHDZD\WRKDYHDQ(/
H[SUHVVLRQFDOOD-DYDPHWKRGWKDW
UHWXUQVDYDOXHWKHQ,ZRXOG
EHKDSS\
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.

This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
1UIOQVMaW]_IV\aW]Z2;8\WZWTTLQKM
9OUVEDECIDEDITWOULDBEAWESOMETOHAVEAWEBBASEDDICEROLLING
SERVICE4HATWAYINSTEADOFHUNTINGAROUNDBEHINDDESKSANDINTHE
SOFACUSHIONSFORREALDICEAUSERCOULDJUSTGOTOYOURWEBPAGECLICKON
THEVIRTUALDICEANDVOILA4HEYROLL/FCOURSEYOUHAVENOIDEATHATA
'OOGLESEARCHWILLPROBABLYBRINGUPOHABOUTSITESTHATDOTHIS

:ULWHD-DYDFODVVZLWKDSXEOLFVWDWLFPHWKRG

7KLVLVMXVWDSODLQROG-DYDFODVV7KHPHWKRG0867EHSXEOLFDQGVWDWLFDQGLWFDQ
KDYHDUJXPHQWV,WVKRXOGEXWLVQ·WUHTXLUHGWRKDYHDQRQYRLGUHWXUQW\SH$IWHUDOO
WKHZKROHSRLQWLVWRFDOOWKLVIURPD-63DQGJHWVRPHWKLQJEDFNWKDW\RXFDQXVHDV
SDUWRIWKHH[SUHVVLRQRUWRSULQWRXW
3XWWKHFODVVILOHLQWKH:(%,1)FODVVHVGLUHFWRU\VWUXFWXUHPDWFKLQJWKHDSSURSULDWH
SDFNDJHGLUHFWRU\VWUXFWXUHMXVWOLNH\RXZRXOGZLWKDQ\RWKHUFODVV

:ULWHD7DJ/LEUDU\'HVFULSWRU7/'ÀOH
)RUDQ(/IXQFWLRQWKH7/'SURYLGHVDPDSSLQJEHWZHHQWKH-DYDFODVVWKDWGHILQHVWKH
IXQFWLRQDQGWKH-63WKDWFDOOVWKHIXQFWLRQ7KDWZD\WKHIXQFWLRQQDPHDQGWKHDFWXDO
PHWKRGQDPHFDQEHGLIIHUHQW<RXPLJKWEHVWXFNZLWKDFODVVZLWKDUHDOO\VWXSLGPHWKRG
QDPHIRUH[DPSOHDQGPD\EH\RXZDQWWRSURYLGHDPRUHREYLRXVRULQWXLWLYHQDPHWR
SDJHGHVLJQHUVXVLQJ(/1RSUREOHP³WKH7/'VD\V´7KLVLVWKH-DYDFODVVWKLVLVWKH
PHWKRGVLJQDWXUHIRUWKHIXQFWLRQLQFOXGLQJUHWXUQW\SHDQGWKLVLVWKHQDPHZH·OOXVHLQ
(/H[SUHVVLRQVµ,QRWKHUZRUGVWKHQDPHXVHGLQ(/GRHVQ·WKDYHWREHWKHVDPHDVWKH
DFWXDOPHWKRGQDPHDQGWKH7/'LVZKHUH\RXPDSWKDW

3XWWKH7/'ILOHLQVLGHWKH:(%,1)GLUHFWRU\1DPHLWZLWKDWOGH[WHQVLRQ7KHUHDUH
RWKHUSODFHVWKH7/'FDQJRZH·OOWDONDERXWWKDWLQWKHQH[WWZRFKDSWHUV

3XWDWDJOLEGLUHFWLYHLQ\RXU-63
7KHWDJOLEGLUHFWLYHWHOOVWKH&RQWDLQHU´,·PJRLQJWRXVHWKLV7/'DQGLQWKH-63ZKHQ,ZDQW
WRXVHDIXQFWLRQIURPWKLV7/',·PJRLQJWRSUHIL[LWZLWKWKLVQDPHµ,QRWKHUZRUGVLWOHWV
\RXGHILQHWKHQDPHVSDFH<RXFDQXVHIXQFWLRQVIURPPRUHWKDQRQH7/'DQGHYHQLIWKH
IXQFWLRQVKDYHWKHVDPHQDPHWKDW·V2.7KHWDJOLEGLUHFWLYHLVNLQGRIOLNHJLYLQJDOO\RXU
IXQFWLRQVIXOO\TXDOLILHGQDPHV<RXLQYRNHWKHIXQFWLRQE\JLYLQJERWKWKHIXQFWLRQQDPH$1'
WKH7/'SUHIL[7KHSUHIL[FDQEHDQ\WKLQJ\RXOLNH

8VH(/WRLQYRNHWKHIXQFWLRQ

7KLVLVWKHHDV\SDUW<RXMXVWFDOOWKHIXQFWLRQIURPDQH[SUHVVLRQXVLQJ^SUHIL[QDPH`
IXQFWLRQVLQ(/
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

7KHIXQFWLRQFODVVWKH7/'DQGWKH-63
7KH7DJ/LEUDU\'HVFULSWRU7/'ÀOH
"[POYHUVLRQ ´´HQFRGLQJ ´,62´"!
WDJOLE[POQV ´KWWSMDYDVXQFRP[POQVMHH´
[POQV[VL ´KWWSZZZZRUJ;0/6FKHPDLQVWDQFH´

[VLVFKHPD/RFDWLRQ ´KWWSMDYDVXQFRP[POQVMHHZHE
MVSWDJOLEUDU\BB[VG´YHUVLRQ ´´!
WOLEYHUVLRQ!WOLEYHUVLRQ!
XUL!'LFH)XQFWLRQVXUL!
IXQFWLRQ!
QDPH!UROO,WQDPH!
IXQFWLRQFODVV!IRR'LFH5ROOHUIXQFWLRQFODVV!
IXQFWLRQVLJQDWXUH!
LQWUROO'LFH
IXQFWLRQVLJQDWXUH!
IXQFWLRQ!
WDJOLE!
7KHFODVVZLWKWKHIXQFWLRQ
SDFNDJHIRR
SXEOLFFODVV'LFH5ROOHU^

SXEOLFVWDWLFLQWUROO'LFH
^
UHWXUQLQW0DWKUDQGRP
`
`
7KH-63
#WDJOLESUH¿[ ´PLQH´XUL ´'LFH)XQFWLRQV´!
KWPO!ERG\!
^PLQHUROO,W`
ERG\!KWPO!
OO
P

HU

The function name rollIt() comes from
the <name> in the TLD, not from
anything in the actual Java class.
The preÞ x ÒmineÓ is just
the nickname weÕll use
inside THIS page, so that
we can tell one TLD
from another (in case you
DO have more than one).
Do NOT worry about all the
stuff inside the <taglib > tag.
WeÕll talk more about TLDs in
the next two chapters.
The function method MUST
be public AND static.
The uri in the taglib directive
tells the Container the name of
the TLD (which does NOT have
to be the name of the FILE!),
which the Container needs so
it knows which method to call
when the JSP invokes the EL
function.
IXQ
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that

otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
,MXTWaQVOIVIXX_Q\P[\I\QKN]VK\QWV[
4HEONLYTHINGTHATSNEWHEREISTHEhMY&UNCTIONSTLDvlLE)THASTOBE
SOMEWHEREWITHIN7%").&ORONEOFITSSUBDIRECTORIESUNLESSITSDEPLOYEDIN
A*!2lLEBUTWELLTALKABOUTTHATLATERINTHEBOOK(EREBECAUSETHISAPPIS
SOSIMPLEWEHAVEBOTHTHE$$WEBXMLANDTHE4,$MY&UNCTIONSTLDAT
THETOPLEVELOF7%").&BUTYOUCOULDORGANIZETHEMINTOSUBDIRECTORIES
4HEKEYPOINTISTHATTHECLASSWITHTHESTATICFUNCTION-534BEAVAILABLETOTHE
APPSOFORNOWYOUKNOWTHATPUTTINGITINSIDE7%").&CLASSESWILLWORK
!NDREMEMBERTHATINTHETAGLIBDIRECTIVEINTHE*30WESPECIlEDA52)THAT
MATCHESTHE52)DECLAREDINTHE4,$&ORNOWTHINKOFTHE52)ASSIMPLY
WHATEVERYOUDECIDEDTONAMETHE4,$)TSJUSTANAME)NTHENEXTCHAPTERON
USINGCUSTOMTAGSWELLGOINTOALLTHEDETAILSABOUT4,$SAND52)S
#WDJOLESUH¿[ ´PLQH´XUL ´'LFH)XQFWLRQV´!
ZHEDSSV
6DPSOH$SS
:(%,1)
FODVVHV
"[POYHU
VLRQ ´´
HQFRGLQJ
´87)´"!
'2&7<3(
ZHE[PO
IXQFWLRQ!
QDPH!
UROO,W
QDPH!

IXQFWLRQ
FODVV!
IRR'LFH5ROOHU
IXQFWLRQ
P\)XQFWLRQVWOG
IRR





'LFH5ROOHUFODVV
The TLD that
declares the function
class, method signature,
and function name.
The Java class with
the function (a public
static method).
#WDJOLE
SUH¿[ ´PLQH´
XUL ´:(%,1)
P\)XQFWLRQVWOG´!
KWPO!ERG\!
^PLQHUROO,W`
ERG\!
KWPO!
7HVW%HDQMVS
The JSP that invokes
the EL function

7KHFODVVZLWKWKHIXQFWLRQ
WKHSXEOLFVWDWLFPHWKRG
PXVWEHDYDLODEOHWRWKHZHE
DSSMXVWOLNHVHUYOHWEHDQ
DQGOLVWHQHUFODVVHV7KDW
PHDQVVRPHZKHUHLQ:(%
,1)FODVVHV
3XWWKH7/'ILOHVRPHZKHUH
XQGHU:(%,1)DQGPDNH
VXUHWKHWDJOLEGLUHFWLYH
LQWKH-63LQFOXGHVDXUL
DWWULEXWHWKDWPDWFKHVWKH
XUL!HOHPHQWLQWKH7/'
This is an identiÞ er that must match
the <uri> inside the TLD.
GHSOR\LQJZLWKDIXQFWLRQ
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

WKHUH DUH QR
'
XPE 4XHVWLRQV
4


!REGULARSCRIPTLETEXPRESSION-534
RETURNSOMETHING)FYOUSAYFOO
GET&OOGET&OOMUST./4HAVEAVOID
RETURNTYPE!TLEASTTHATSWHATYOUSAID
EARLIER3O)MTHINKINGITSTHESAMEWITH%,
FUNCTIONS
$

.O)TS./4THESAMEWITH%,FUNCTIONS
ALTHOUGHJUSTABOUTEVERYBODYFINDSTHAT
SURPRISING4HINKABOUTTHISIFYOURECALLINGAN
%,FUNCTIONTHATDOESNTRETURNANYTHINGTHEN
YOURECALLINGITJUSTFORITSSIDEEFFECTS'IVEN
THATPARTOFTHEGOALFOR%,ISTOREDUCETHE
AMOUNTOFLOGICINA*30A*30SUPPOSEDTOBE
THE6)%7INVOKINGAN%,FUNCTIONJUSTFORITS
SIDEEFFECTSDOESNTSOUNDLIKEAGOODIDEA
4

(OWDIDTHE#ONTAINERlNDTHE4,$
4HE52)DOESNTMATCHTHEPATHORl LENAME
OFTHE4,$7ASTHISAMIRACLE
$
*USTTHEQUESTIONWEWEREHOPING
SOMEONEWOULDASK9ESYOURERIGHTWENEVER
DIDTELLTHE#ONTAINEREXACTLYWHERETOFIND
THEREAL4,$FILE7HENTHEAPPISDEPLOYED
THE#ONTAINERSEARCHESTHROUGH7%").&AND
ITSSUBDIRECTORIESORIN*!2FILESWITHIN7%"

).&LIBLOOKINGFORTLDFILES7HENITFINDSONE
ITREADSTHE52)ANDCREATESAMAPTHATSAYS
h4HE4,$WITHTHIS52)ISACTUALLYTHISFILEATTHIS
LOCATIONv4HERESALITTLEMORETOTHESTORYTHAT
WELLCOVERINTHENEXTCHAPTER
4

#ANAN%,FUNCTIONHAVEARGUMENTS
$
$EFINITELY*USTREMEMBERINTHE4,$TO
SPECIFYTHEFULLYQUALIFIEDCLASSNAMEUNLESSITS
APRIMITIVEFOREACHARGUMENT!FUNCTIONTHAT
TAKESA-APWOULDBE
IXQFWLRQVLJQDWXUH!
LQWUROO'LFHMDYDXWLO0DS
IXQFWLRQVLJQDWXUH!

:DWFKLW
0HPRUL]HWKHUHODWLRQVKLSVEHWZHHQWKHFODVVWKH
7/'DQGWKH-630RVWLPSRUWDQWO\UHPHPEHUWKDWWKH
0(7+2'QDPHGRHV127KDYHWRPDWFKWKH)81&7,21
QDPH:KDW\RXXVHLQ(/WRLQYRNHWKHIXQFWLRQPXVW
PDWFKWKHQDPH!HOHPHQWLQWKHIXQFWLRQ!GHFODUDWLRQ
LQWKH7/'7KHHOHPHQWIRUIXQFWLRQVLJQDWXUH!LVWKHUH
WRWHOOWKH&RQWDLQHUZKLFKPHWKRGWRFDOOZKHQWKH-63
XVHVWKHQDPH!
$QGWKHRQO\SODFHWKHFODVVQDPHDSSHDUVEHVLGHVWKH
FODVVGHFODUDWLRQLWVHOILVLQWKHIXQFWLRQFODVV!HOHPHQW
2KDQGZKLOHZH¶UHKHUHGLG\RXQRWLFHWKDWHYHU\WKLQJ
LQWKHIXQFWLRQ!WDJKDVWKHZRUGIXQFWLRQ!LQLW

(;&(37IRUWKHQDPH!WDJ"6RGRQ¶WEHIRROHGE\WKLV
IXQFWLRQ!
IXQFWLRQQDPH!UROO,WIXQFWLRQQDPH!
IXQFWLRQFODVV!
IRR'LFH5ROOHUIXQFWLRQFODVV!
IXQFWLRQVLJQDWXUH!
LQWUROO'LFH
IXQFWLRQVLJQDWXUH!
IXQFWLRQ!
7KHFRUUHFWWDJIRUWKHIXQFWLRQQDPHLVQDPH!
IXQFWLRQ!

QDPH!UROO,WQDPH!
IXQFWLRQFODVV!
IRR'LFH5ROOHUIXQFWLRQFODVV!
IXQFWLRQVLJQDWXUH!
LQWUROO'LFH
IXQFWLRQVLJQDWXUH!
IXQFWLRQ!
7KH0(7+2'QDPHLVQRWWKH
VDPHDVWKH)81&7,21QDPH
NO!!
Good!
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.


FKDSWHU
)VLINM_W\PMZ-4WXMZI\WZ[
9OUPROBABLYWONTANDSHOULDNTDOCALCULATIONSANDLOGICFROM%,2EMEMBER
A*30ISTHE6IEWANDTHE6IEWSJOBISTORENDERTHERESPONSENOTTOMAKE"IG
)MPORTANT$ECISIONSORDO"IG0ROCESSING)FYOUNEEDREALFUNCTIONALITYTHATS
NORMALLYTHEJOBOFTHE#ONTROLLERAND-ODEL&ORLESSERFUNCTIONALITYYOUVEGOT
CUSTOMTAGSINCLUDINGTHE*34,TAGSAND%,FUNCTIONS
"UTFORLITTLETHINGSSOMETIMESALITTLEARITHMETICORASIMPLEBOOLEANTESTMIGHT
COMEINHANDY3OWITHTHATPERSPECTIVEHERESALOOKATTHEMOSTUSEFUL%,
ARTITHMETICRELATIONALANDLOGICALOPERATORS
$ULWKPHWLF
$GGLWLRQ  
6XEWUDFWLRQ  
0XOWLSOLFDWLRQ  
'LYLVLRQ  DQGGLY
5HPDLQGHU  DQGPRG
/RJLFDO
$1'   DQGDQG
25   __DQGRU
127   DQGQRW
5HODWLRQDO
(TXDOV  DQGHT
1RWHTXDOV   DQGQH
/HVVWKDQ  DQGOW
*UHDWHUWKDQ  !DQGJW
/HVVWKDQRUHTXDOWR  DQGOH
*UHDWHUWKDQRUHTXDOWR
 ! DQGJH


:DWFKLW
<RXFDQDOUHDG\VHHRIWKHPRQWKLVSDJH²WKH
DOWHUQDWH³ZRUGV´IRUWKHUHODWLRQDOORJLFDODQGVRPH
DULWKPHWLFRSHUDWRUV%XWWKHUHDUHDIHZPRUH
WUXH
DERROHDQOLWHUDO
IDOVH
WKH27+(5ERROHDQOLWHUDO
QXOO
,WPHDQVQXOO
LQVWDQFHRI
WKLVLVUHVHUYHGIRU³WKHIXWXUH´
HPSW\ DQRSHUDWRUWRVHHLIVRPHWKLQJLVQXOORU
 HPSW\HJ^HPSW\$`UHWXUQVWUXHLI$LV
 QXOORUHPSW\\RX¶OOVHHWKLVLQDFWLRQDOLWWOH
 ODWHULQWKHFKDSWHU
'RQ·WXVH(/UHVHUYHGZRUGV
DVLGHQWLÀHUV
By the way you CAN divide by zero in
ELÑyou get INFINITY, not an error.
But you CANNOT use the Remainder operator
against a zero youÕll get an exception.
(/RSHUDWRUV
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

VFULSWOHVV-63V
\RXDUHKHUH


 ^QXP!`

 ^LQWHJHUOH`

 ^UHTXHVW6FRSH>LQWHJHU@QHDQGOHQXP__IDOVH`

 ^OLVW>@__OLVW>³´@DQGWUXH`

 ^QXP!LQWHJHU`

 ^QXP LQWHJHU`


 MVSXVH%HDQFODVV ´IRR'RJ´LG ´P\'RJ´!
 MVSVHW3URSHUW\QDPH ´P\'RJ´SURSHUW\ ´QDPH´YDOXH ´^OLVW>@`´!
 MVSXVH%HDQ!

 ^P\'RJQDPHDQGWUXH`
 
 ^GLY`

 ^PLQHUROO,WOH`
6WULQJQXP ³´
UHTXHVWVHW$WWULEXWH³QXP´QXP
,QWHJHUL QHZ,QWHJHU
UHTXHVWVHW$WWULEXWH³LQWHJHU´L

MDYDXWLO$UUD\/LVWOLVW QHZMDYDXWLO$UUD\/LVW
OLVWDGG³WUXH´
OLVWDGG³IDOVH´
OLVWDGG³´
OLVWDGG³´
UHTXHVWVHW$WWULEXWH³OLVW´OLVW
6KDUSHQ \RXU SHQFLO
*LYHQWKLVVHUYOHWFRGH
:KDWSULQWVIRUHDFKRIWKHVH"
/RRNDWWKHVHUYOHWFRGHWKHQ¿JXUHRXWZKDWSULQWVQH[WWRHDFK(/H[SUHVVLRQ
<RX¶OOKDYHWRJXHVVLQDIHZSODFHVVLQFHZHKDYHQ¶WFRYHUHGHYHU\SRVVLEOHUXOH
7KLVH[HUFLVHZLOOKHOS\RX¿JXUHRXWKRZ(/EHKDYHV+LQW(/LVÀH[LEOHDQGIRUJLY
LQJ$QRWKHUKLQWWKHDFWXDOQLQHDQVZHUVDUHSULQWHGDWWKHERWWRPRIWKLVSDJHXS
VLGHGRZQEXWWKH\DUH127LQDQ\RUGHU%XWLI\RXUHDOO\QHHGKHOSDWOHDVW\RX¶OO
KDYHWKHQLQHDQVZHUVDQG\RXFDQXVHHOLPLQDWLRQWR¿JXUHRXWZKHUHWKH\DOOJR
Assume that the Dog bean
class and rollIt() function
are both available.
IDOVHIDOVHIDOVHIDOVHIDOVH
WUXHWUXHWUXH,QILQLW\
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU


 ^QXP!`

 ^LQWHJHUOH`

 ^UHTXHVW6FRSH>LQWHJHU@QHDQGOHQXP__IDOVH`

 ^OLVW>@__OLVW>³´@DQGWUXH`

 ^QXP!LQWHJHU`

 ^QXP LQWHJHU`


 MVSXVH%HDQFODVV ´IRR'RJ´LG ´P\'RJ´!
 MVSVHW3URSHUW\QDPH ´P\'RJ´SURSHUW\ ´QDPH´YDOXH ´^OLVW>@`´!
 MVSXVH%HDQ!

 ^P\'RJQDPHDQGWUXH`
 
 ^GLY`

 ^PLQHUROO,WOH`
6WULQJQXP ³´
UHTXHVWVHW$WWULEXWH³QXP´QXP
,QWHJHUL QHZ,QWHJHU
UHTXHVWVHW$WWULEXWH³LQWHJHU´L
MDYDXWLO$UUD\/LVWOLVW QHZMDYDXWLO$UUD\/LVW
OLVWDGG³WUXH´
OLVWDGG³IDOVH´
OLVWDGG³´

OLVWDGG³´
UHTXHVWVHW$WWULEXWH³OLVW´OLVW
6KDUSHQ \RXU SHQFLO
*LYHQWKLVVHUYOHWFRGH
:KDWSULQWVIRUHDFKRIWKHVH"
false
true
false
true
false
true
false
InÞnity
false
The ÒnumÓ attribute was found, and
its value Ò2Ó coerced to an int.
Even better! The Integer value was converted
to its primitive value, and then compared.
Watch out for using = instead of
==. There is NO = in EL.
Yes, you can use EL
inside a tag!
If you remember the rollIt()
code, it always returns a
number greater than zero.
See if you can Þgure
out the precedence
rules for when you
donÕt use parens. ItÕs
very intuitive (left to

right), and you should
have NO problems with
precedence on the exam.
(/RSHUDWRUDQVZHUV
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

-4PIVLTM[V]TT^IT]M[OZIKMN]TTa
!KEYDESIGNDECISIONTHEDEVELOPERSOF%,CAMEUPWITH
ISTOHANDLENULLVALUESWITHOUTTHROWINGEXCEPTIONS
7HY"ECAUSETHEYlGUREDhITSBETTERTOSHOWAPARTIAL
INCOMPLETEPAGETHANTOSHOWTHEUSERANERRORPAGEv
^IRR`
^IRR>EDU@`
^EDU>IRR@`
^IRREDU`
^IRR`
^IRR`
^IRR`
^IRR`

^IRR`
^ IRR`

^IRR IRR`
^ IRR`
^WUXHDQGIRR`
^WUXHRUIRR`
^QRWIRR`
!SSUMETHATTHEREISNOTANATTRIBUTENAMEDhFOOvBUT
THERE)3ANATTRIBUTENAMEDhBARvBUTTHAThBARvDOES
NOTHAVEAPROPERTYORKEYNAMEDhFOOv
(/ :KDWSULQWV

,Q¿QLW\

([FHSWLRQLVWKURZQ
IDOVH
IDOVH
WUXH
WUXH
IDOVH
WUXH
WUXH
Nothing prints out for these
expressions. If you say ÒThe
value is: ${foo}.Ó YouÕll just see
ÒThe value is.Ó
In arithmetic
expressions, EL
treats the unknown
variable as ÒzeroÓ.
In logical expressions,
EL treats the unknown

variable as ÒfalseÓ.
(/LVQXOOIULHQGO\,W
KDQGOHVXQNQRZQRUQXOO
YDOXHVVRWKDWWKHSDJHVWLOO
GLVSOD\VHYHQLILWFDQ·W
ILQGDQDWWULEXWHSURSHUW\
NH\ZLWKWKHQDPHLQWKH
H[SUHVVLRQ
,QDULWKPHWLF(/WUHDWVWKH
QXOOYDOXHDV´]HURµ
,QORJLFDOH[SUHVVLRQV(/
WUHDWVWKHQXOOYDOXHDV
´IDOVHµ
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
:MDD=LHGAFLK
 (/H[SUHVVLRQVDUHDOZD\VZLWKLQFXUO\EUDFHV
DQGSUHIL[HGZLWKDGROODUVLJQ^H[SUHVVLRQ`
 7KHILUVWQDPHGYDULDEOHLQWKHH[SUHVVLRQLV
HLWKHUDQLPSOLFLWREMHFWRUDQDWWULEXWHLQRQHRI
WKHIRXUVFRSHVSDJHUHTXHVWVHVVLRQRUDS
SOLFDWLRQ
 7KHGRWRSHUDWRUOHWV\RXDFFHVVYDOXHVE\XVLQJ

D0DSNH\RUDEHDQSURSHUW\QDPHIRUH[DPSOH
^IRREDU`JLYHV\RXWKHYDOXHRIEDUZKHUHEDU
LVWKHQDPHRI0DSNH\LQWRWKH0DSIRRRUEDU
LVWKHSURSHUW\RIEHDQIRR:KDWHYHUFRPHVWR
WKHULJKWRIWKHGRWRSHUDWRUPXVWIROORZQRUPDO
-DYDQDPLQJUXOHVIRULGHQWLILHUV,QRWKHUZRUGV
PXVWVWDUWZLWKDOHWWHUXQGHUVFRUHRUGROODU
VLJQFDQLQFOXGHQXPEHUVDIWHUWKHILUVWFKDUDF
WHUEXWQRWKLQJHOVHHWF
 <RXFDQ1(9(5SXWDQ\WKLQJWRWKHULJKWRIWKH
GRWWKDWZRXOGQ·WEHOHJDODVD-DYDLGHQWLILHU)RU
H[DPSOH\RXFDQ·WVD\^IRR`
 7KH>@RSHUDWRULVPRUHSRZHUIXOWKDQWKHGRW
EHFDXVHLWOHWV\RXDFFHVVDUUD\VDQG/LVWVDQG
\RXFDQSXWRWKHUH[SUHVVLRQVLQFOXGLQJQDPHG
YDULDEOHVZLWKLQWKHEUDFNHWVDQG\RXFDQQHVW
WKHPWRDQ\OHYHO\RXFDQVWDQG
 )RUH[DPSOHLIPXVLF/LVWLVDQ$UUD\/LVW\RX
FDQDFFHVVWKHILUVWYDOXHLQWKHOLVWE\VD\LQJ
^PXVLF/LVW>@`25^PXVLF/LVW>´µ@`(/GRHVQ·W
FDUHLI\RXSXWTXRWHVDURXQGWKHOLVWLQGH[
 ,IZKDW·VLQVLGHWKHEUDFNHWVLVQRWLQTXRWHVWKH
&RQWDLQHUHYDOXDWHVLW,ILWLVLQTXRWHVDQGLW·V
QRWDQLQGH[LQWRDQDUUD\RU/LVWWKH&RQWDLQHU
VHHVLWDVWKHOLWHUDOQDPHRIDSURSHUW\RUNH\
 $OOEXWRQHRIWKH(/LPSOLFLWREMHFWVDUH0DSV
)URPWKH0DSLPSOLFLWREMHFWV\RXFDQJHW
DWWULEXWHVIURPDQ\RIWKHIRXUVFRSHVUHTXHVW
SDUDPHWHUYDOXHVKHDGHUYDOXHVFRRNLHYDOXHV
DQGFRQWH[WLQLWSDUDPHWHUV7KHQRQPDSLP

SOLFLWREMHFWLVSDJH&RQWH[WZKLFKLVDUHIHUHQFH
WRWKH3DJH&RQWH[WREMHFW
 'RQ·WFRQIXVHWKHLPSOLFLW(/VFRSHREMHFWV
0DSVRIWKHDWWULEXWHVZLWKWKHREMHFWVWRZKLFK
WKHDWWULEXWHVDUHERXQG,QRWKHUZRUGVGRQ·W
FRQIXVHWKHUHTXHVW6FRSHLPSOLFLWREMHFWZLWK
WKHDFWXDO-63LPSOLFLWUHTXHVWREMHFW7KH
RQO\ZD\WRDFFHVVWKHUHTXHVWREMHFWLVE\
JRLQJWKURXJKWKHSDJH&RQWH[WLPSOLFLWREMHFW
$OWKRXJKVRPHRIZKDW\RXPLJKWZDQWIURPWKH
UHTXHVWLVDOUHDG\DYDLODEOHWKURXJKRWKHU(/
LPSOLFLWREMHFWVLQFOXGLQJSDUDPSDUDP9DOXHV
KHDGHUKHDGHU9DOXHVDQGFRRNLH
 (/IXQFWLRQVDOORZ\RXWRFDOODSXEOLFVWDWLF
PHWKRGLQDSODLQROG-DYDFODVV7KHIXQFWLRQ
QDPHGRHVQRWKDYHWRPDWFKWKHDFWXDOPHWKRG
QDPH)RUH[DPSOH^IRRUROO,W`GRHVQRWPHDQ
WKDWWKHUHPXVWEHDPHWKRGQDPHGUROO,WLQD
FODVVWKDWKDVDIXQFWLRQ
 7KHIXQFWLRQQDPHHJUROO,WLVPDSSHGWR
DUHDOVWDWLFPHWKRGXVLQJD7/'7DJ/LEUDU\
'HVFULSWRUILOH'HFODUHDIXQFWLRQXVLQJWKH
IXQFWLRQ!HOHPHQWLQFOXGLQJWKHQDPH!RI
WKHIXQFWLRQUROO,WWKHIXOO\TXDOLILHGIXQF
WLRQFODVV!DQGWKHIXQFWLRQVLJQDWXUH!ZKLFK
LQFOXGHVWKHUHWXUQW\SHDVZHOODVWKHPHWKRG
QDPHDQGDUJXPHQWOLVW
 7RXVHDIXQFWLRQLQD-63\RXPXVWGHFODUHWKH
QDPHVSDFHXVLQJDWDJOLEGLUHFWLYH3XWDSUHIL[
DWWULEXWHLQWKHWDJOLEGLUHFWLYHWRWHOOWKH&RQ

WDLQHUWKH7/'LQZKLFKWKHIXQFWLRQ\RX·UHFDOOLQJ
FDQEHIRXQG([DPSOH
#WDJOLESUH¿[ ´PLQH´
XUL ´:(%,1)IRRWOG´!
2;8-`XZM[[QWV4IVO]IOM-4ZM^QM_
(/UHYLHZ
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

+H\KDYH\RXJX\V
QRWLFHGWKDWWKH\KDYHQ·W
HYHQ
PHQWLRQHG
OLNHWKH
21(WKLQJWKDW·VPRVW
LPSRUWDQWWRDZHEVLWH
GHVLJQHU"
<HDK,KDYHQ·WKHDUG
21(WKLQJDERXWXVLQJ
OD\RXWWHPSODWHV7KH
ODVW

WKLQJ,ZDQWWRGRLVSXWWKH

VDPHQDYLJDWLRQEDUFRGHLQWR
DOORIP\-63VZKDW
LILW
FKDQJHV
"
+PPPP,DOZD\V
WKRXJKWWKHLPSRUWDQW
WKLQJZDVWRPDNHVXUH
\RXGRQ·WHQGXSRQ
ZHESDJHVWKDWVXFNFRP
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
:M][IJTM\MUXTI\MXQMKM[
9OUHAVEHEADERSONEVERYPAGEONYOURWEB
SITE4HEYREALWAYSTHESAME9OUHAVETHE
SAMEFOOTERONEVERYPAGEASWELL(OWSTUPID
WOULDITBETOCODEINTHESAMEHEADERAND
FOOTERTAGSINTOEVERY*30INYOURWEBAPP
)FYOURETHINKINGLIKEA*AVAPROGRAMMER
WHICHOFCOURSEYOUAREYOUKNOWTHAT
DOINGTHATISABOUTASUN//ASITGETS
4HETHOUGHTOFALLTHATDUPLICATECODE
PROBABLYMAKESYOUFEELALITTLESICK7HAT

HAPPENSWHENTHESITEDESIGNERMAKESOHA
TINYLITTLECHANGETOTHEHEADERORFOOTER
9OUHAVETOPROPAGATETHECHANGEEVERYWHERE
2ELAX4HERESAMECHANISMFORHANDLINGTHIS
INA*30ITSCALLEDINCLUDE9OUWRITEYOUR*30
INTHEUSUALWAYEXCEPTTHATINSTEADOFPUTTING
THEREUSABLESTUFFEXPLICITLYINTOTHE*30YOURE
AUTHORINGYOUINSTEADTELLTHE#ONTAINERTO
INCLUDETHEOTHERlLEINTOTHEEXISTINGPAGEAT
THELOCATIONYOUSELECT)TSKINDOFLIKESAYING
HTMLBODY
INSERTTHEHEADERlLEHERE
7ELCOMETOOURSITE
BLAHBLAHBLAHMORESTUFFHERE
INSERTTHEFOOTERlLEHERE
BODYHTML
)NTHISSECTIONWELLLOOKATTWODIFFERENT
INCLUDEMECHANISMSTHEINCLUDEDIRECTIVEAND
THEJSPINCLUDESTANDARDACTION
2I&2856(ZH·OOWDON
DERXWOD\RXWWHPSODWHV,I
$1<21(NQRZVDERXWUHXVDEOH
FRPSRQHQWVLW·VD-DYD
SURJUDPPHU
OD\RXWWHPSODWHV
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior

written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.
VFULSWOHVV-63V
\RXDUHKHUH

<PMQVKT]LMLQZMK\Q^M
$-63IURPWKHZHEDSS´&RQWDFWMVSµ
KWPO!ERG\!
#LQFOXGH¿OH ´+HDGHUMVS´!
EU!
HP!:HFDQKHOSHP!EU!EU!
&RQWDFWXVDW^LQLW3DUDPPDLQ(PDLO`
ERG\!KWPO!
:HNQRZKRZWRPDNH62$3VXFNOHVV
KWWSORFDOKRVWWHVWV&RQWDFWMVS
:HFDQKHOS
&RQWDFWXVDWOLNHZHFDUH#ZLFNHGO\VPDUWFRP
This says ÒInsert the complete
Header.jsp Þle into this point in
THIS page, then keep going with
the rest of this JSP Ó
KWPO!ERG\!
LPJVUF ´LPDJHV:HE6HUYLFHVMSJ´!EU!
HP!VWURQJ!:HNQRZKRZWRPDNH62$3VXFNOHVVVWURQJ!HP!EU!
ERG\!KWPO!
:HNQRZKRZWRPDNH62$3VXFNOHVV
KWWSORFDOKRVWWHVWV+HDGHUMVS
6WDQGDUGKHDGHUÀOH´+HDGHUMVSµ
This is the same as it was on the
previous page itÕs what we want

to appear in every JSP.
WKHLQFOXGHGLUHFWLYH
4HEINCLUDEDIRECTIVETELLSTHE#ONTAINERONETHINGCOPYEVERYTHINGINTHE
INCLUDEDlLEANDPASTEITINTOTHISlLERIGHTHERE
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

FKDSWHU
<PM$R[X"QVKT]LM&[\IVLIZLIK\QWV
KWPO!ERG\!
LPJVUF ´LPDJHV:HE6HUYLFHVMSJ´!EU!
HP!VWURQJ!:HNQRZKRZWRPDNH62$3VXFNOHVVVWURQJ!HP!EU!
ERG\!KWPO!
:HNQRZKRZWRPDNH62$3VXFNOHVV
KWWSORFDOKRVWWHVWV+HDGHUMVS
6WDQGDUGKHDGHUÀOH´+HDGHUMVSµ
$-63IURPWKHZHEDSS´&RQWDFWMVSµ
This says ÒInsert the response of
Header.jsp Þle into this point in
THIS page, then keep going with
the rest of this JSP Ó
KWPO!ERG\!
MVSLQFOXGHSDJH ´+HDGHUMVS´!
EU!
HP!:HFDQKHOSHP!EU!EU!

&RQWDFWXVDW^LQLW3DUDPPDLQ(PDLO`
ERG\!KWPO!
:HNQRZKRZWRPDNH62$3VXFNOHVV
KWWSORFDOKRVWWHVWV&RQWDFWMVS
:HFDQKHOS
&RQWDFWXVDWOLNHZHFDUH#ZLFNHGO\VPDUWFRP
This is what we want
on EVERY page.
4HEJSPINCLUDESTANDARDACTIONAPPEARSTODOTHESAME
THINGASTHEINCLUDESTANDARDACTION
MVSLQFOXGH!VWDQGDUGDFWLRQ
Chapter 8. Script-free pages
Chapter 8. Script-free pages
Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID:
Print Publication Date: 8/1/2004 User number: 747221 Copyright 2007, Safari Books Online, LLC.
This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior
written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that
otherwise violates the Safari Terms of Service is strictly prohibited.

×