Head First Servlets and JSP

Chapter 1. Why use Servlets & JSPs? LQWURDQGRYHUYLHZ :K\XVH6HUYOHWV -63V" +DK,NQRZ &*,0\ZHEVLWHZLOO ...

0 downloads 156 Views 19MB Size
Chapter 1. Why use Servlets & JSPs?

LQWURDQGRYHUYLHZ

:K\XVH6HUYOHWV -63V" +DK,NQRZ &*,0\ZHEVLWHZLOO UXOHWKHZRUOG


:HEDSSOLFDWLRQVDUHKRW6XUH*8,DSSOLFDWLRQVPLJKWXVHH[RWLF 6ZLQJZLGJHWVEXWKRZPDQ\*8,DSSVGR\RXNQRZWKDWDUHXVHGE\PLOOLRQV RIXVHUVZRUOGZLGH"$VDZHEDSSGHYHORSHU\RXFDQIUHH\RXUVHOIIURPWKH JULSRIGHSOR\PHQWSUREOHPVDOOVWDQGDORQHDSSVKDYHDQGGHOLYHU\RXUDSSWR DQ\RQHZLWKDEURZVHU%XWWREXLOGDWUXO\SRZHUIXOZHEDSS\RXQHHG-DYD
WKLVLVDQHZFKDSWHU



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

RI¿FLDO6XQH[DPREMHFWLYHV

6HUYOHWV -63RYHUYLHZ

&RYHUDJH1RWHV

)RUHDFKRIWKH+7730HWKRGV VXFKDV*(7

4HEOBJECTIVESINTHISSECTIONARECOVERED COMPLETELYINANOTHERCHAPTER SOTHINKOF THISCHAPTERASAlRST LOOKFOUNDATIONFOR WHATCOMESLATER)NOTHERWORDS DONTWORRY ABOUTlNISHINGTHISCHAPTERKNOWINGAND REMEMBERING ANYTHINGSPECIlCFROMTHESE OBJECTIVESJUSTUSEITFORBACKGROUND)FYOU ALREADYKNOWTHESETOPICS YOUCANJUSTSKIM THISCHAPTERANDJUMPTOCHAPTER 9OUWONTHAVEANYMOCKEXAMQUESTIONSON THESETOPICSUNTILYOUGETTOTHEMORESPECIlC CHAPTERWHERETHOSETOPICSARECOVERED

3267+($'DQGVRRQ 

 'HVFULEHEHQH¿WVRIWKH+7730HWKRG  'HVFULEHIXQFWLRQDOLW\RIWKH+7730HWKRG  /LVWWULJJHUVWKDWPLJKWFDXVHD&OLHQW XVXDOO\D:HEEURZVHU WRXVHWKHPHWKRG $OVRSDUWRI2EMHFWLYHEXWQRWFRYHUHG LQWKLVFKDSWHU  ,GHQWLI\WKH+WWS6HUYOHWPHWKRGWKDW FRUUHVSRQGVWRWKH+7730HWKRG



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

-^MZaJWLa_IV\[I_MJ[Q\M 9OUHAVEAKILLERIDEAFORAWEBSITE4ODESTROYTHECOMPETITION YOU NEEDAmEXIBLE SCALABLEARCHITECTURE9OUNEEDSERVLETSAND*30S "EFOREWESTARTBUILDING LETSTAKEALOOKATTHE7ORLD7IDE7EB FROMABOUTKFEET7HATWECAREMOSTABOUTINTHISCHAPTERARE HOWWEBCLIENTSANDWEBSERVERSTALKTOONEANOTHER 4HESENEXTSEVERALPAGESAREPROBABLYALLREVIEWFORYOU ESPECIALLYIF YOUREALREADYAWEBAPPLICATIONDEVELOPER BUTITLLGIVEUSACHANCE TOEXPOSESOMEOFTHETERMINOLOGYWEUSETHROUGHOUTTHEBOOK

The web consists of gazillions ofilla or clients (using browsers like Moz server Safari) and servers (using web through apps like Apache) connected Our goal is wires and wireless networks. clients that ion icat appl to build a web to around the globe can access. And become obscenely rich.

:HE EURZVHU :HE EURZVHU

&OLHQW 6HUYHU

&OLHQW

:HE EURZVHU :HE EURZVHU

&OLHQW

&OLHQW

6HUYHU

:HE EURZVHU

&OLHQW

6HUYHU

the earth

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

ZHEVHUYHU

?PI\LWM[aW]Z_MJ[MZ ^MZLW' $ZHEVHUYHUWDNHVDFOLHQWUHTXHVWDQGJLYHV VRPHWKLQJEDFNWRWKHFOLHQW !WEBBROWSERLETSAUSERREQUESTARESOURCE4HEWEBSERVERGETSTHE REQUEST lNDSTHERESOURCE ANDRETURNSSOMETHINGTOTHEUSER 3OMETIMESTHATRESOURCEISAN(4-,PAGE3OMETIMESITSAPICTURE/R ASOUNDlLE/REVENA0$&DOCUMENT$OESNTMATTERˆTHECLIENTASKS FORTHETHINGRESOURCE ANDTHESERVERSENDSITBACK 5NLESSTHETHINGISNTTHERE/RATLEASTITSNOTWHERETHESERVERIS EXPECTINGITTOBE9OUREOFCOURSEQUITEFAMILIARWITHTHEh.OT &OUNDvERRORˆTHERESPONSEYOUGETWHENTHESERVERCANTlNDWHATIT THINKSYOUASKEDFOR 7HENWESAYhSERVERv WEMEANEITHERTHEPHYSICALMACHINEHARDWARE ORTHEWEBSERVERAPPLICATIONSOFTWARE 4HROUGHOUTTHEBOOK IF THEDIFFERENCEBETWEENSERVERHARDWAREANDSOFTWAREMATTERS WELL EXPLICITLYSAYWHICHONEHARDWAREORSOFTWARE WERETALKINGABOUT

The clientÕs request contains the name and address (the URL), of the thing the client is looking for. P\UHTXHVW LV[\]

UHTXHVW KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO! 

:HE EURZVHU

ERG\! KWPO!

UHVSRQVH KWPO! KHDG! KHDG!

&OLHQW

ERG\!  ERG\! KWPO!

ually has The server us tentÓ that on Òc of lots clients. it can send tot can be en nt That co JPEGs, and web pages, ces. other resour

6HUYHU

The serverÕs respo actual document thnse contains the at the client requested (or an er request could not ror code if the be processed). 

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

?PI\LWM[I_MJKTQMV\LW' $ZHEFOLHQWOHWVWKHXVHUUHTXHVWVRPHWKLQJRQWKH VHUYHUDQGVKRZVWKHXVHUWKHUHVXOWRIWKHUHTXHVW 7HENWETALKABOUTCLIENTS THOUGH WEUSUALLYMEANBOTHOREITHER THEHUMANUSERANDTHEBROWSERAPPLICATION 4HEBROWSERISTHEPIECEOFSOFTWARELIKE.ETSCAPEOR-OZILLA THAT KNOWSHOWTOCOMMUNICATEWITHTHESERVER4HEBROWSERSOTHERBIGJOB ISINTERPRETINGTHE(4-,CODEANDRENDERINGTHEWEBPAGEFORTHEUSER 3OFROMNOWON WHENWEUSETHETERMCLIENT WEUSUALLYWONTCARE WHETHERWERETALKINGABOUTTHEHUMANUSERORTHEBROWSERAPP)N OTHERWORDS THECLIENTISTHEBROWSERAPPDOINGWHATTHEUSERASKEDITTODO

8VHUFOLFNVDOLQN LQWKHEURZVHU

%URZVHUIRUPDWVWKH UHTXHVWDQGVHQGVLW WRWKHVHUYHU

6HUYHUÀQGVWKH UHTXHVWHGSDJH

KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO! 

P\UHTXHVW LV[\]

 FOLFN

ERG\! KWPO!

8VHU

6HUYHU

%URZVHU

%URZVHUJHWVWKH+70/ DQGUHQGHUVLWLQWRD GLVSOD\IRUWKHXVHU KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO! 

KWPO! KHDG! KHDG! ERG\!  ERG\! KWPO!

8VHU

%URZVHU

6HUYHUIRUPDWVWKH UHVSRQVHDQGVHQGVLW WRWKHFOLHQW EURZVHU 

ERG\! KWPO!

6HUYHU

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+70/DQG+773

+TQMV\[IVL[MZ ^MZ[ SVW_0<54IVL0<<8 +70/ 7HENASERVERANSWERSAREQUEST THESERVERUSUALLYSENDSSOMETYPE OFCONTENTTOTHEBROWSERSOTHATTHE BROWSERCANDISPLAYIT3ERVERSOFTEN SENDTHEBROWSERASETOFINSTRUCTIONS WRITTENIN(4-, THE(YPER4EXT -ARKUP,ANGUAGE4HE(4-, TELLSTHEBROWSERHOWTOPRESENTTHE CONTENTTOTHEUSER !LLWEBBROWSERSKNOWWHATTODO WITH(4-, ALTHOUGHSOMETIMESAN OLDERBROWSERMIGHTNOTUNDERSTAND PARTSOFAPAGETHATWASWRITTENUSING NEWERVERSIONSOF(4-,

%XWKRZGRWKH FOLHQWVDQGVHUYHUV WDONWRHDFKRWKHU"

$ZLVHTXHVWLRQ,QRUGHU WRFRPPXQLFDWHWKH\PXVW VKDUHDFRPPRQODQJXDJH2Q WKHZHEFOLHQWVDQGVHUYHUV PXVWVSHDN+773DQGEURZVHUV PXVWNQRZ+70/

+70/WHOOVWKHEURZVHU KRZWRGLVSOD\WKHFRQWHQW WRWKHXVHU

+773 -OSTOFTHECONVERSATIONSHELDONTHE WEBBETWEENCLIENTSANDSERVERSARE HELDUSINGTHE(440PROTOCOL WHICH ALLOWSFORSIMPLEREQUESTANDRESPONSE CONVERSATIONS4HECLIENTSENDSAN (440REQUEST ANDTHESERVERANSWERS WITHAN(440RESPONSE"OTTOMLINE IFYOUREAWEBSERVER YOUSPEAK(440 7HENAWEBSERVERSENDSAN(4-, PAGETOTHECLIENT ITSENDSITUSING (4409OULLSEETHEDETAILSONHOW ALLTHISWORKSINTHENEXTFEWPAGES

+773LVWKHSURWRFRO FOLHQWVDQGVHUYHUVXVHRQ WKHZHEWRFRPPXQLFDWH 7KHVHUYHUXVHV+773WR VHQG+70/WRWKHFOLHQW

&9)(440STANDSFOR(YPER4EXT 4RANSPORT0ROTOCOL



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

<_WUQV]\M0<54O]QLM 7HENYOUDEVELOPAWEBPAGE YOUUSE(4-,TODESCRIBEWHATTHE PAGESHOULDLOOKLIKEANDHOWITSHOULDBEHAVE (4-,HASDOZENSOFTAGSANDHUNDREDSOFTAGATTRIBUTES4HEGOALOF (4-,ISTOTAKEATEXTDOCUMENTANDADDTAGSTHATTELLTHEBROWSER HOWTOFORMATTHETEXT"ELOWARETHETAGSWEUSEINTHENEXTSEVERAL CHAPTERS)FYOUNEEDAMORECOMPLETEUNDERSTANDINGOF(4-, WE RECOMMENDTHEBOOK(4-,8(4-,4HE$ElNITIVE'UIDE

7DJ

'HVFULSWLRQ

!

WHEREYOUPUTYOURCOMMENTS

D!

ANCHOR USUALLYFORPUTTINGINAHYPERLINK

DOLJQ!

ALIGNTHECONTENTSLEFT RIGHT CENTERED ORJUSTIlED

ERG\!

DElNETHEBOUNDARIESOFTHEDOCUMENTSBODY

EU!

ALINEBREAK

FHQWHU!

CENTERTHECONTENTS

IRUP!

DElNEAFORMWHICHUSUALLYPROVIDESINPUTlELDS

K!

THElRSTLEVELHEADING

KHDG!

DElNETHEBOUNDARIESOFTHEDOCUMENTSHEADER

KWPO!

DElNETHEBOUNDARIESOFTHE(4-,DOCUMENT

LQSXWW\SH!

DElNESANINPUTWIDGETTOAFORM

S!

ANEWPARAGRAPH

WLWOH!

THE(4-,DOCUMENTSTITLE

and tags (Technically, the
HTM L 4.0, but weÕre have been deprecated in examples because itÕs our using them in some of alternative, and youÕre simpler to read than the anyway.) not here to learn HTML

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

ZULWLQJ+70/

?PI\aW]_ZQ\M \PM0<54 )MAGINEYOURECREATINGALOGINPAGE4HESIMPLE(4-, MIGHTLOOKSOMETHINGLIKETHIS

An HTML

KWPO!

comment

6RPHVDPSOH+70/! KHDG! $

WLWOH!$/RJLQ3DJHWLWOH! KHDG! ERG\!

%

KDOLJQ ´FHQWHU´!6N\OHU¶V/RJLQ3DJHK! SDOLJQ ´ULJKW´!

&

LPJVUF ´6.
'

to send The servletst to. ue the req

g is nested The tagr aph ra pa a e insid place to r de or tag in y where hl ug ro e ag the im ember, em (R . it we want precated, but de is cause itÕs weÕre using it be .) ad re simple to

1DPHLQSXWW\SH ´WH[W´QDPH ´SDUDP´!EU! 3DVVZRUGLQSXWW\SH ´WH[W´QDPH ´SDUDP´!EU!EU!EU! FHQWHU! LQSXWW\SH ´68%0,7´!

(

FHQWHU! IRUP! ERG\! KWPO!

itÓ button The Òsubmrm. fo in the

WeÕll talk more about forms later, but brießy, the browser can collect the userÕs input and return it to the server.

The
tags cause line breaks.




FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

?PI\\PMJZW_[MZKZMI\M[ 4HEBROWSERREADSTHROUGHTHE(4-,CODE CREATESTHE WEBPAGE ANDRENDERSITTOTHEUSERSDISPLAY $

KWWSZZZZLFNHGO\VPDUWFRPVN\ORJLQKWPO

%

&

'

(

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+773SURWRFRO

?PI\Q[\PM0<<8XZW\WKWT' (440RUNSONTOPOF4#0)0)FYOURENOTFAMILIARWITH THOSENETWORKINGPROTOCOLS HERESTHECRASHCOURSE4#0 ISRESPONSIBLEFORMAKINGSURETHATAlLESENTFROMONE NETWORKNODETOANOTHERENDSUPASACOMPLETElLEATTHE .H\HOHPHQ WVRIWKHU DESTINATION EVENTHOUGHTHElLEISSPLITINTOCHUNKSWHEN HTXHVW VWUHDP ITSSENT)0ISTHEUNDERLYINGPROTOCOLTHATMOVESROUTES +773PHW THECHUNKSPACKETS FROMONEHOSTTOANOTHERONTHEIR KRG WKHDF EHSHUIRUP WLRQWR WAYTOTHEDESTINATION(440 THEN ISANOTHERNETWORK HG PROTOCOLTHATHAS7EB SPECIlCFEATURES BUTITDEPENDS 7KHSDJHWR DFFHVV D ON4#0)0TOGETTHECOMPLETEREQUESTANDRESPONSE 85/ )RUPSDUDP HWHUV OLNH FROMONEPLACETOANOTHER4HESTRUCTUREOFAN(440 DUJXPHQWV  WR DPHWKRG CONVERSATIONISASIMPLE2EQUEST2ESPONSESEQUENCEA BROWSERREQUESTS ANDASERVERRESPONDS



 

+773UHTXHVW :HE EURZVHU

+773UHVSRQVH

&OLHQW

.H\HOHPHQWVRIWKH UHVSRQVHVWUHDP

6HUYHU

ZKHWKHU  $VWDWXVFRGH IRUFFH VVIXO

WKHUHTXHVWZDVVX UH &RQWHQWW\SH WH[WSLFWX +70/HWF O 7KHFRQWHQW WKHDFWXD +70/LPDJHHWF






FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

0<54Q[XIZ\WN\PM0<<8ZM[XWV[M !N(440RESPONSECANCONTAIN(4-,(440ADDSHEADER INFORMATIONTOTHETOPOFWHATEVERCONTENTISINTHERESPONSEIN OTHERWORDS THETHINGCOMINGBACKFROMTHESERVER !N(4-, BROWSERUSESTHATHEADERINFOTOHELPPROCESSTHE(4-,PAGE4HINK OFTHE(4-,CONTENTASDATAPASTEDINSIDEAN(440RESPONSE

+773UHTXHVW :HE EURZVHU

+773UHVSRQVH

6HUYHU

&OLHQW

HTTP header

When the browser Þnds the opening tag it goes into HTML-rendering mode and displays the page to the user. When the browser gets to anher image tag, it generates anot HTTP request to go get thecase resource described. In this nd the browser will make a secopicture HTTP request to get the . referenced in the tag

+773KHDGHULQI  R KWPO! KHDG!  KHDG! ERG\! LPJVUF ! ERG\! KWPO!

HTTP body

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+773PHWKRGV

1N\PI\¼[\PMZM[XWV[M_PI\¼[QV\PMZMY]M[\' 4HElRSTTHINGYOULLlNDISAN(440METHODNAME4HESEARENT*AVA METHODS BUTTHEIDEAISSIMILAR4HEMETHODNAMETELLSTHESERVERTHE KINDOFREQUESTTHATSBEINGMADE ANDHOWTHERESTOFTHEMESSAGEWILLBE FORMATTED4HE(440PROTOCOLHASSEVERALMETHODS BUTTHEONESYOULL USEMOSTOFTENARE'%4AND0/34

*(7 8VHUFOLFNV DOLQNWRD QHZSDJH

%URZVHUVHQGVDQ+773*(7 WRWKHVHUYHUDVNLQJWKH VHUYHUWR*(7WKHSDJH

KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO! 

*(7

 

ERG\! KWPO!

8VHU

%URZVHU

6HUYHU

3267 %URZVHUVHQGVDQ+7733267 WRWKHVHUYHUJLYLQJWKH VHUYHUZKDWWKHXVHUW\SHG LQWRWKHIRUP

8VHUW\SHVLQD IRUPDQGKLWVWKH 6XEPLWEXWWRQ

KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO! 

3267

 

ERG\! KWPO!

8VHU



%URZVHU

6HUYHU

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

/-<Q[I[QUXTMZMY]M[\ 87;<KIV[MVL][MZLI\I '%4ISTHESIMPLEST(440METHOD ANDITS MAINJOBINLIFEISTOASKTHESERVERTOGETA RESOURCEANDSENDITBACK4HATRESOURCEMIGHT BEAN(4-,PAGE A*0%' A0$& ETC$OESNT MATTER4HEPOINTOF'%4ISTOGETSOMETHING BACKFROMTHESERVER 0/34ISAMOREPOWERFULREQUEST)TSLIKEA '%4PLUSPLUS7ITH0/34 YOUCANREQUEST SOMETHINGANDATTHESAMETIMESENDFORMDATA TOTHESERVERLATERINTHISCHAPTERWELLSEEWHAT THESERVERMIGHTDOWITHTHATDATA 

:DLWDPLQXWH, FRXOGVZHDU,·YHVHHQ *(7UHTXHVWVWKDWGLG VHQGVRPHSDUDPHWHU GDWDWRWKHVHUYHU

WKHUH DUH QR

'XPE 4XHVWLRQV

4

3OWHATABOUTTHEOTHER(440METHODS BESIDES'%4AND0/34

$

4HOSEARETHETWOBIGONESTHATEVERYBODY USES"UTTHEREAREAFEWRARELYUSEDMETHODSAND 3ERVLETSCANHANDLETHEM INCLUDING(%!$ 42!#% 054 $%,%4% /04)/.3 AND#/..%#4 9OUREALLYDONTNEEDTOKNOWMUCHABOUTTHESE OTHERSFORTHEEXAM ALTHOUGHYOUMIGHTSEE THEMAPPEARINAQUESTION4HE,IFEAND$EATH OFA3ERVLETCHAPTERCOVERSTHERESTOFTHE(440 METHODDETAILSYOULLNEED

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+773*(7

1\¼[\Z]MaW]KIV[MVLITQ\\TMLI\I_Q\P0<<8/-< "UTYOUMIGHTNOTWANTTO2EASONSYOUMIGHTUSE0/34INSTEADOF'%4INCLUDE  4HETOTALAMOUNTOFCHARACTERSINA'%4ISREALLYLIMITEDDEPENDING

ONTHESERVER )FTHEUSERTYPES SAY ALONGPASSAGEINTOAhSEARCHv INPUTBOX THE'%4MIGHTNOTWORK  4HEDATAYOUSENDWITHTHE'%4ISAPPENDEDTOTHE52,UPIN

THEBROWSERBAR SOWHATEVERYOUSENDISEXPOSED"ETTERNOTPUTA PASSWORDORSOMEOTHERSENSITIVEDATAASPARTOFA'%4  "ECAUSEOFNUMBERTWOABOVE THEUSERCANT

BOOKMARKAFORMSUBMISSIONIFYOUUSE0/34 INSTEADOF'%4$EPENDINGONYOURAPP YOUMAY ORMAYNOTWANTUSERSTOBEABLETOBOOKMARKTHE RESULTINGREQUESTFROMAFORMSUBMISSION

The original URL before the extra parameters.

The Ò?Ó separates the path and the paramete (the extra data). Th rs e amount of data you can send along with the GE T is limited, and itÕs exposed up her in the browser bar for everyone to see. Toge eth er, the entire Strin the URL that is sent with the request. g is

And if you need help with the exam, check out javaranch which also includes 100% unbiased recommendations to buy whatever books the authors wrote.



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

)VI\WUaWNIV0<<8/-<ZMY]M[\ 4HEPATHTOTHERESOURCE ANDANYPARAMETERSADDEDTO THE52,AREALLINCLUDEDONTHEhREQUESTLINEv

uest line. The Req

The HTTP Method.

(if meters st, parapended to L, e u q e r T R ap In a GEare any) are the request Us are The path ere part of Parameter µ. The prot h t resourc to the the Þrst with a Ò?Ó. mpersand Ò that the ocol version g web servee on the is requestinweb browser startinted with an a r. g. separa

*(7VHOHFWVHOHFW%HHU7DVWHMVS"FRORU GDUN WDVWH PDOW\+773 +RVWZZZZLFNHGO\VPDUWFRP 8VHU$JHQW0R]LOOD 0DFLQWRVK833&0DF26;0DFK2HQ86UY *HFNR

The Request headers.

1HWVFDSH $FFHSWWH[W[PODSSOLFDWLRQ[PODSSOLFDWLRQ[KWPO[POWH[WKWPOT WH[W SODLQT YLGHR[PQJLPDJHSQJLPDJHMSHJLPDJHJLIT   T  $FFHSW/DQJXDJHHQXVHQT  $FFHSW(QFRGLQJJ]LSGHӿDWH $FFHSW&KDUVHW,62XWIT  T  .HHS$OLYH &RQQHFWLRQNHHSDOLYH

+H\VHUYHU*(7PHWKHSDJH RQWKLVKRVWWKDW·VDWVHOHFW VHOHFW%HHU7DVWHKWPODQGRK\HDK KHUHDUHWKHSDUDPHWHUVIRU\RX FRORU GDUN WDVWH PDOW\$QG KXUU\LWXS

:HE EURZVHU

&OLHQW

6XUH,·OOJR*(7 WKDWSDJHDQGWKDQNVIRU WKHSDUDPHWHUV$QGMXVW)<, ´KXUU\LWXSµLVQRWSDUWRI WKH+773SURWRFRO

+773UHTXHVW *(7

 

6HUYHU \RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+7733267

)VI\WUaWNIV0<<887;<ZMY]M[\ (4400/34REQUESTSAREDESIGNEDTOBEUSEDBYTHEBROWSERTO MAKECOMPLEXREQUESTSONTHESERVER&ORINSTANCE IFAUSERHASJUST COMPLETEDALONGFORM THEAPPLICATIONMIGHTWANTALLOFTHEFORMS DATATOBEADDEDTOADATABASE4HEDATATOBESENTBACKTOTHESERVER ISKNOWNASTHEhMESSAGEBODYvORhPAYLOADvANDCANBEQUITELARGE

The HTTP Method.

ue The Req

st line.

version The protocolb we e th at th esting. browser is requ

The pat on the wh to the resource eb server .

3267DGYLVRUVHOHFW%HHU7DVWHGR+773 +RVWZZZZLFNHGO\VPDUWFRP 8VHU$JHQW0R]LOOD 0DFLQWRVK833&0DF26;0DFK2HQ86UY *HFNR

The Request headers.

1HWVFDSH $FFHSWWH[W[PODSSOLFDWLRQ[PODSSOLFDWLRQ[KWPO[POWH[WKWPOT WH[W SODLQT YLGHR[PQJLPDJHSQJLPDJHMSHJLPDJHJLIT   T  $FFHSW/DQJXDJHHQXVHQT  $FFHSW(QFRGLQJJ]LSGHӿDWH $FFHSW&KDUVHW,62XWIT  T  .HHS$OLYH &RQQHFWLRQNHHSDOLYH

, age body The messes called sometim yloadÓ. the Òpa

FRORU GDUN WDVWH PDOW\

This time, the paramete in the body, so they arers are down here nÕt limited the way they are if you use to put them in the Req a GET and have uest line.

+H\VHUYHUSOHDVH3267WKLV WRWKHUHVRXUFHDWDGYLVRU VHOHFW%HHU7DVWHGR'RQ·WIRUJHW WRORRNLQVLGHWKHERG\IRUWKH LPSRUWDQWGDWD,·PVHQGLQJ

:HE EURZVHU

&OLHQW



6XUH ,·OOÀQGWKDW UHVRXUFH LW·VDFWXDOO\D OLWWOHDSSOLFDWLRQ DQGZKHQ, GR,·OOJLYHLWWKHGDWDLQWKH UHTXHVWERG\\RXVHQW

+773UHTXHVW 3267

 

6HUYHU

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

)VI\WUaWNIV0<<8ZM[XWV[MIVL _PI\\PMPMKSQ[I¹515-\aXMº' .OWTHATWEVESEENTHEREQUESTSFROMTHEBROWSERTOTHESERVER LETS LOOKATWHATTHESERVERSENDSBACKINRESPONSE!N(440RESPONSE HASBOTHAHEADERANDABODY4HEHEADERINFOTELLSTHEBROWSER ABOUTTHEPROTOCOLBEINGUSED WHETHERTHEREQUESTWASSUCCESSFUL ANDWHATKINDOFCONTENTISINCLUDEDINTHEBODY4HEBODYCONTAINS THECONTENTSFOREXAMPLE (4-, FORTHEBROWSERTODISPLAY

e at status cod sion th col veris using. The HTTRPesponse. o t o r p A text version of The eb server for the the status code. the w +7732. 6HW&RRNLH-6(66,21,' $$%&'((()&)%)&$&3DWK WHVW(/ &RQWHQW7\SHWH[WKWPO

HTTP Response headers.

&RQWHQW/HQJWK 'DWH:HG1RY*07 6HUYHU$SDFKH&R\RWH &RQQHFWLRQFORVH

The body holds the HTML, or other content to be rendered...

:HE EURZVHU

KWPO!  KWPO!

+HUH·VP\UHVSRQVH WR\RXUUHTXHVW,WV W\SHLVWH[WKWPOEXWLQ\RXU UHTXHVW\RXVDLGWKDWZDV 2.6RXQOHVV\RXZHUH O\LQJWRPH

The content-type response head value is known as a MIME type. erÕs The MIME type tells the browser wha kind of data the browser is abou t receive so that the browser will t to know how to render it. Notice that the MIME type e relates to the values listed in valu HTTP requestÕs ÒAcceptÓ headthe (Go look at the Accept head er. from the previous pageÕs POST requerest. )

+773UHVSRQVH +7732.  

&OLHQW

KWPO! KHDG!  KHDG! ERG\! LPJVUF ! ERG\! KWPO!

6HUYHU

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

UHTXHVWDQGUHVSRQVH

)TT\PMXQMKM[ 7VWVMXIOM

The user URL. types a

KWWSZZZZLFNHGO\VPDUWFRPWHVW%HHUKWPO

The browser creates an HTTP GET request.

s ET i TP G server. T H The t to the sen

73 *(7WHVW%HHUKWPO+7 P UWFR VPD HGO\ +RVWZZZZLFN  0DFLQWRVK 8VHU$JHQW0R]LOOD 

The server the page... Þnds 6HUYHU

And generates an HTTP response.

*MMZP\UT

KWPO!ERG\! KDOLJQ FHQWHU!%HHU/RJLQ3DJHK! IRUP! 6HOHFWDEHHUW\SHRUEX\EHHU PDNLQJVXSSOLHV"S! LQSXWW\SH UDGLRQDPH VHOHFW YDOXH 6HOHFW!6HOHFWDEHHUEU! LQSXWW\SH UDGLRQDPH VHOHFW YDOXH %X\!%X\VXSSOLHVEU!EU! FHQWHU! LQSXWW\SH 68%0,7! FHQWHU! IRUP! ERG\!KWPO!

+7732. 6HW&RRNLH 

P HTT s sent . Thesponse bi rowser re the to :HE EURZVHU

The browse renders ther HTML.

&OLHQW



KWPO!ERG\! KDOLJQ FHQWHU!%HHU/RJLQ3DJHK! IRUP! 6HOHFWDEHHUW\SHRUEX\EHHU

Client look forward tos a successful transaction.beer

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

6KDUSHQ \RXU SHQFLO *(7RU3267" )RUHDFKGHVFULSWLRQFLUFOHHLWKHU3267RU*(7 GHSHQGLQJRQZKLFK+773PHWKRG\RX·GFKRRVH IRULPSOHPHQWLQJWKDWIXQFWLRQDOLW\,I\RXWKLQNLW FRXOGEHHLWKHUFLUFOHERWK%XWEHSUHSDUHGWR GHIHQG\RXUDQVZHUV

3267*(7

$XVHULVUHWXUQLQJDORJLQQDPHDQGSDVVZRUG

3267*(7

$XVHULVUHTXHVWLQJDQHZSDJHYLDDK\SHUOLQN

3267*(7

$FKDWURRPXVHULVVHQGLQJDZULWWHQUHVSRQVH

3267*(7

$XVHUKLWVWKHµQH[W¶EXWWRQWRVHHWKHQH[WSDJH

3267*(7

$XVHUKLWVWKHµORJRXW¶EXWWRQRQDVHFXUHEDQNLQJVLWH

3267*(7

$XVHUKLWVWKHµEDFN¶EXWWRQRQWKHEURZVHU

3267*(7

$XVHUVHQGVDQDPHDQGDGGUHVVIRUPWRWKHVHUYHU

3267*(7

$XVHUPDNHVDUDGLREXWWRQVHOHFWLRQ

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

DQDWRP\RID85/

=:4?PI\M^MZaW]LWLWV¼\XZWVW]VKMQ\¹-IZTº 7HENYOUGETTOTHE5SINTHEACRONYMDICTIONARYTHERESATRAFlCJAM52) 52, 52. WHEREDOESITEND&ORNOW WEREGOINGTOFOCUSONTHE52,S OR 5NIFORM2ESOURCE,OCATORS THATYOUKNOWANDLOVE%VERYRESOURCEONTHEWEB HASITSOWNUNIQUEADDRESS INTHE52,FORMAT

Protocol: Tells the server which communications protocol (in this case HTTP) will be used.

is the URL is part osef rver supports h T : t r Po nal. A single application is optio rts. A server you donÕt many po ed by a port. If RL, then U iÞ r t u iden a port in yo nd as luck specify is the default, ea default 0 h 8 t port ave it, thatÕs would h r web servers. port fo

Resource: The name of the content being requested. This could be an HTML page, a servlet, an image, PDF, music, video, or anything else the server feels like serving. If this optional part of the URL is left out, most web servers will look for index.html by default.

KWWSZZZZLFNHGO\VPDUWFRPEHHUDGYLFHVHOHFWEHHUKWPO

The path to the location, urce on the server, of the reso most of being requested. Becauseweb ran the on s ver ser ly ear the to used l stil is tax syn x Uni x, Uni hies arc hier ry cto dire the e describ on the web server.

Server: The unique name of the physical server youÕre looking for. This name maps to a unique IP address. IP addresses are numeric and take the form Òxxx. yyy.zzz.aaaÓ. You can specify an IP address here instead of a server name, but a server name is a lot easier to remember.

Path:

Not sho w

n:

Optional Que

ry String: Remember, GET request,if this was a (parameter the extra info to the end s)ofwould be appended with a questi this URL, starting on mark Ò?Ó, each paramet and wit separated by er (name/value pair) h an ampersand Ò Ó. 

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

:HOONQRZQ7&3SRUWQXPEHUV IRUFRPPRQVHUYHUDSSOLFDWLRQV

$7&3SRUWLVMXVWDQXPEHU $ELWQXPEHUWKDWLGHQWLILHVD VSHFLILFVRIWZDUHSURJUDPRQWKH VHUYHUKDUGZDUH 9OURINTERNETWEB(440 SERVERSOFTWARERUNSONPORT 4HATSASTANDARD)FYOUVEGOTA4ELNETSERVER ITS RUNNINGONPORT&400/0MAILSERVER 3-404HE4IMESERVERSITSAT4HINKOFPORTSAS UNIQUEIDENTIlERS!PORTREPRESENTSALOGICALCONNECTION TOAPARTICULARPIECEOFSOFTWARERUNNINGONTHESERVER HARDWARE4HATSIT9OUCANTSPINYOURHARDWAREBOX AROUNDANDlNDA4#0PORT&ORONETHING YOUHAVE OFTHEMONASERVERTO &ORANOTHER THEYDONOTREPRESENTAPLACETOPLUGINPHYSICALDEVICES 4HEYREJUSTNUMBERSREPRESENTINGASERVERAPPLICATION 7ITHOUTPORTNUMBERS THESERVERWOULDHAVENOWAYOF KNOWINGWHICHAPPLICATIONACLIENTWANTEDTOCONNECTTO !NDSINCEEACHAPPLICATIONMIGHTHAVEITSOWNUNIQUE PROTOCOL THINKOFTHETROUBLEYOUDHAVEWITHOUTTHESE IDENTIlERS7HATIFYOURWEBBROWSER FOREXAMPLE LANDED ATTHE0/0MAILSERVERINSTEADOFTHE(440SERVER4HE MAILSERVERWONTKNOWHOWTOPARSEAN(440REQUEST !NDEVENIFITDID THE0/0SERVERDOESNTKNOWN ANYTHINGABOUTSERVINGBACKAN(4-,PAGE )FYOUREWRITINGSERVICESSERVERPROGRAMS TORUNONA COMPANYNETWORK YOUSHOULDCHECKWITHTHESYS ADMINS TOlNDOUTWHICHPORTSAREALREADYTAKEN9OURSYS ADMINS MIGHTTELLYOU FOREXAMPLE THATYOUCANTUSEANYPORT NUMBERBELOW SAY 

FTP

Telnet

SMTP

21 23 25 6HUYHU

443 HTTPS

37

Time

110 80 POP3

HTTP

Using one server app per port, a server can have up to 65536 different server apps running (although itÕs possible to run more than one app on the same port if the apps use different protocols).

7KH7&3SRUWQXPEHUV IURPWRDUH UHVHUYHGIRUZHOONQRZQ VHUYLFHV LQFOXGLQJWKH %LJ2QHZHFDUHDERXW³ SRUW 'RQ·WXVHWKHVH SRUWVIRU\RXURZQ FXVWRPVHUYHUSURJUDPV

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

ZHEVLWHGLUHFWRU\

,QZMK\WZa[\Z]K\]ZMNWZI[QUXTM)XIKPM_MJ[Q\M 7ELLTALKMOREABOUT!PACHEAND4OMCATLATER BUTFORNOWLETSASSUMETHATOURSIMPLE WEBSITEISUSING!PACHETHEEXTREMELYPOPULAR OPENSOURCEWEBSERVERYOUREPROBABLY ALREADYUSING 7HATWOULDTHEDIRECTORYSTRUCTURELOOKLIKEFORAWEBSITECALLEDWWW WICKEDLYSMARTCOM HOSTINGTWOAPPLICATIONS ONEGIVINGSKIINGADVICE ANDTHEOTHER BEER RELATEDADVICE)MAGINETHATTHE!PACHEAPPLICATIONISRUNNINGONPORT 4HEHTMLPAGESAREEACHMARKEDWITHALETTER! " # $ FORTHEEXERCISEONTHE OPPOSITEPAGE $SDFKHBKRPH

Òindex.htmlÓ is the default page that will be returned to a user who keys Òwww.wickedlysmart.com/Ó into his browser.

An Apache server will assume that ÒhtdocsÓ is the directory that is the root for all of the serverÕs web applications.

KWGRFV

lder The root foerAdvice be he t r fo application. 

)

KWPO!    KWPO!

VNLLQJ$GYLFH

The two applications on this server.

EHHU$GYLFH

,QGH[KWPO



*

KWPO!    KWPO!



VHOHFW

,QGH[KWPO

+

KWPO!    KWPO!

,QGH[KWPO

Òindex.htmlÓ is default page the r the beerAdvice apfo plication.

The folders for the beerAdvice appÕs two actions. 

,

KWPO!    KWPO!

VHOHFW%HHUKWPO



FKHFNRXW

VHOHFW

An HTML page that gives the user some advice.

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

6KDUSHQ \RXU SHQFLO 0DSSLQJ85/VWRFRQWHQW /RRNDWWKHGLUHFWRU\VWUXFWXUHRQWKHRSSRVLWHSDJHWKHQZULWHLQ D85/WKDWZRXOGJHW\RXWRHDFKRIWKHIRXUKWPOSDJHVPDUNHG ZLWKWKH$%&DQG':HGLGWKHILUVWRQH $ IRU\RXEHFDXVH WKDW·VWKHNLQGRISHRSOHZHDUH)RUWKHH[HUFLVHDVVXPH$SDFKHLV UXQQLQJRQSRUW 7KHDQVZHUVDUHDWWKHERWWRPRIWKHQH[WSDJH

http://www.wickedlysmart.com ZLOOFDXVHWKHVHUYHUWRUHWXUQWR\RXWKHLQGH[KWPOSDJHDWORFDWLRQ" )

ZLOOFDXVHWKHVHUYHUWRUHWXUQWR\RXWKHLQGH[KWPOSDJHDWORFDWLRQ" *

ZLOOFDXVHWKHVHUYHUWRUHWXUQWR\RXWKHLQGH[KWPOSDJHDWORFDWLRQ" +

ZLOOFDXVHWKHVHUYHUWRUHWXUQWR\RXWKHVHOHFW%HHUKWPOSDJHDWORFDWLRQ , \RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

VWDWLFSDJHV

?MJ[MZ ^MZ[TW^M[MZ ^QVO [\I\QK_MJXIOM[ 7KLVLVZKDW,GR $VNPHIRUDSDJH,ÀQGLW DQG,KDQGLWEDFN:LWKDIHZ KHDGHUV%XWWKDW·VLW'R127 DVNPHWROLNHGRDQ\WKLQJ WRWKHSDJH

ZHEVHUYHU DSSOLFDWLRQ

KWPO! KHDG! KHDG! KWPO! ERG\! KHDG!  KHDG! ERG\! KWPO! KWPO! ERG\! KHDG! KHDG!ERG\! KWPO! KHDG! KWPO! ERG\! KHDG!  ERG\! ERG\! KWPO!  ERG\! KWPO!

$VWDWLFSDJHMXVWVLWVWKHUHLQD GLUHFWRU\7KHVHUYHUILQGVLWDQG KDQGVLWEDFNWRWKHFOLHQWDVLV (YHU\FOLHQWVHHVWKHVDPHWKLQJ These pages go straight to the client just re exactly as they we put on the server.

ZHEVHUYHU PDFKLQH %XWZKDWLI,ZDQWVD\WKH FXUUHQWWLPHWRVKRZXSRQ P\SDJH":KDWLI,ZDQWDSDJH WKDWKDVVRPHWKLQJG\QDPLF" &DQ·W,KDYHVRPHWKLQJOLNHD YDULDEOHLQVLGHP\+70/"

ck What if we want toinssti something variable ide the HTML page? KWPO! ERG\! 7KHFXUUHQWWLPHLV>LQVHUW7LPH2Q6HUYHU@ ERG\! KWPO!

%ZZZZLFNHGO\VPDUWFRPVNLLQJ$GYLFH &ZZZZLFNHGO\VPDUWFRPEHHU$GYLFH 'ZZZZLFNHGO\VPDUWFRPEHHU$GYLFHVHOHFWVHOHFW%HHUKWPO $QVZHUVIURPSUHYLRXVSDJH



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

*]\[WUM\QUM[aW]VMMLUWZM \PIVR][\\PM_MJ[MZ ^MZ ,·PDZHEVHUYHU DSSOLFDWLRQ,6(59(WKLQJV, GRQ·WGRFRPSXWDWLRQRQWKHWKLQJV ,VHUYH%XW,NQRZDUHDOQLFH SURJUDPRQWKHVDPHPDFKLQH WKDW&$1KHOS\RXRXW



:HEVHUYHU DSSOLFDWLRQ

,FDQKDQGOH WKDWGDWHWKLQJ IRU\RX

%XWKRZGRHVWKDWKHOS" 0\FOLHQWVDUHDOOZHEFOLHQWV 7KHEURZVHUNQRZVRQO\DERXWWKH ZHEVHUYHUVRLWZRQ·WEHDEOH WRFDOOWKDWRWKHUDSSOLFDWLRQ

 DQRWKHUDSSOLFDWLRQ RQWKHVHUYHU

ZHEVHUYHU PDFKLQH

7KDW·VQRWDSUREOHP ,·OOWDNHFDUHRIJHWWLQJWKH UHTXHVWWRWKHULJKWKHOSHUDSSWKHQ ,·OOWDNHWKDWDSS·VUHVSRQVHDQGVHQG LWEDFNWRWKHFOLHQW,QIDFWWKH FOLHQWQHYHUQHHGVWRNQRZWKDW VRPHRQHHOVHGLGVRPH RIWKHZRUN

 ZHEVHUYHU DSSOLFDWLRQ

DQRWKHUDSSOLFDWLRQ RQWKHVHUYHU \RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

ZKHQDZHEVHUYHULVQ¶WHQRXJK

<_W\PQVO[\PM_MJ[MZ ^MZITWVM_WV¼\LW )FYOUNEEDJUST IN TIMEPAGESDYNAMICALLY CREATEDPAGESTHATDONT EXISTBEFORETHEREQUEST ANDTHEABILITYTOWRITESAVEDATAONTHE SERVERWHICHMEANSWRITINGTOAlLEORDATABASE YOUCANTRELYON THEWEBSERVERALONE

'\QDPLFFRQWHQW 4HEWEBSERVERAPPLICATIONSERVESONLYSTATICPAGES BUTASEPARATE hHELPERvAPPLICATIONTHATTHEWEBSERVERCANCOMMUNICATEWITH CANBUILDNON STATIC JUST IN TIMEPAGES!DYNAMICPAGECOULD BEANYTHINGFROMACATALOGTOAWEBLOGOREVENJUSTAPAGETHAT RANDOMLYCHOOSESPICTURESTODISPLAY :KHQLQVWHDGRIWKLV


KWPO! ERG\! 7KHFXUUHQWWLPHLV DOZD\V30 RQWKHVHUYHU ERG\! KWPO!

KWPO! ERG\! 7KHFXUUHQWWLPHLV >LQVHUW7LPH2Q6HUYHU@ RQWKHVHUYHU ERG\! KWPO!

-XVWLQWLPHSDJHVGRQ·WH[LVW EHIRUHWKHUHTXHVWFRPHVLQ ,W·VOLNHPDNLQJDQ+70/ SDJHRXWRIWKLQDLU 7KHUHTXHVWFRPHVLQWKH KHOSHUDSS´ZULWHVµWKH +70/DQGWKHZHEVHUYHU JHWVLWEDFNWRWKHFOLHQW

6DYLQJGDWDRQWKHVHUYHU 7HENTHEUSERSUBMITSDATAINAFORM THEWEBSERVERSEESTHEFORM DATAANDTHINKS h3O,IKE)CAREv4OPROCESSTHATFORMDATA EITHER TOSAVEITTOAlLEORDATABASEOREVENJUSTTOUSEITTOGENERATETHE RESPONSEPAGE YOUNEEDANOTHERAPP7HENTHEWEBSERVERSEESA REQUESTFORAHELPERAPP THEWEBSERVERASSUMESTHATPARAMETERSARE MEANTFORTHATAPP3OTHEWEBSERVERHANDSOVERTHEPARAMETERS ANDGIVESTHEAPPAWAYTOGENERATEARESPONSETOTHECLIENT



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH


8VHUFOLFNVDOLQNWKDWKDVD85/ WRD&*,SURJUDPLQVWHDGRID VWDWLFSDJH

:HE EURZVHU

ZHEVHUYHU DSS

&OLHQW

ZHEVHUYHUPDFKLQH 

:HE EURZVHU

SDUDPV

ZHEVHUYHU DSS

&OLHQW

KHOSHUDSS

ZHEVHUYHUPDFKLQH 

:HE EURZVHU

KWPO! KHDG! KHDG!

ZHEVHUYHU DSS

&OLHQW

ERG\!  ERG\! KWPO!

KHOSHUDSS

ZHEVHUYHUPDFKLQH 

:HE EURZVHU

&OLHQW

+773KHDGHULQIR  KWPO! KHDG! KHDG! ERG\!  ERG\! KWPO!

ZHEVHUYHU DSS

:HEVHUYHUDSSOLFDWLRQ´VHHVµWKDW WKHUHTXHVWLVIRUDKHOSHUSURJUDP VRWKHZHEVHUYHUODXQFKHVDQG UXQVWKHSURJUDP7KHZHEVHUYHU DSSVHQGVDORQJDQ\SDUDPHWHUV IURPD*(7RU3267

7KHKHOSHUDSSFRQVWUXFWVWKH EUDQGQHZSDJH WKDWKDVWKH FXUUHQWGDWHLQVHUWHG DQGVHQGV WKH+70/EDFNWRWKHVHUYHU $VIDUDVWKHZHEVHUYHULV FRQFHUQHGWKH+70/IURPWKH KHOSHUDSSLVDVWDWLFSDJH 7KHKHOSHUDSSOLFDWLRQLVVKXW GRZQDQGWKHFOLHQWJHWVEDFNDQ +70/SDJHWKDWKDVWKHFXUUHQW GDWHDVSDUWRILWVQRZVWDWLF FRQWHQW

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

WZRVLGHV&*,DQG6HUYOHWV

;MZ ^TM\[IVL+/1JW\PXTIa\PMZWTMWNI PMTXMZIXXQV\PM_MJ[MZ ^MZ

&*,

#')ISBETTERTHAN3ERVLETS7EWRITE#')SCRIPTSIN 0ERLATOURSHOP BECAUSEEVERYBODYKNOWS0ERL )GUESSTHATSlNEIFYOUUSE*AVA SINCEYOUKNOWIT "UTITSCERTAINLYNOTWORTHITFORUSTOSWITCHTO*AVA 4HERESNOADVANTAGE

,ISTENINASOURTWOBLACK BELTSDISCUSSTHE PROSANDCONSOF#')AND3ERVLETS

6HUYOHWV

)DOUBTEVERYBODYKNOWS0ERL)LIKE0ERL BUTWEREALL *AVAPROGRAMMERSINOURSHOPSOWEPREFER*AVA 7ITHMUCHRESPECT MASTER THEREAREMANY ADVANTAGESTOUSING*AVAOVER0ERLFORTHETHINGSYOU WANTTODOWITH#')

9OUCHALLENGEME/NWHATGROUNDS

4HISISNODIFFERENTFROM*AVAWHATDOYOUCALL THE*6-)SNOTEVERYINSTANCEOFTHE*6-AHEAVY WEIGHTPROCESS

)SEEYOUHAVEFORGOTTENMUCH7EBSERVERSNOW AREABLETOKEEPASINGLE0ERLPROGRAMRUNNING BETWEENCLIENTREQUESTS3OTHEADDITIONALOVERHEAD ARGUMENTISWORTHLESS

7HATAREYOUTALKINGABOUT!NY#/2"! COMPLIANT THINGCANBEA*%%CLIENT

3TOPˆ)MLATEFORMY0ILATESCLASS"UTTHISISNOT OVER7ELLHAVETOlNISHITLATER 

0ERFORMANCE FORONETHING7ITH0ERL THESERVERHAS TOLAUNCHAHEAVY WEIGHTPROCESSFOREACHANDEVERY REQUESTFORTHATRESOURCE !H YES BUTYOUSEE3ERVLETSSTAYLOADEDANDCLIENT REQUESTSFORA3ERVLETRESOURCEAREHANDLEDAS SEPARATETHREADSOFASINGLERUNNING3ERVLET4HERES NOOVERHEADOFSTARTINGTHE*6- LOADINGTHECLASS ANDALLTHAT

)HAVENOTFORGOTTEN MASTER"UTITISNOTALLWEB SERVERSTHATCANDOTHAT9OUARETALKINGABOUTA SPECIALCASEWHICHDOESNOTAPPLYTOALL0ERL#') PROGRAMS"UT3ERVLETSWILLALWAYSBEMOREEFlCIENT INTHATWAY!NDLETSNOTFORGETTHATA3ERVLETCANBE A*%%CLIENT WHILEA0ERL#')PROGRAMCANNOT )DONOTMEANACLIENTTOA*%%PROGRAM )MEANA CLIENTTHATIS*%%!3ERVLETRUNNINGINA*%%WEB CONTAINERCANPARTICIPATEINSECURITYANDTRANSACTIONS RIGHTALONGWITHENTERPRISEBEANSANDTHEREAREˆ TOBECONTINUED

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

6KDUSHQ \RXU SHQFLO The user URL. types a

5HTXHVW 5HVSRQVH )LOOLQWKHER[HVZLWK DGHVFULSWLRQRIZKDW KDSSHQVGXULQJWKDWVWHS LQWKHSURFHVV7KLVLVD GXSOLFDWHRISDJHVR ZKHQ\RX·UHILQLVKHG IOLSEDFNWRWKDWSDJHWR FRPSDUH\RXUDQVZHUV

KWWSZZZZLFNHGO\VPDUWFRPWHVW%HHUKWPO

73 *(7WHVW%HHUKWPO+7 P UWFR VPD HGO\ ZLFN +RVWZZZ  0DFLQWRVK 8VHU$JHQW0R]LOOD 

6HUYHU

*MMZP\UT KWPO!ERG\! KDOLJQ FHQWHU!%HHU/RJLQ3DJHK! IRUP! 6HOHFWDEHHUW\SHRUEX\EHHU PDNLQJVXSSOLHV"S! LQSXWW\SH UDGLRQDPH VHOHFW YDOXH 6HOHFW!6HOHFWDEHHUEU! LQSXWW\SH UDGLRQDPH VHOHFW YDOXH %X\!%X\VXSSOLHVEU!EU! FHQWHU! LQSXWW\SH 68%0,7! FHQWHU! IRUP! ERG\!KWPO!

+7732. 6HW&RRNLH  KWPO!ERG\! KDOLJQ FHQWHU!%HHU/RJLQ3DJHK! IRUP! 6HOHFWDEHHUW\SHRUEX\EHHU

:HE EURZVHU

&OLHQW

Client look forward tos a successful transaction.beer

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

TXLFNLHORRNDWVHUYOHWV

;MZ ^TM\[,MUa[\QNQML_ZQ\MLMXTWaZ]V *USTSOTHOSENEWTOSERVLETSCANSTOPHOLDINGTHEIRBREATH HERESA QUICKGUIDETOWRITING DEPLOYING ANDRUNNINGASERVLET4HISMIGHT CREATEMOREQUESTIONSTHANITANSWERSˆDONTPANIC YOUDONTHAVETO DOTHISRIGHTNOW)TSJUSTAQUICKDEMONSTRATIONFORTHOSEWHOCANT WAIT4HENEXTCHAPTERINCLUDESAMORETHOROUGHTUTORIAL

SURMHFW

FODVVHV

VUF



%XLOGWKLVGLUHFWRU\WUHH VRPHZKHUHQRWXQGHUWRPFDW 



:ULWHDVHUYOHWQDPHG&K6HUYOHWMDYDDQGSXWLWLQWKHVUFGLUHFWRU\ WR NHHSWKLVH[DPSOHVLPSOHZHDUHQ·WSXWWLQJWKHVHUYOHWLQDSDFNDJH EXWDIWHUWKLVDOORWKHUVHUYOHWH[DPSOHVLQWKHERRNZLOOEHLQSDFNDJHV 

HWF





6HUYOHW^ GR*HW  `

&K6HUYOHWMDYD

ZHEDSS!   ZHEDSS!

ZHE[PO

LPSRUWMDYD[VHUYOHW  LPSRUWMDYD[VHUYOHWKWWS  LPSRUWMDYDLR  SXEOLFFODVV&K6HUYOHWH[WHQGV+WWS6HUYOHW^ SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW   +WWS6HUYOHW5HVSRQVHUHVSRQVH  WKURZV,2([FHSWLRQ^

Standard servlet declarations (there will be about 400 pages describing this stuff).

3ULQW:ULWHURXW UHVSRQVHJHW:ULWHU  MDYDXWLO'DWHWRGD\ QHZMDYDXWLO'DWH  RXWSULQWOQ ³KWPO!³   ³ERG\!´   ³KDOLJQ FHQWHU!+)?¶V&KDSWHU6HUYOHWK!´   ³EU!´WRGD\³ERG\!´³KWPO!´  ` `



&UHDWHDGHSOR\PHQWGHVFULSWRU '' QDPHGZHE[POSXWLWLQ WKHHWFGLUHFWRU\

ZHEDSS[POQV ´KWWSMDYDVXQFRP[POQVMHH´ [POQV[VL ´KWWSZZZZRUJ;0/6FKHPDLQVWDQFH´ [VLVFKHPD/RFDWLRQ ´KWWSMDYDVXQFRP[POQVMHH ZHEDSSBB[VG´ YHUVLRQ ´´! VHUYOHW! VHUYOHWQDPH!&KDSWHU6HUYOHWVHUYOHWQDPH! VHUYOHWFODVV!&K6HUYOHWVHUYOHWFODVV! VHUYOHW!  VHUYOHWPDSSLQJ! VHUYOHWQDPH!&KDSWHU6HUYOHWVHUYOHWQDPH! XUOSDWWHUQ!6HUYXUOSDWWHUQ! VHUYOHWPDSSLQJ! ZHEDSS!



bedded in a HTML imra m. Looks og Java pr snÕt it? oe lovely, d

Highlights:

lication. -One DD per web app ny servlets. -A DD can declare ma ties the - A to the element mapping> element. the Java class. - A is the name the - A e isrequest. th for s use nt clie

FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH



%XLOGWKLVGLUHFWRU\WUHHXQGHUWKHH[LVWLQJWRPFDWGLUHFWRU\



)URPWKHSURMHFWGLUHFWRU\FRPSLOHWKHVHUYOHW

WRPFDW

The name of the webapp.

ZHEDSSV

MDYDFFODVVSDWK\RXUSDWKWRPFDWFRPPRQOLE VHUYOHWDSLMDUGFODVVHVVUF&K6HUYOHWMDYD FK

(This is all one command.) WKH&K6HUYOHWFODVVILOHZLOOHQGXSLQSURMHFWFODVVHV



:(%,1)



ZHEDSS!   ZHEDSS!

&RS\WKH&K6HUYOHWFODVVILOHWR:(%,1)FODVVHVDQGFRS\ WKHZHE[POILOHWR:(%,1)

ZHE[PO

FODVVHV





   

)URPWKHWRPFDWGLUHFWRU\VWDUW7RPFDW ELQVWDUWXSVK

/DXQFK\RXUEURZVHUDQGW\SHLQ

&K6HUYOHWFODVV

h1Õ and is named Ôc The webaptp is named ÔServ1Õ. the servle

KWWSORFDOKRVWFK6HUY

LWVKRXOGGLVSOD\

7XH$SULO067

!

ay vary...

m Your date

)RUQRZHYHU\WLPH\RXXSGDWHHLWKHUDVHUYOHWFODVVRUWKH GHSOR\PHQWGHVFULSWRUVKXWGRZQ7RPFDW ELQVKXWGRZQVK \RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

+70/LQDSULQWOQ VXFNV

1RRIIHQVHKHUH EXWWKHUH·VVRPHWKLQJ 6(5,286/<ZURQJZLWKWKLV VHUYOHWVSLFWXUHWU\LQJWRVWXII +70/LQVLGHDSULQWOQ ""7KDW FDQ·WEHULJKW

dynamic web u create a ve to print yo w ho is s Thi ream rvlet. You ha page in a sething to an output Pstresponse le T ho T H the w ). part of the (itÕs reallyhat youÕre printing to t stream

RXWSULQWOQ ³KWPO!³   ³ERG\!´   ³K!6N\OHU?¶V/RJLQ3DJHK!´   ³EU!´WRGD\   ³ERG\!´   ³KWPO!´ 

)K\]ITTa\ZaQVO\WNWZUI\0<54QV[QLMI [MZ ^TM\¼[W]\XZQV\TVXZM\\aU]KP[]KS[ 4HISISONEOFTHEWORSTPARTSNO THEWORST PART OFSERVLETS3TUFlNGPROPERLYFORMATTED (4-,TAGSINTOTHEPRINTLN JUSTSOTHATYOU CANINSERTVARIABLESANDMETHODCALLS ISJUST BRUTAL$ONTEVENTHINKABOUTDOINGANYTHING THELEASTBITSOPHISTICATED

WKHUH DUH QR

4

'XPE 4XHVWLRQV

)TCANTBETHATBADWHYCANT)JUSTCOPYA WHOLEPAGEOF(4-,FROMMYWEBPAGEEDITOR LIKE $REAMWEAVER ANDPASTEITINTOTHEPRINTLN )TS NOTLIKE)HAVETOBEABLETOREADTHECODEINTHERE

$

/BVIOUSLY YOUHAVENTTRIEDTHISYET)TSOUNDS GOOD9ES)LLJUSTMAKEMYPAGEINADECENTWEB PAGEEDITOROREVENASIMPLETEXTFILEWOULDBE EASIERTHANINMY*AVACODE ANDTHENAQUICKCOPY ANDPASTEINTOTHEPRINTLN ANDVOILA %XCEPTYOUGETABOUT COMPILERERRORS 2EMEMBER YOUCANTHAVEACARRIAGERETURNAREAL ONE INSIDEA3TRINGLITERAL!NDWHILEWERETALKING ABOUT3TRINGSWHATABOUTALLYOUR(4-,THATHAS DOUBLE QUOTEMARKSINIT



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

2KLIRQO\WKHUHZHUHD ZD\WRSXW-DYDLQVLGHDQ +70/SDJHLQVWHDGRISXWWLQJ +70/LQVLGHD-DYDFODVV

;PMLWM[V¼\SVW_IJW]\2;8 KWPO! ERG\! K!6N\OHU¶V/RJLQ3DJHK! EU!  QHZMDYDXWLO'DWH ! ERG\! KWPO!

ks like a Whoa! This looht in the rig , va Ja e littl !? L M HT of middle

VN\OHUORJLQMVS !*30PAGELOOKSJUSTLIKEAN(4-,PAGE EXCEPTYOU CANPUT*AVAAND*AVA RELATEDTHINGSINSIDETHEPAGE 3OITREALLYISLIKEINSERTINGAVARIABLEINTOYOUR(4-,

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

-DYDPHHWV+70/ -63

2;8Q[_PI\PIXXMVML_PMV[WUMJWLa QV\ZWL]KML2I^I\W0<54 +H\EDE\ QLFHWDJV

0UTTING*AVAINTO(4-,ISASOLUTIONFORTWOISSUES

 1RWDOO+70/SDJHGHVLJQHUV  NQRZ-DYD !PPDEVELOPERSKNOW*AVA7EBPAGEDESIGNERSKNOW (4-,7ITH*30 *AVADEVELOPERSCANDO*AVAAND(4-, DEVELOPERSCANDOWEBPAGES

KWPO! ERG\! HQW 7KHFXUU ZD\V DO WLPHLV 30 HUYHU V KH RQW ERG\! KWPO!

FODVV)R R YRLGED ^ U [ QHZ ^ 'DWH  ` ` 

 )RUPDWWLQJ+70/LQWRD6WULQJ  OLWHUDOLV5($//<XJO\ 0UTTINGEVENMARGINALLYCOMPLEX(4-,INTOTHEARGUMENTTOA PRINTLN ISACOMPILERERRORWAITINGTOHAPPEN9OUMIGHTHAVE TODOATONOFWORKTOGETTHE(4-,FORMATTEDPROPERLYINA WAYTHATSTILLWORKSINTHECLIENTSBROWSER YETSATISlES*AVARULES FORWHATSALLOWEDINA3TRINGLITERAL9OUCANTHAVECARRIAGE RETURNS FOREXAMPLE YETMOSTOFTHE(4-,YOULLPULLFROMA WEBPAGEEDITORWILLHAVEREALCARRIAGERETURNSINTHESOURCE 1UOTESCANBEAPROBLEMTOOˆALOTOF(4-,TAGSUSEQUOTES AROUNDATTRIBUTEVALUES FOREXAMPLE!NDYOUKNOWWHAT HAPPENSWHENTHECOMPILERSEESADOUBLEQUOTEITTHINKS h4HISMUSTBETHEENDOFTHE3TRINGLITERALv3URE YOUCAN GOBACKANDREPLACEEACHOFYOURDOUBLEQUOTESWITHESCAPE CODESBUTITALLGETSINSANELYERRORPRONE

KWPO! ERG\! 7KHFXUUHQWWLPH RQWKHVHUYHULV  QHZ MDYDXWLO'DWH  ! ERG\! KWPO! 

4

7AITTHERESSTILLSOMETHINGWRONGHERE"ENElTNUMBER ONESAYSh.OTALLPAGEDESIGNERSKNOW*AVAvBUTTHE(4-,PAGE DESIGNERSTILLHASTOWRITE*AVAINSIDETHE*30PAGE*30LETSTHE*AVA PROGRAMMEROFFTHEHOOKFORWRITING(4-, BUTITDOESNTREALLYHELP THE(4-,DESIGNER)TMIGHTBEEASIERTOWRITE(4-,INA*30RATHER THANINAPRINTLN BUTTHE(4-,DEVELOPERSTILLHASTOKNOW*AVA

$

,OOKSTHATWAY DOESNTIT"UTWITHTHENEW*30SPEC ANDBY FOLLOWINGBESTPRACTICES THEPAGEDESIGNERSHOULDBEPUTTINGVERY LITTLEORNO REAL*AVAINTOA*304HEYDOHAVETOLEARNSOMETHINGBUT ITSMORELIKEPUTTINGINLABELSTHATCALLREAL*AVAMETHODSRATHERTHAN EMBEDDINGTHEACTUAL*AVACODEINTOTHEPAGEITSELF4HEYHAVETOLEARN *30SYNTAX BUTNOTTHE*AVALANGUAGE



FKDSWHU

Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 1. Why use Servlets & JSPs?

LQWURDQGDUFKLWHFWXUH

:MDD=LHGAFLK

ƒ +773VWDQGVIRU+\SHU7H[W7UDQVIHU3URWRFRODQGLVWKHQHWZRUNSURWRFROXVHGRQ WKH:HE,WUXQVRQWRSRI7&3,3

ƒ +773XVHVDUHTXHVWUHVSRQVHPRGHO³WKHFOLHQWPDNHVDQ+773UHTXHVWDQGWKH ZHEVHUYHUJLYHVEDFNDQG+773UHVSRQVHWKDWWKHEURZVHUWKHQILJXUHVRXWKRZWR KDQGOH GHSHQGLQJRQWKHFRQWHQWW\SHRIWKHUHVSRQVH 

ƒ ,IWKHUHVSRQVHIURPWKHVHUYHULVDQ+70/SDJHWKH+70/LVDGGHGWRWKH+773 UHVSRQVH ƒ $Q+773UHTXHVWLQFOXGHVWKHUHTXHVW85/ WKHUHVRXUFHWKHFOLHQWLVWU\LQJWRDF FHVV WKH+773PHWKRG *(73267HWF DQG RSWLRQDOO\ IRUPSDUDPHWHUGDWD DOVRFDOOHGWKH´TXHU\VWULQJµ 

ƒ $Q+773UHVSRQVHLQFOXGHVDVWDWXVFRGHWKHFRQWHQWW\SH DOVRNQRZQDV0,0( W\SH DQGWKHDFWXDOFRQWHQWRIWKHUHVSRQVH +70/LPDJHHWF

ƒ $*(7UHTXHVWDSSHQGVIRUPGDWDWRWKHHQGRIWKH85/ ƒ $3267UHTXHVWLQFOXGHVIRUPGDWDLQWKHERG\RIWKHUHTXHVW ƒ $0,0(W\SHWHOOVWKHEURZVHUZKDWNLQGRIGDWDWKHEURZVHULVDERXWWRUHFHLYHVR WKDWWKHEURZVHUZLOONQRZZKDWWRGRZLWKLW UHQGHUWKH+70/GLVSOD\WKHJUDSKLF SOD\WKHPXVLFHWF

ƒ 85/VWDQGVIRU8QLIRUP5HVRXUFH/RFDWRU(YHU\UHVRXUFHRQWKHZHEKDVLWVRZQ XQLTXHDGGUHVVLQWKLVIRUPDW,WVWDUWVZLWKDSURWRFROIROORZHGE\WKHVHUYHUQDPH DQRSWLRQDOSRUWQXPEHUDQGXVXDOO\DVSHFLILFSDWKDQGUHVRXUFHQDPH,WFDQDOVR LQFOXGHDQRSWLRQDOTXHU\VWULQJLIWKH85/LVIRUD*(7UHTXHVW

ƒ :HEVHUYHUVDUHJRRGDWVHUYLQJVWDWLF+70/SDJHVEXWLI\RXQHHGG\QDPLFDOO\ JHQHUDWHGGDWDLQWKHSDJH WKHFXUUHQWWLPHIRUH[DPSOH \RXQHHGVRPHNLQGRI KHOSHUDSSWKDWFDQZRUNZLWKWKHVHUYHU7KHQRQ-DYDWHUPIRUWKHVHKHOSHUDSSV PRVWRIWHQZULWWHQLQ3HUO LV&*, ZKLFKVWDQGVIRU&RPPRQ*DWHZD\,QWHUIDFH 

ƒ 3XWWLQJ+70/LQVLGHDSULQWOQ VWDWHPHQWLVXJO\DQGHUURUSURQHEXW-63VVROYH WKDWSUREOHPE\OHWWLQJ\RXSXW-DYDLQWRDQ+70/SDJHUDWKHUWKDQSXWWLQJ+70/ LQWR-DYDFRGH

\RXDUHKHUH



Chapter 1. Why use Servlets & JSPs? Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHORYHUYLHZ

:HE$SS$UFKLWHFWXUH %HKROGWKHSRZHURI P\&RQWDLQHUDWKRXVDQG VLPXOWDQHRXVKLWVZLOOQRW EULQJPHWRP\NQHHV

8KRK DQRWKHUYLFWLPRI -((IHYHU

6HUYOHWVQHHGKHOS:KHQDUHTXHVWFRPHVLQVRPHERG\KDVWR LQVWDQWLDWHWKHVHUYOHWRUDWOHDVWPDNHDQHZWKUHDGWRKDQGOHWKHUHTXHVW 6RPHERG\KDVWRFDOOWKHVHUYOHW¶VGR3RVW RUGR*HW PHWKRG$QGRK\HV WKRVHPHWKRGVKDYHFUXFLDODUJXPHQWV²WKH+773UHTXHVWDQG+773UHVSRQVH REMHFWV6RPHERG\KDVWRJHWWKHUHTXHVWDQGWKHUHVSRQVHWRWKHVHUYOHW 6RPHERG\KDVWRPDQDJHWKHOLIHGHDWKDQGUHVRXUFHVRIWKHVHUYOHW7KDW VRPHERG\LVWKHZHE&RQWDLQHU,QWKLVFKDSWHUZH¶OOORRNDWKRZ\RXUZHE DSSOLFDWLRQUXQVLQWKH&RQWDLQHUDQGZH¶OOWDNHD¿UVWORRNDWWKHVWUXFWXUHRID ZHEDSSXVLQJWKH0RGHO9LHZ&RQWUROOHU 09& GHVLJQSDWWHUQ

WKLVLVDQHZFKDSWHU



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

RI¿FLDO6XQH[DPREMHFWLYHV

+LJKOHYHO:HE$SS$FKLWHFWXUH

&RYHUDJH1RWHV

Copyright Safari Books Online #747221  )RUHDFKRIWKH+7730HWKRGV VXFKDV*(7

3267+($'DQGVRRQ GHVFULEHWKHSXUSRVHRI WKHPHWKRGDQGWKHWHFKQLFDOFKDUDFWHULVWLFVRIWKH +7730HWKRGSURWRFROOLVWWULJJHUVWKDWPLJKWFDXVH DFOLHQW XVXDOO\D:HEEURZVHU WRXVHWKH0HWKRG DQGLGHQWLI\WKH+WWS6HUYOHWPHWKRGWKDWFRUUHVSRQGV WRWKH+7730HWKRG

 'HVFULEHWKHSXUSRVHDQGHYHQWVHTXHQFHRIWKH

VHUYOHWOLIHF\FOH  VHUYOHWFODVVORDGLQJ  VHUYOHW LQVWDQWLDWLRQ  FDOOWKHLQLWPHWKRG  FDOOWKH VHUYLFHPHWKRGDQG  FDOOWKHGHVWUR\PHWKRG

 &RQVWUXFWWKH¿OHDQGGLUHFWRU\VWUXFWXUHRID:HE $SSOLFDWLRQWKDWPD\FRQWDLQ D VWDWLFFRQWHQW E  -63SDJHV F VHUYOHWFODVVHV G WKHGHSOR\PHQW GHVFULSWRU H WDJOLEUDULHV I -$5¿OHVDQG J -DYD FODVV¿OHVDQGGHVFULEHKRZWRSURWHFWUHVRXUFH¿OHV IURP+773DFFHVV





!LLOFTHEOBJECTIVESINTHISSECTIONARECOVERED COMPLETELYINOTHERCHAPTERS SOTHINKOFTHIS CHAPTERASAlRST LOOKFOUNDATIONFORWHAT COMESLATER)NOTHERWORDS DONTWORRY ABOUTlNISHINGTHISCHAPTERKNOWINGAND REMEMBERING ANYTHINGSPECIlCFROMTHESE OBJECTIVES 9OUWONTHAVEANYMOCKEXAMQUESTIONSON THESETOPICSUNTILYOUGETTOTHEMORESPECIlC CHAPTERWHERETHOSETOPICSARECOVERED %NJOYTHISNICE SIMPLE BACKGROUNDMATERIAL WHILEYOUCAN "54YOUDONEEDTOKNOWTHISSTUFFBEFORE MOVINGON)FYOUALREADYHAVESOMESERVLET EXPERIENCE YOUCANPROBABLYJUSTSKIMTHE PAGES LOOKATTHEPICTURES DOTHEEXERCISES AND MOVEONTOCHAPTER

'HVFULEHWKHSXUSRVHDQGVHPDQWLFVIRUHDFKRI WKHIROORZLQJGHSOR\PHQWGHVFULSWRUHOHPHQWV VHUYOHWLQVWDQFHVHUYOHWQDPHVHUYOHWFODVVVHUYOHW LQLWLDOL]DWLRQSDUDPHWHUVDQG85/WRQDPHGVHUYOHW PDSSLQJ

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

?PI\Q[I+WV\IQVMZ' 6HUYOHWVGRQ·WKDYHDPDLQ PHWKRG 7KH\·UHXQGHUWKHFRQWURORIDQRWKHU-DYD DSSOLFDWLRQFDOOHGD&RQWDLQHU 4OMCATISANEXAMPLEOFA#ONTAINER7HENYOURWEBSERVER APPLICATIONLIKE!PACHE GETSAREQUESTFORASERVLETAS OPPOSEDTO SAY APLAINOLDSTATIC(4-,PAGE THESERVER HANDSTHEREQUESTNOTTOTHESERVLETITSELF BUTTOTHE#ONTAINER INWHICHTHESERVLETISDEPLOYED)TSTHE#ONTAINERTHATGIVESTHE SERVLETTHE(440REQUESTANDRESPONSE ANDITSTHE#ONTAINER THATCALLSTHESERVLETSMETHODSLIKEDO0OST ORDO'ET 

ZHEVHUYHUPDFKLQH UHTXHVW

*(7

*(7

:HE EURZVHU

 

 

ZHEVHUYHU DSS

&OLHQW

Java code

*(7

 

Java

ZHE code &RQWDLQHU DSS

VHUYOHW

ZHEVHUYHUPDFKLQH +773  2. KWPO! KHDG! 

:HE EURZVHU

KHDG! ERG\! LPJVUF ! ERG\! KWPO!

UHVSRQVH

&OLHQW

KWPO! KHDG! KHDG!

ZHEVHUYHU DSS

KWPO! KHDG! KHDG!

ERG\!  ERG\! KWPO!

ZHE &RQWDLQHU DSS

ERG\!  ERG\! KWPO!

VHUYOHW

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

OLIHZLWKRXWVHUYOHWV

?PI\QNaW]PIL2I^IJ]\VW [MZ ^TM\[WZ+WV\IQVMZ[' 7HATIFYOUHADTOWRITEA*AVAPROGRAMTO HANDLEDYNAMICREQUESTSTHATCOMETOAWEB SERVERAPPLICATIONLIKE!PACHE BUTWITHOUTA #ONTAINERLIKE4OMCAT)NOTHERWORDS IMAGINE THERESNOSUCHTHINGASSERVLETS ANDALLYOUHAVE ARETHECORE*3%LIBRARIES/FCOURSE YOUCAN ASSUMEYOUHAVETHECAPABILITY OFCONlGURINGTHEWEBSERVER APPLICATIONSOTHATITCANINVOKE YOUR*AVAAPPLICATION )TS/+IF YOUDONTYETKNOWMUCHABOUT WHATTHE#ONTAINERDOES*UST IMAGINEYOUNEEDSERVER SIDE SUPPORTFORAWEBAPPLICATION AND ALLYOUHAVEISPLAINOLD*AVA

$WUXHZDUULRUZRXOGQRW XVHD&RQWDLQHU+HZRXOG ZULWHHYHU\WKLQJXVLQJRQO\ -6(DQGKLVEDUHKDQGV

/LVWVRPHRIWKHIXQFWLRQV\RXZRXOGKDYHWRLPSOHPHQWLQ D-6(DSSOLFDWLRQLIQR&RQWDLQHUH[LVWHG

* Create a socket connection with the server, and create a listener for the socket.

0OSSIBLEANSWERSCREATEATHREADMANAGER IMPLEMENTSECURITY HOWABOUTlLTER INGFORTHINGSLIKELOGGING *30SUPPORT YIKES MEMORYMANAGEMENT



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

?PI\LWM[\PM+WV\IQVMZOQ^MaW]' 7EKNOWTHATITSTHE#ONTAINERTHATMANAGESANDRUNSTHE SERVLET BUTWHY)SITWORTHTHEEXTRAOVERHEAD &RPPXQLFDWLRQVVXSSRUW4HECONTAINER PROVIDESANEASYWAYFORYOURSERVLETSTOTALKTOYOURWEB SERVER9OUDONTHAVETOBUILDA3ERVER3OCKET LISTEN ONAPORT CREATESTREAMS ETC4HE#ONTAINERKNOWSTHE PROTOCOLBETWEENTHEWEBSERVERANDITSELF SOTHATYOUR SERVLETDOESNTHAVETOWORRYABOUTAN!0)BETWEEN SAY THE!PACHEWEBSERVERANDYOUROWNWEBAPPLICATION CODE!LLYOUHAVETOWORRYABOUTISYOUROWNBUSINESS LOGICTHATGOESINYOUR3ERVLETLIKEACCEPTINGANORDER FROMYOURONLINESTORE  /LIHF\FOH0DQDJHPHQW4HE#ONTAINER CONTROLSTHELIFEANDDEATHOFYOURSERVLETS)T TAKESCAREOFLOADINGTHECLASSES INSTANTIATINGAND INITIALIZINGTHESERVLETS INVOKINGTHESERVLETMETHODS ANDMAKINGSERVLETINSTANCESELIGIBLEFORGARBAGE COLLECTION7ITHTHE#ONTAINERINCONTROL YOUDONT HAVETOWORRYASMUCHABOUTRESOURCEMANAGEMENT 0XOWLWKUHDGLQJ6XSSRUW4HE#ONTAINER AUTOMATICALLYCREATESANEW*AVATHREADFOREVERYSERVLET REQUESTITRECEIVES7HENTHESERVLETSDONERUNNING THE(440SERVICEMETHODFORTHATCLIENTSREQUEST THE THREADCOMPLETESIEDIES 4HISDOESNTMEANYOURE OFFTHEHOOKFORTHREADSAFETYˆYOUCANSTILLRUNINTO SYNCHRONIZATIONISSUES"UTHAVINGTHESERVERCREATEAND MANAGETHREADSFORMULTIPLEREQUESTSSTILLSAVESYOUALOT OFWORK

7KDQNVWRWKH&RQWDLQHU <28JHWWRFRQFHQWUDWHPRUH RQ\RXURZQEXVLQHVVORJLF LQVWHDGRIZRUU\LQJDERXW ZULWLQJFRGHIRUWKUHDGLQJ VHFXULW\DQGQHWZRUNLQJ
'HFODUDWLYH6HFXULW\7ITHA#ONTAINER YOUGET TOUSEAN8-,DEPLOYMENTDESCRIPTORTOCONlGURE ANDMODIFY SECURITYWITHOUTHAVINGTOHARD CODEIT INTOYOURSERVLETORANYOTHER CLASSCODE4HINKABOUT THAT9OUCANMANAGEANDCHANGEYOURSECURITYWITHOUT TOUCHINGANDRECOMPILINGYOUR*AVASOURCElLES -636XSSRUW9OUALREADYKNOWHOWCOOL*30SARE 7ELL WHODOYOUTHINKTAKESCAREOFTRANSLATINGTHAT*30 CODEINTOREAL*AVA/FCOURSE4HE#ONTAINER \RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

WKH&RQWDLQHU

0W_\PM+WV\IQVMZPIVLTM[IZMY]M[\ 7ELLSAVESOMEOFTHEJUICIERBITSFORLATERINTHEBOOK BUT HERESAQUICKLOOK

+773UHTXHVW *(7



:HE EURZVHU

 

FRQWDLQHU

VHUYOHW

8VHUFOLFNVDOLQNWKDWKDVD 85/WRDVHUYOHWLQVWHDGRID VWDWLFSDJH

VHUYOHW

7KHFRQWDLQHU´VHHVµWKDWWKH UHTXHVWLVIRUDVHUYOHWVRWKH FRQWDLQHUFUHDWHVWZRREMHFWV

&OLHQW



:HE EURZVHU

&OLHQW

FRQWDLQHU

 +WWS6HUYOHW5HVSRQVH UHTXHVW

 +WWS6HUYOHW5HTXHVW

UHVSRQVH



:HE EURZVHU

&OLHQW

UHTXHVW UHVSRQVH

VHUYOHW

FRQWDLQHU

thread



7KHFRQWDLQHUILQGVWKHFRUUHFW VHUYOHWEDVHGRQWKH85/LQWKH UHTXHVWFUHDWHVRUDOORFDWHV DWKUHDGIRUWKDWUHTXHVWDQG SDVVHVWKHUHTXHVWDQGUHVSRQVH REMHFWVWRWKHVHUYOHWWKUHDG

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH



:HE EURZVHU

VHUYOHW

FRQWDLQHU &OLHQW UHTXHVW UHVSRQVH



:HE EURZVHU

VHUYOHW

FRQWDLQHU &OLHQW

UHVSRQVH KWPO! KHDG! KHDG! ERG\!  ERG\! KWPO!



VHUYLFH

:HE EURZVHU

&OLHQW

FRQWDLQHU

+773UHVSRQVH UHTXHVW

)RUWKLVH[DPSOHZH·OODVVXPHWKH UHTXHVWZDVDQ+773*(7

7KHGR*HW PHWKRGJHQHUDWHV WKHG\QDPLFSDJHDQGVWXIIVWKH SDJHLQWRWKHUHVSRQVHREMHFW 5HPHPEHUWKHFRQWDLQHUVWLOOKDV DUHIHUHQFHWRWKHUHVSRQVHREMHFW

VHUYLFH GR*HW

+773KHDGHULQIR  KWPO! KHDG! KHDG! ERG\!  ERG\! KWPO!

7KHFRQWDLQHUFDOOVWKHVHUYOHW·V VHUYLFH PHWKRG'HSHQGLQJRQ WKHW\SHRIUHTXHVWWKHVHUYLFH  PHWKRGFDOOVHLWKHUWKHGR*HW RU GR3RVW PHWKRG

VHUYOHW

no thread

7KHWKUHDGFRPSOHWHVWKH FRQWDLQHUFRQYHUWVWKHUHVSRQVH REMHFWLQWRDQ+773UHVSRQVH VHQGVLWEDFNWRWKHFOLHQWWKHQ GHOHWHVWKHUHTXHVWDQGUHVSRQVH REMHFWV

UHVSRQVH

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

VHUYOHWFRGH

0W_Q\TWWS[QVKWLM_PI\UISM[ I[MZ ^TM\I[MZ ^TM\ In the real world, 99.9% of all t() servlets override either the doGe or doPost() method. LPSRUWMDYD[VHUYOHW  LPSRUWMDYD[VHUYOHWKWWS  LPSRUWMDYDLR 

all servlets 99.9999 % ofrvlets. Se are Http

SXEOLFFODVV&K6HUYOHWH[WHQGV+WWS6HUYOHW^ SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW   +WWS6HUYOHW5HVSRQVHUHVSRQVH  WKURZV,2([FHSWLRQ^ 3ULQW:ULWHURXW UHVSRQVHJHW:ULWHU  MDYDXWLO'DWHWRGD\ QHZMDYDXWLO'DWH  RXWSULQWOQ ³KWPO!³   ³ERG\!´   ³KVW\OH ´WH[WDOLJQFHQWHU!´ ³+)?¶V&KDSWHU6HUYOHWK!´   ³EU!´WRGD\   ³ERG\!´   ³KWPO!´  ` `

Notice... no main( ) The servletÕs lif method. ecyc methods (like do le Ge called by the Co t()) are ntainer.

This is where your servlet gets references to the request and response objects which the container creates.

You can get a PrintWriter from the response object your servlet gets from the Container. Use the PrintWriter to write HTML text to the response object. (You can get other output options, besides PrintWriter, for writing, say, a picture instead of HTML text.)

WKHUH DUH QR

'XPE 4XHVWLRQV

4

)REMEMBERSEEINGDO'ET ANDDO0OST BUTONTHEPREVIOUSPAGE YOUSHOWASERVICE METHOD7HEREDIDTHESERVICE METHODCOME FROM

$

9OURSERVLETINHERITEDITFROM(TTP3ERVLET WHICHINHERITEDITFROM'ENERIC3ERVLETWHICH INHERITEDITFROMAHHH WELLDOCLASSHIERARCHIES TODEATHINTHE"EINGA3ERVLETCHAPTER SOYOUJUST NEEDALITTLEMOREPATIENCE



4

9OUWIMPEDOUTONEXPLAININGHOWTHE CONTAINERFOUNDTHECORRECTSERVLETLIKE HOW DOESA52,RELATETOASERVLET$OESTHEUSERHAVE TOTYPEINTHEEXACTPATHANDCLASSlLENAMEOF THESERVLET

$

.O'OODQUESTION THOUGH"UTITPOINTSTO A2EALLY"IG4OPICSERVLETMAPPINGAND52,PAT TERNS SOWELLTAKEONLYAQUICKLOOKONTHENEXT FEWPAGES BUTGOINTOMUCHMOREDETAILLATERIN THEBOOKINTHE$EPLOYMENTCHAPTER 

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

AW]¼ZM_WVLMZQVOPW_\PM+WV\IQVMZ NW]VL\PM;MZ ^TM\ 3OMEHOW THE52,THATCOMESINASPARTOFTHEREQUESTFROMTHE CLIENTISMAPPEDTOASPECIlCSERVLETONTHESERVER4HISMAPPING OF52,STOSERVLETSMIGHTBEHANDLEDINANUMBEROFDIFFERENT WAYS ANDITSONEOFTHEMOSTFUNDAMENTALISSUESYOULLFACEAS AWEBAPPDEVELOPER4HEUSERREQUESTMUSTMAPTOAPARTICULAR SERVLET ANDITSUPTOYOUTOUNDERSTANDANDUSUALLY CONlGURE THATMAPPING7HATDOYOUTHINK

#4X3X98 +RZVKRXOGWKH&RQWDLQHUPDS VHUYOHWVWR85/V" 7KHXVHUGRHVVRPHWKLQJLQWKHEURZVHU FOLFNVDOLQNKLWVWKH´6XEPLWµ EXWWRQHQWHUVD85/HWF DQGWKDWVRPHWKLQJLVVXSSRVHGWRVHQG WKHUHTXHVWWRDVSHFLILFVHUYOHW RURWKHUZHEDSSUHVRXUFHOLNHD -63 \RXEXLOW+RZPLJKWWKDWKDSSHQ" )RUHDFKRIWKHIROORZLQJDSSURDFKHVWKLQNDERXWWKHSURVDQGFRQV  +DUGFRGHWKHPDSSLQJLQWR\RXU+70/SDJH,QRWKHUZRUGVWKH FOLHQWLVXVLQJWKHH[DFWSDWKDQG¿OH FODVV QDPHRIWKHVHUYOHW



3526



&216

 8VH\RXU&RQWDLQHUYHQGRU¶VWRROWRGRWKHPDSSLQJ



3526



&216

 8VHVRPHVRUWRISURSHUWLHVWDEOHWRVWRUHWKHPDSSLQJV



3526



&216 \RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

PDSSLQJ85/6WRVHUYOHWV

)[MZ ^TM\KIVPI^M<0:--VIUM[ !SERVLETHASAlLEPATHNAME OBVIOUSLY LIKECLASSESREGISTRATION 3IGN5P3ERVLETCLASSAPATHTOANACTUALCLASSlLE 4HEORIGINAL DEVELOPEROFTHESERVLETCLASSCHOSETHECLASSNAMEANDTHEPACKAGE NAMETHATDElNESPARTOFTHEDIRECTORYSTRUCTURE ANDTHELOCATION ONTHESERVERDElNESTHEFULLPATHNAME"UTANYONEWHODEPLOYS THESERVLETCANALSOGIVEITASPECIALDEPLOYMENTNAME!DEPLOYMENT NAMEISSIMPLYASECRETINTERNALNAMETHATDOESNTHAVETOBETHESAME ASTHECLASSORlLENAME)TCANBETHESAMEASTHESERVLETCLASSNAME REGISTRATION3IGN5P3ERVLET ORTHERELATIVEPATHTOTHECLASSlLE CLASSESREGISTRATION3IGN5P3ERVLETCLASS BUTITCANALSOBESOMETHING COMPLETELYDIFFERENTLIKE%NROLL3ERVLET  &INALLY THESERVLETHASAPUBLIC52,NAMEˆTHENAMETHECLIENTKNOWS ABOUT)NOTHERWORDS THENAMECODEDINTOTHE(4-,SOTHATWHEN THEUSERCLICKSALINKTHATSSUPPOSEDTOGOTOTHATSERVLET THISPUBLIC 52,NAMEISSENTTOTHESERVERINTHE(440REQUEST 



,·OOFOLFNWKHOLQNWRWKH ´UHJLVWHUUHJLVWHU0Hµ VHUYOHW

&OLHQWNQRZQ85/QDPH 7KHFOLHQWVHHVD85/IRUWKH VHUYOHW LQWKH+70/ EXWGRHVQ·W UHDOO\NQRZKRZWKDWVHUYOHWQDPH PDSVWRUHDOGLUHFWRULHVDQGÀOHV EDFNRQWKHVHUYHU7KHSXEOLF85/ QDPHLVDIDNHQDPHPDGHXSIRU FOLHQWV



FODVVHV

 ,·PJRQQDFDOO WKLVVHUYOHWWKH ´(QUROO6HUYOHWµ

UHJLVWUDWLRQ        

6LJQ8S6HUYOHWFODVV

'HSOR\HUNQRZQ VHFUHWLQWHUQDOQDPH 7KHGHSOR\HUFDQFUHDWHDQDPH WKDW·VNQRZQRQO\WRWKHGHSOR\HU DQGRWKHUVLQWKHUHDORSHUDWLRQDO HQYLURQPHQW7KLVQDPHWRRLVD IDNHQDPHPDGHXSMXVWIRUWKH GHSOR\PHQWRIWKHVHUYOHW,WGRHVQ·W KDYHWRPDWFKWKHSXEOLF85/XVHG E\WKHFOLHQW25WKHUHDOÀOHDQG SDWKQDPHRIWKHVHUYOHWFODVV

$FWXDOÀOHQDPH 7KHGHYHORSHU·VVHUYOHWFODVV KDVDIXOO\TXDOLÀHGQDPHWKDW LQFOXGHVERWKWKHFODVVQDPHDQG WKHSDFNDJHQDPH7KHVHUYOHW FODVVÀOHKDVDUHDOSDWKDQGÀOH QDPHGHSHQGLQJRQZKHUHWKH SDFNDJHGLUHFWRU\VWUXFWXUH OLYHVRQWKHVHUYHU

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

:HOOLVQ·WWKDWVSHFLDOKRZHYHU\RQH JHWVWRH[SUHVVWKHLUFUHDWLYLW\DQG FRPHXSZLWKWKHLUYHU\RZQQDPHIRU WKHVDPHGDUQWKLQJ%XWZKDW·VWKHSRLQW" 5HDOO\":K\GRQ·WZHDOOMXVWXVHWKH RQHUHDOQRQFRQIXVLQJÀOHQDPH"

0DSSLQJVHUYOHWQDPHV LPSURYHV\RXUDSS·VÁH[LELOLW\ DQGVHFXULW\ 4HINKABOUTIT 3OYOUVEHARD CODEDTHEREALPATH ANDlLENAMEINTOALLTHE*30SAND OTHER(4-,PAGESTHATUSETHATSERVLET 'REAT.OWWHATHAPPENSWHENYOU NEEDTOREORGANIZEYOURAPPLICATION ANDPOSSIBLYMOVETHINGSINTODIFFERENT DIRECTORYSTRUCTURES$OYOUREALLYWANT TOFORCEEVERYONEWHOUSESTHATSERVLETTO KNOWANDFOREVERFOLLOW THATSAMEDIRECTORY STRUCTURE "YMAPPINGTHENAMEINSTEADOFCODING INTHEREALlLEANDPATHNAME YOU HAVETHEmEXIBILITYTOMOVETHINGS AROUNDWITHOUTHAVINGTHEMAINTENANCE NIGHTMAREOFTRACKINGDOWNAND CHANGINGCLIENTCODETHATREFERSTOTHE OLDLOCATIONOFTHESERVLETlLES !NDWHATABOUTSECURITY$OYOUREALLY WANTTHECLIENTTOKNOWEXACTLYHOW THINGSARESTRUCTUREDONYOURSERVER $OYOUWANTTHEMTO SAY ATTEMPTTO NAVIGATEDIRECTLYTOTHESERVLETWITHOUT GOINGTHROUGHTHERIGHTPAGESORFORMS "ECAUSEIFTHEEND USERCANSEETHEREAL PATH SHECANTYPEITINTOHERBROWSER ANDTRYTOACCESSITDIRECTLY

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

VHUYOHWPDSSLQJLQWKH''

=[QVO\PM,MXTWaUMV\,M[KZQX\WZ\WUIX=:4[\W[MZ ^TM\[ 7HENYOUDEPLOYYOURSERVLETINTOYOURWEB#ONTAINER YOULLCREATEAFAIRLYSIMPLE8-, DOCUMENTCALLEDTHE$EPLOYMENT$ESCRIPTOR$$ TOTELLTHE#ONTAINERHOWTORUNYOUR SERVLETSAND*30S!LTHOUGHYOULLUSETHE$$FORMORETHANJUSTMAPPINGNAMES YOULLUSETWO 8-,ELEMENTSTOMAP52,STOSERVLETSˆONETOMAPTHECLIENT KNOWNPUBLIC52,NAMETOYOUR OWNINTERNALNAME ANDTHEOTHERTOMAPYOUROWNINTERNALNAMETOAFULLY QUALIlEDCLASSNAME

7KHWZR''HOHPHQWVIRU85/PDSSLQJ VHUYOHW!   PDSVLQWHUQDOQDPHWRIXOO\TXDOL¿HGFODVVQDPH VHUYOHWPDSSLQJ!   PDSVLQWHUQDOQDPHWRSXEOLF85/QDPH

This web app has two servlets.

goes OT more that There is a Lening tag, into this op t want to show it but we donÕ(thereÕs an example right now of this chapter). at the end

ZHEDSS!

The element tells the Container which class Þles belong to a particular web application.

Think of the element as what the Container uses at runtime when a request comes in, to ask, Òwhich servlet should I invoke for this requested URL?Ó.

is used to The elemtoenta speciÞc tie a elementent. The end elemname; itÕs used user NEVER sees this the DD. only in other parts of

VHUYOHW! VHUYOHWQDPH!,QWHUQDOQDPHVHUYOHWQDPH! VHUYOHWFODVV!IRR6HUYOHWVHUYOHWFODVV! VHUYOHW!

e fullyYou put in thme of the na ed qualiÞ you donÕt add class (but extension). the Ò.classÓ

VHUYOHW! VHUYOHWQDPH!,QWHUQDOQDPHVHUYOHWQDPH! VHUYOHWFODVV!IRR6HUYOHWVHUYOHWFODVV! VHUYOHW!   VHUYOHWPDSSLQJ! VHUYOHWQDPH!,QWHUQDOQDPHVHUYOHWQDPH! XUOSDWWHUQ!3XEOLFXUOSDWWHUQ! VHUYOHWPDSSLQJ! This is the what the client  

sees (and uses) a made-up to get to the servlet... but itÕs actual name that is NOT the name of the servlet class.

VHUYOHWPDSSLQJ! VHUYOHWQDPH!,QWHUQDOQDPHVHUYOHWQDPH! XUOSDWWHUQ!3XEOLFXUOSDWWHUQ! VHUYOHWPDSSLQJ!  ItÕs possible to use wildcards in ZHEDSS! the
rn> element. on that and paths later. .. more



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

*]\_IQ\ 
7KHGHSOR\PHQWGHVFULSWRU ''  SURYLGHVD´GHFODUDWLYHµPHFKDQLVP IRUFXVWRPL]LQJ\RXUZHEDSSOLFDWLRQV ZLWKRXWWRXFKLQJVRXUFHFRGH

<<:]f]Úlk

ƒ 0LQLPL]HVWRXFKLQJVRXUFHFRGHWKDW WKHUH DUH QR

'XPE 4XHVWLRQV

4

)MCONFUSED,OOKINGATTHE$$ YOUSTILLDONT HAVEANYTHINGTHATINDICATESTHEACTUALPATHNAMEOF THESERVLET)TJUSTSAYSTHECLASSNAME4HISSTILLDOESNT ANSWERTHEQUESTIONOFHOWTHE#ONTAINERUSESTHAT CLASSNAMETOlNDASPECIlCSERVLETCLASSlLE)STHERE YET!./4(%2MAPPINGSOMEWHERETHATSAYSTHATSUCH ANDSUCHACLASSNAMEMAPSTOSUCHANDSUCHAlLEIN SUCHANDSUCHALOCATION

$

9OUNOTICED9OURERIGHTTHATWEPUTONLYTHECLASS NAMEFULLY QUALIFIEDTOINCLUDETHEPACKAGENAME INTO THESERVLET CLASSELEMENT4HATSBECAUSETHE#ONTAINER HASASPECIFICPLACEITWILLLOOKFORALLSERVLETSFORWHICH YOUVESPECIFIEDAMAPPINGINTHE$$

KDVDOUHDG\EHHQWHVWHG

ƒ /HWV\RXILQHWXQH\RXUDSS·V FDSDELOLWLHVHYHQLI\RXGRQ·WKDYHWKH VRXUFHFRGH ƒ /HWV\RXDGDSW\RXUDSSOLFDWLRQWR GLIIHUHQWUHVRXUFHV OLNHGDWDEDVHV  ZLWKRXWKDYLQJWRUHFRPSLOHDQGWHVW DQ\FRGH ƒ 0DNHVLWHDVLHUIRU\RXWRPDLQWDLQ G\QDPLFVHFXULW\LQIROLNHDFFHVV FRQWUROOLVWVDQGVHFXULW\UROHV ƒ /HWVQRQSURJUDPPHUVPRGLI\DQG GHSOR\\RXUZHEDSSOLFDWLRQVZKLOH \RXFDQIRFXVRQWKHPRUHLQWHUHVWLQJ WKLQJV/LNHKRZDSSURSULDWH\RXU ZDUGUREHLVQ·WIRUDWULSWR+DZDLL

)NFACT THE#ONTAINERUSESASOPHISTICATEDSETOFRULESFOR FINDINGAMATCHBETWEENTHE52,THATCOMESINFROMTHE CLIENTREQUESTANDANACTUAL*AVACLASSSITTINGSOMEWHERE ONTHESERVER"UTWELLGETINTOTHATINALATERCHAPTERON $EPLOYMENT 2IGHTNOW THEKEYPOINTTOREMEMBERIS THATYOUCANDOTHISMAPPING

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

%RE¶VPDWFKPDNLQJVLWH

;\WZa"*WJ*]QTL[I5I\KPUISQVO;Q\M $ATINGISTOUGHTODAY7HOHASTHETIMEWHENTHERESALWAYSANOTHER DISKTODEFRAG"OB WHOWANTSAPIECEOFTHEDOTCOMACTIONWHATS LEFTOFIT ANYWAY BELIEVESTHATCREATINGAGEEK SPECIlCDATINGSITEIS HISTICKETOUTOFTHE$ILBERTIANJOBHEHASNOW 4HEPROBLEMIS "OBSBEENASOFTWAREMANAGERFORSOLONGTHATHES UM ALITTLEOUTOFTOUCHWITHCONTEMPORARYSOFTWAREENGINEERING PRACTICES"UTHEKNOWSSOMEBUZZWORDSANDSOME*AVAANDHESREAD ALITTLEABOUTSERVLETS SOHEMAKESAQUICKDESIGNANDSTARTSTOCODE

,ZDQWDQ$JLOH 'DWLQJVLWHZKHUHJHHNV FDQPHHWDQGKRRNXS%HFDXVH QRWHYHU\ERG\JHWVOXFN\ DWD/LQX[,QVWDOODWKRQ

,QSXW\RXUVWDWH @Yf\d]

*HHN'DWHV

9_] GK

´RIRXUWUDQVDFWLRQVHQGLQFRPPLWµ

9lljaZml]k =p[]hlagfk

Bgaf

Lqh]\][dYjYlagf

Afk]jl


4XHU\ ;gehgk]qgmj
'4/4XHU\

5HIDFWRU Eg\a^qqgmjhjgÚd]2

>SUR¿OHKHUH@

Aehjgn]al




Egj]

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

0M[\IZ\[\WJ]QTLIJ]VKPWN[MZ ^TM\[ WVMNWZMIKPXIOM (ECONSIDEREDHAVINGJUSTASINGLESERVLET WITHABUNCHOFIFTESTS BUTDECIDEDTHATSEPARATESERVLETSWOULDBEMORE//ˆEACH SERVLETSHOULDHAVEONERESPONSIBILITYLIKETHEQUERYPAGE THE SIGN UPPAGE THESEARCHRESULTSPAGE ETC %ACHSERVLETWILLHAVEALLTHEBUSINESSLOGICITNEEDSTOMODIFYOR READTHEDATABASE ANDPRINTSTHE(4-,TOTHERESPONSESTREAM BACKTOTHECLIENT

7KLVLVDJUHDW22 GHVLJQ$OOP\VHUYOHWV KDYHH[DFWO\RQHMRE

LPSRUWVWDWHPHQWV SXEOLFFODVV'DWLQJ6HUYOHWH[WHQGV+WWS6HUYOHW^ SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW   +WWS6HUYOHW5HVSRQVHUHVSRQVH  WKURZV,2([FHSWLRQ^ EXVLQHVVORJLFJRHVKHUHGHSHQGLQJ RQZKDWWKLVVHUYOHWLVVXSSRVHGWRGR  ZULWHWRWKHGDWDEDVHGRWKHTXHU\HWF 3ULQW:ULWHURXW UHVSRQVHJHW:ULWHU   FRPSRVHWKHG\QDPLF+70/SDJH RXWSULQWOQ ³VRPHWKLQJUHDOO\XJO\JRHVKHUH´  ` `

ZHEVHUYHUPDFKLQH        

       

       

,QSXW'4/6HUYOHW 'R'4/4XHU\6HUYOHW

6LJQXS6HUYOHW

'%

ZHE VHUYHUFRQWDLQHU

       

       

       

0DLQ3DJH6HUYOHW

,QSXW3URILOH&KDQJHV6HUYOHW

       

$FFHSW6LJQXS6HUYOHW

atever The servlet does whprocess to do to ds it nee ert or the request (like insse) and search the databa page in returns the HTML the HTTP response. ic All of the business log ML AND the client HTide the page response is ins e. cod t vle ser

$FFHSW3URILOH&KDQJHV6HUYOHW

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

%REDGGV-63V

*]\\PMVQ\OM\[]OTa[WPMILL[2;8[ 4HOSEPESKYPRINTLN STATEMENTSFORTHEOUTPUTRESPONSEGETREALLY UGLY REALLYQUICKLY3OHEREADSUPON*30SANDDECIDESTOHAVE EACHSERVLETDOWHATEVERBUSINESSLOGICITNEEDSTODOQUERYTHE DATABASE INSERTORUPDATEANEWRECORD ETC THENFORWARDTHEREQUEST TOA*30TODOTHE(4-,FORTHERESPONSE4HISALSOSEPARATESTHE BUSINESSLOGICFROMTHEPRESENTATIONANDSINCEHESBEENREADINGUP ONDESIGN HEKNOWSTHATSEPARATIONOFCONCERNSISA'OOD4HING

7KLV-63GHVLJQLVPXFK FRROHU1RZWKHVHUYOHWFRGHLV FOHDQHUHDFKVHUYOHWUXQVLWV RZQEXVLQHVVORJLFDQGWKHQLQYRNHVD VSHFLÀF-63WRKDQGOHWKH+70/IRU WKHUHVSRQVHVHSDUDWLQJEXVLQHVV ORJLFIURPSUHVHQWDWLRQ

LPSRUWVWDWHPHQWV SXEOLFFODVV'DWLQJ6HUYOHWH[WHQGV+WWS6HUYOHW^ SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW   +WWS6HUYOHW5HVSRQVHUHVSRQVH  WKURZV,2([FHSWLRQ^ EXVLQHVVORJLFJRHVKHUHGHSHQGLQJ RQZKDWWKLVVHUYOHWLVVXSSRVHGWRGR  ZULWHWRWKHGDWDEDVHGRWKHTXHU\HWF IRUZDUGWKHUHTXHVWWRDVSHFL¿F-63SDJH LQVWHDGRIWU\LQJWRSULQWWKH+70/ WRWKHRXWSXWVWUHDP ` `        

       

,QSXW6LJQXS6HUYOHW

$FFHSW6LJQXS6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

       

,QSXW3URILOH&KDQJHV6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

,QSXW6LJQXS-63

       

$FFHSW3URILOH&KDQJHV6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

$FFHSW6LJQXS-63

       

       

       

0DLQ3DJH6HUYOHW

,QSXW'4/6HUYOHW

'R'4O4XHU\6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

,QSXW3URILOH&KDQJHV-63

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

$FFHSW3URILOH&KDQJHV-63

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

0DLQ3DJH-63

,QSXW'4/-63





 :HE EURZVHU

3267'

R'4/4XH

+70/UHVS RQVH 

&OLHQW



U\

ZHE VHUYHUFRQWDLQHU

X

/4

'4

'R

HU\

       

'R'4/4XHU\6HUYOHW

6HOHFW

'%

OWV UHVX '4/  UHVXOWV 

+70/UHVSRQVH 

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

'R'4/4XHU\-63

'R'4/4XHU\-63

Client Þlls out the DQL query form and clicks the ÒDo itÓ button. This sends an HTTP POST request for the DoDQLQuery. The web server invokes the servlet, the servlet runs the query on the database, then the request is forwarded to the appropriate JSP. The JSP builds the response HTML and sends it back.

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

*]\\PMVPQ[NZQMVL[Ia[¹AW]):- ][QVO5>+ZQOP\ 'º +IMWANTSTOKNOWIFTHEDATINGSERVICECANBEACCESSEDFROM A3WING'5)APPLICATION"OBSAYS h.O )HADNTTHOUGHTOF THATv3O+IMSAYS h7ELL ITSNOTAPROBLEMBECAUSE)MSURE YOUUSED-6# SOWECANJUSTWHIPUPA3WING'5)CLIENT THATCANACCESSTHEBUSINESSLOGICCLASSESv

:KDWLI\RXZDQWWR PDNHD6ZLQJ*8,DSSIRU WKHGDWLQJVHUYLFHDQGLWXVHV WKHVDPHEXVLQHVVORJLF"

!ND"OBSAYS h'ULPv !ND+IMSAYS h$ONTTELLMEYOUDIDNOTUSE-6#v !ND"OBSAYS h7ELL )DIDSEPARATEOUTTHEPRESENTATIONFROM THEBUSINESSLOGICv +IMSAYS h4HATSASTARTBUTLETMEGUESSYOURBUSINESS LOGICISALLINSIDESERVLETSv "OBREALIZES SUDDENLY WHYHEWENTINTOMANAGEMENT "UTHESDETERMINEDTODOTHISRIGHT SOHEASKS+IMTOGIVE HIMAQUICKCRASHOVERVIEWOF-6#

:LWK09&WKHEXVLQHVVORJLFLVQRWRQO\ VHSDUDWHIURPWKHSUHVHQWDWLRQLWGRHVQ·W HYHQNQRZWKDWWKHUH,6DSUHVHQWDWLRQ 4HEESSENCEOF-6#ISTHATYOUSEPARATETHEBUSINESSLOGICFROM THEPRESENTATION BUTPUTSOMETHINGBETWEENTHEMSOTHATTHE BUSINESSLOGICCANSTANDONITSOWNASAREUSABLE*AVACLASS AND DOESNTHAVETOKNOWANYTHINGABOUTTHEVIEW "OBWASPARTLYTHERE BYSEPARATINGOUTTHEBUSINESSLOGICFROM THEPRESENTATION BUTHISBUSINESSLOGICSTILLHASANINTIMATE CONNECTIONTOTHEVIEW)NOTHERWORDS HEMIXEDTHEBUSINESSLOGIC INTOASERVLET ANDTHATMEANSHECANTREUSEHISBUSINESSLOGICFOR SOMEOTHERKINDOFVIEWLIKEA3WING'5)OREVENAWIRELESS APP (ISBUSINESSLOGICISSTUCKINASERVLETWHENITSHOULDBEIN ASTANDALONE*AVACLASSHECANREUSE

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

09&GHVLJQSDWWHUQ

QM_+WV\ZWTTMZ5>+ ,M[QOV8I\\MZVNQ`M[\PQ[ )F"OBHADUNDERSTOODTHE-6#DESIGNPATTERN HEWOULD HAVEKNOWNTHATTHEBUSINESSLOGICSHOULDNTBESTUFFED INSIDEASERVLET(EWOULDHAVEREALIZEDTHATWITHTHE BUSINESSLOGICEMBEDDEDINASERVLET HEDBESCREWEDIFHE ONEDAYNEEDEDADIFFERENTWAYTOACCESSTHEDATINGSERVICE ,IKEFROMA3WING'5)APP7ELLTALKALOTMOREABOUT-6# ANDOTHERPATTERNS LATERINTHEBOOK BUTYOUNEEDAQUICK UNDERSTANDINGNOWBECAUSETHETUTORIALAPPWEBUILDATTHE ENDOFTHISCHAPTERUSES-6#

0RGHO 9LHZ &RQWUROOHU 09& WDNHVWKHEXVLQHVV ORJLFRXWRIWKHVHUYOHW DQGSXWVLWLQD´0RGHOµ³ DUHXVDEOHSODLQROG -DYDFODVV7KH0RGHO LVDFRPELQDWLRQRIWKH EXVLQHVVGDWD OLNHWKH VWDWHRID6KRSSLQJ&DUW  DQGWKHPHWKRGV UXOHV  WKDWRSHUDWHRQWKDWGDWD

)FYOUREALREADYFAMILIARWITHIT THENYOUKNOWTHAT-6# ISNOTSPECIlCTOSERVLETSAND*30SˆTHECLEANSEPARATIONOF BUSINESSLOGICANDPRESENTATIONISJUSTASVALIDINANYOTHER KINDOFAPPLICATION"UTWITHWEBAPPS ITSREALLYIMPORTANT BECAUSEYOUSHOULDNEVERASSUMETHATYOURBUSINESSLOGIC WILLBEACCESSEDONLYFROMTHEWEB7ERESUREYOUVEWORKED INTHISBUSINESSLONGENOUGHTOKNOWTHEONLYGUARANTEEIN SOFTWAREDEVELOPMENTTHESPECALWAYSCHANGES

09&LQWKH6HUYOHW -63ZRUOG

&21752//(5 7DNHVXVHULQSXWIURPWKHUHTXHVW DQGÀJXUHVRXWZKDWLWPHDQVWR WKHPRGHO

Servlet

7HOOVWKHPRGHOWRXSGDWHLWVHOI DQGPDNHVWKHQHZPRGHOVWDWH DYDLODEOHIRUWKHYLHZ WKH-63 

&RQWUROOHU

02'(/

9,(: 5HVSRQVLEOHIRUWKH SUHVHQWDWLRQ,WJHWVWKHJSP VWDWHRIWKHPRGHOIURP WKH&RQWUROOHU DOWKRXJKQRW GLUHFWO\WKH&RQWUROOHUSXWV WKHPRGHOGDWDLQDSODFHZKHUH WKH9LHZFDQÀQGLW ,W·VDOVR WKHSDUWWKDWJHWVWKHXVHU LQSXWWKDWJRHVEDFNWRWKH &RQWUROOHU



+ROGVWKHUHDOEXVLQHVVORJLFDQGWKH VWDWH,QRWKHUZRUGVLWNQRZVWKH UXOHVIRUJHWWLQJDQGXSGDWLQJWKH VWDWH

JSP Plain old Java

FODVV)RR^ YRLGEDU  ^ GR%DU  ` `

$6KRSSLQJ&DUW·VFRQWHQWV DQGWKH UXOHVIRUZKDWWRGRZLWKLW ZRXOGEH SDUWRIWKH0RGHOLQ09&



9LHZ

0RGHO '%

,W·VWKHRQO\SDUWRIWKHV\VWHPWKDW WDONVWRWKHGDWDEDVH DOWKRXJKLW SUREDEO\XVHVDQRWKHUREMHFWIRUWKH DFWXDO'%FRPPXQLFDWLRQEXWZH·OO VDYHWKDWSDWWHUQIRUODWHU

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

)XXTaQVO\PM5>+XI\\MZV\W \PMUI\KPUISQVO_MJIXX 3O "OBKNOWSWHATHEHASTODO3EPARATEOUT THEBUSINESSLOGICFROMTHESERVLETS ANDCREATEA REGULAR*AVACLASSFOREACHONETOREPRESENTTHE -ODEL

w in the app, he nova For each pageCo a Ja r, lle ro nt has a servlet d a JSP View. class Model, an

4HENTHEORIGINALSERVLETWILLBETHE#ONTROLLER THE NEWBUSINESSLOGICCLASSWILLBETHE-ODEL ANDTHE *30WILLBETHE6IEW        

       

,QSXW6LJQXS0RGHO        

,QSXW6LJQXS6HUYOHW

$FFHSW6LJQXS0RGHO

       

$FFHSW6LJQXS6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

,QSXW6LJQXS-63

       

       

,QSXW3URILOH&KDQJHV0RGHO

       

,QSXW3URILOH&KDQJHV6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

$FFHSW6LJQXS-63

$FFHSW3URILOH&KDQJHV0RGHO        

$FFHSW3URILOH&KDQJHV6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

       

       

0DLQ3DJH0RGHO

,QSXW'4/0RGHO

'R'4O4XHU\0RGHO

       

       

       

0DLQ3DJH6HUYOHW

,QSXW'4/6HUYOHW

'R'4O4XHU\6HUYOHW

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

,QSXW3URILOH&KDQJHV-63

       

$FFHSW3URILOH&KDQJHV-63

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

0DLQ3DJH-63

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!

,QSXW'4/-63

'R'4/4XHU\-63

:KDWGR\RX WKLQN"$P,JRRGRU DP,JRRG"$SHUIHFW 09&GHVLJQ

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

\HDKEXWLVWKLVDJRRGGHVLJQ"

*]\\PMVPQ[NZQMVL3QU\ISM[ITWWS +IMCOMESINANDSAYSTHATWHILEIT)3AN-6#DESIGN ITSADUMB ONE3URE THEBUSINESSLOGICHASBEENPULLEDOUTINTOA-ODEL ANDTHESERVLETSACTASTHE#ONTROLLERSWORKINGBETWEENTHE -ODELSAND6IEWSSOTHATTHE-ODELSCANBEBRAIN DEADABOUT THE6IEWS4HATSALLGOOD"UTLOOKATALLTHOSELITTLESERVLETS 7HATDOTHEYEVENDO.OWTHATTHEBUSINESSLOGICISSAFELYTUCKED AWAYINTHE-ODEL THESERVLET#ONTROLLERISNTDOINGMUCH EXCEPTSOMEGENERICAPPLICATIONSTUFFFORTHISAPP AND OHYEAH ITDOESUPDATETHE-ODELANDTHENITKICKSTHE6IEWINTOGEAR

:KDWDFRPSOHWHO\ODPH GHVLJQ/RRNDWDOOWKH GXSOLFDWHFRGHLQHDFKVHUYOHW
"UTTHEWORSTPARTISTHATALLTHATGENERICAPPLICATIONLOGICIS DUPLICATEDINEVERYSINGLEFRICKINSERVLET)FONETHINGNEEDSTO CHANGE ITHASTOCHANGEEVERYWHERE!MAINTENANCETRAINWRECK WAITINGTOHAPPEN h9EAH )FELTALITTLEWEIRDABOUTTHEDUPLICATECODE hSAYS"OB hBUTWHATELSECAN)DO3URELYYOUDONTMEANFORMETOPUT EVERYTHINGINASINGLESERVLETAGAIN(OWCOULDTHATBEGOODv

&RPHRQ\RXGRQ·W 6(5,286/<H[SHFWPHWR SXWLWDOOEDFNLQRQHQRQ 22VHUYOHW



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

1[\PMZMIVIV[_MZ ' 6KRXOG%REJREDFNWRMXVW RQHVHUYOHW&RQWUROOHUWRDYRLG GXSOLFDWHFRGH":RXOGWKDWEHEDG 22EHFDXVHWKHVHUYOHWVUHDOO\DUH GRLQJGLIIHUHQWWKLQJV"'RHV.HDQX 5HHYHVUHDOO\NQRZ.XQJ)X"

#4X3X98 /HDYHWKLVIRU\RXWRSRQGHUZHZLOO :KDWGR\RXWKLQN"'R\RXNQRZWKH DQVZHU",6WKHUHDQDQVZHU":RXOG\RX DJUHHZLWK%REDQGOHDYHWKHVHUYOHWV DVWKH\DUHRUZRXOG\RXSXWWKHFRGH LQWRMXVWRQHVHUYOHW&RQWUROOHU"$QG LI\RXGRXVHMXVWRQH&RQWUROOHUIRU HYHU\WKLQJKRZZLOOWKH&RQWUROOHU NQRZZKLFK0RGHODQG9LHZWR FDOO" 7KHDQVZHUWRWKLVTXHVWLRQZRQ¶W FRPHXQWLOWKHYHU\HQGRIWKHERRNVR WKLQNDERXWWKLVIRUDIHZPRPHQWVWKHQ SXWLWLQDPHQWDOEDFNJURXQGWKUHDG \RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

FKDSWHUUHÀHFWLRQ

6KDUSHQ \RXU SHQFLO 

8VLQJ09&LQDVHUYOHW -63ZRUOGHDFK RIWKHVHWKUHHFRPSRQHQWV -63-DYDFODVV 6HUYOHW SOD\VRQHRIWKHWKUHH09&UROHV&LUFOH WKH´0µWKH´9µRUWKH´&µGHSHQGLQJRQZKLFK 09&SDUWWKDWFRPSRQHQWSOD\V&LUFOHRQO\RQH OHWWHUSHUFRPSRQHQW

0 9 & -63

FODVV)RR^ YRLGEDU  ^ GR%DU  ` `

0 9 &



QRQVHUYOHW -DYDFODVV

:MDD=LHGAFLK

ƒ 7KH&RQWDLQHUJLYHV\RXUZHEDSS FRPPXQLFDWLRQVVXSSRUWOLIHF\FOH PDQDJHPHQWPXOWLWKUHDGLQJVXSSRUW GHFODUDWLYHVHFXULW\DQGVXSSRUWIRU-63V VRWKDW\RXFDQFRQFHQWUDWHRI\RXURZQ EXVLQHVVORJLF

ƒ 7KH&RQWDLQHUFUHDWHVDUHTXHVWDQG UHVSRQVHREMHFWWKDWVHUYOHWV DQGRWKHUSDUWV RIWKHZHEDSS FDQXVHWRJHWLQIRUPDWLRQ DERXWWKHUHTXHVWDQGVHQGLQIRUPDWLRQWRWKH FOLHQW

ƒ $W\SLFDOVHUYOHWLVDFODVVWKDWH[WHQGV

6HUYOHW

0 9 &

+WWS6HUYOHW5HTXHVWDQGRYHUULGHVRQHRU PRUHVHUYLFHPHWKRGVWKDWFRUUHVSRQGWR +773PHWKRGVLQYRNHGE\WKHEURZVHU GR*HW GR3RVW HWF 

ƒ 7KHGHSOR\HUFDQPDSDVHUYOHWFODVVWRD 85/WKDWWKHFOLHQWFDQXVHWRUHTXHVWWKDW VHUYOHW7KHQDPHPD\KDYHQRWKLQJWRGR ZLWKWKHDFWXDOFODVVILOHQDPH



:KDWGRWKHOHWWHUV09&UHSUHVHQWLQWKH09& GHVLJQSDWWHUQ"

0VWDQGVIRUBBBBBBBBBBBBBBBBBBBBBBBB 9VWDQGVIRUBBBBBBBBBBBBBBBBBBBBBBBB &VWDQGVIRUBBBBBBBBBBBBBBBBBBBBBBBB



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

6KDUSHQ \RXU SHQFLO

:KR·VUHVSRQVLEOH" )LOOLQWKHWDEOHEHORZLQGLFDWLQJZKHWKHUWKHZHEVHUYHUWKHZHEFRQWDLQHURU DVHUYOHWLVPRVWUHVSRQVLEOHIRUWKHWDVNOLVWHG,QDIHZFDVHVPRUHWKDQRQH DQVZHUPD\EHWUXHIRUDJLYHQWDVN)RUH[WUDFUHGLWDGGDEULHIFRPPHQW GHVFULELQJWKHSURFHVV

7DVN

:HEVHUYHU

&RQWDLQHU

6HUYOHW

&UHDWHVWKHUHTXHVW UHVSRQVHREMHFWV

&DOOVWKHVHUYLFH PHWKRG

6WDUWVDQHZWKUHDGWRKDQGOHUHTXHVWV

&RQYHUWVDUHVSRQVHREMHFWWRDQ+773 UHVSRQVH

.QRZV+773

$GGV+70/WRWKHUHVSRQVHREMHFW

+DVDUHIHUHQFHWRWKHUHVSRQVHREMHFWV

)LQGV85/VLQWKH'' 'HOHWHVWKHUHTXHVWDQGUHVSRQVHREMHFWV

&RRUGLQDWHVPDNLQJG\QDPLFFRQWHQW 0DQDJHVOLIHF\FOHV +DVDQDPHWKDWPDWFKHVWKH VHUYOHWFODVV!HOHPHQWLQWKH''

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

VHUYOHWDQG''H[HUFLVH

&RGH0DJQHWV !WORKINGSERVLET ANDITS$$ARESCRAMBLEDUPON THEFRIDGE#ANYOUADDTHECODESNIPPETSONTHE RIGHTTOTHEINCOMPLETELISTINGSONTHELEFTTOMAKE AWORKINGSERVLETAND$$WHOSE52,ENDSWITH $ICE4HEREMIGHTBESOMEEXTRAMAGNETSONTHE RIGHTTHATYOUWONTUSEATALL

([HUFLVH 6HUYOHW SXEOLFFODVV

H[WHQGV+WWS6HUYOHW^

SXEOLFYRLGGR*HW

WKURZV,2([FHSWLRQ^

6WULQJG ,QWHJHUWR6WULQJ LQW 0DWKUDQGRP    6WULQJG ,QWHJHUWR6WULQJ LQW 0DWKUDQGRP    RXWSULQWOQ ³KWPO!ERG\!´  ³KDOLJQ FHQWHU!+)?¶V&KDS'LFH5ROOHUK!´  ³S!´G³DQG³G³ZHUHUROOHG´  ³ERG\!KWPO!´  ` `

'' ZHEDSS!

(Remember, this isnÕt the complete opening tag--a complete example is at the end of this chapter. It doesnÕt affect this exercise.) &GLFHVHUYOHWQDPH!

ZHEDSS!



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

&RGH0DJQHWVFRQWLQXHG LPSRUWMDYD[VHUYOHW  LPSRUWMDYD[VHUYOHWKWWS  LPSRUWMDYDLR 

SXEOLFYRLGVHUYLFH

XUOSDWWHUQ!

&GLFH

&K'LFH VHUYOHWQDPH!

6HUYOHW5HTXHVWUHTXHVW

3ULQW:ULWHURXW UHV SRQVHJHW:ULWHU 

+WWS6HUYOHW5HVSRQVHUHVSRQVH

VHUYOHWPDSSLQJ! &GLFH

VSRQVH 6HUYOHW5HVSRQVHUH

VHUYOHWQDPH!

VHUYOHWFODVV!

'LFH

&K'LFH

+WWS6HUYOHW5HTXHVWUHTXHVW

VHUYOHW!

 3ULQW:ULWHURXW UHTXHVWJHW:ULWHU 'LFH

&K'LFH

! VHUYOHWFODVV

VHUYOHW QDPH! XUOSDWWHUQ! VHUYOHW!

VHUYOHWPDSSLQJ!

\RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

UHVSRQVLELOLW\H[HUFLVHVROXWLRQ

([HUFLVH6ROXWLRQV

:HEVHUYHU

7DVN

&DOOVWKHVHUYLFH PHWKRG

6WDUWVDQHZWKUHDGWRKDQGOHUHTXHVWV

&RQYHUWVDUHVSRQVHREMHFWWRDQ+773 UHVSRQVH

.QRZV+773

&RQWDLQHU

Gets the response from the container. Uses it to talk to the client browser.

$GGV+70/WRWKHUHVSRQVHREMHFW

+DVDUHIHUHQFHWRWKHUHVSRQVHREMHFWV

Container gives it the servlet.

)LQGV85/VLQWKH''

To Þnd the correct servlet for the request.

'HOHWHVWKHUHTXHVWDQGUHVSRQVHREMHFWV

&RRUGLQDWHVPDNLQJG\QDPLFFRQWHQW 0DQDJHVOLIHF\FOHV +DVDQDPHWKDWPDWFKHVWKH VHUYOHWFODVV!HOHPHQWLQWKH''



6HUYOHW

Just before starting the thread. Then service() method calls doGet() or doPost(). Starts a servlet thread.

&UHDWHVWKHUHTXHVW UHVSRQVHREMHFWV

Knows how to forward to the Container.

The dynamic content for the client. Uses it to print a response.

Once the servlet is Þnished. Knows who to call. Calls service method (and others youÕll see). public class Whatever

FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

([HUFLVH6ROXWLRQV FRQWLQXHG

6HUYOHW LPSRUWMDYD[VHUYOHW  LPSRUWMDYD[VHUYOHWKWWS  LPSRUWMDYDLR  SXEOLFFODVV

&K'LFH

SXEOLFYRLGGR*HW

H[WHQGV+WWS6HUYOHW^

+WWS6HUYOHW5HTXHVWUHTXHVW +WWS6HUYOHW5HVSRQVHUHVSRQVH WKURZV,2([FHSWLRQ^

3ULQW:ULWHURXW UHVSRQVHJHW:ULWHU  6WULQJG ,QWHJHUWR6WULQJ LQW 0DWKUDQGRP    6WULQJG ,QWHJHUWR6WULQJ LQW 0DWKUDQGRP    RXWSULQWOQ ³KWPO!ERG\!´  ³KDOLJQ FHQWHU!+)?¶V&KDS'LFH5ROOHUK!´  ³S!´G³DQG³G³ZHUHUROOHG´  ³ERG\!KWPO!´  ` `

'' ZHEDSS! VHUYOHW! VHUYOHWQDPH! VHUYOHWFODVV!

&GLFHVHUYOHWQDPH! &K'LFH

VHUYOHWFODVV!

VHUYOHW! VHUYOHWPDSSLQJ! VHUYOHWQDPH! XUOSDWWHUQ!

&GLFH

VHUYOHWQDPH!

'LFH

XUOSDWWHUQ!

VHUYOHWPDSSLQJ! ZHEDSS! \RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

WZRREMHFWVWZRKHDSV

)¹_WZSQVOº,MXTWaUMV\,M[KZQX\WZ,, $ONTWORRYABOUTWHATANYOFTHISREALLYMEANSYOULLSEEANDBE TESTEDONTHISINOTHERCHAPTERS (ERE WEJUSTWANTEDTOSHOWYOUA WEBXML$$THATACTUALLYWORKS4HEOTHEREXAMPLESINTHISCHAPTER WEREMISSINGALOTOFTHEPIECESTHATGOINTOTHEOPENINGWEB APP TAG9OUCANSEEWHYWEDONTUSUALLYINCLUDEITINOUREXAMPLES 7KHZD\ZHXVXDOO\VKRZLWLQWKHERRN ZHEDSS!

eb-app> This opening
VHUYOHW! VHUYOHWQDPH!&K%HHUVHUYOHWQDPH! VHUYOHWFODVV!FRPH[DPSOHZHE%HHU6HOHFWVHUYOHWFODVV! VHUYOHW!  VHUYOHWPDSSLQJ! VHUYOHWQDPH!&K%HHUVHUYOHWQDPH! XUOSDWWHUQ!6HOHFW%HHUGRXUOSDWWHUQ! VHUYOHWPDSSLQJ!  ZHEDSS!

7KHZD\LW5($//<ZRUNV

of this to memorize any You do NOT haerve. Just copy it in when opening tag, ev ntainer thatÕs compliant youÕre using a Coc 2.4 (like Tomcat 5). with servlet spe

ZHEDSS[POQV ´KWWSMDYDVXQFRP[POQVMHH´ [POQV[VL ´KWWSZZZZRUJ;0/6FKHPDLQVWDQFH´ [VLVFKHPD/RFDWLRQ ´KWWSMDYDVXQFRP[POQVMHHZHEDSSBB[VG´ YHUVLRQ ´´! VHUYOHW! VHUYOHWQDPH!&K%HHUVHUYOHWQDPH! VHUYOHWFODVV!FRPH[DPSOHZHE%HHU6HOHFWVHUYOHWFODVV! VHUYOHW!  VHUYOHWPDSSLQJ! VHUYOHWQDPH!&K%HHUVHUYOHWQDPH! XUOSDWWHUQ!6HOHFW%HHUGRXUOSDWWHUQ! VHUYOHWPDSSLQJ!  ZHEDSS!



FKDSWHU

Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 2. Web App Architecture

KLJKOHYHODUFKLWHFWXUH

0W_2--NQ\[QV\WITT\PQ[ 4HE*AVA%NTERPRISE%DITIONISKINDOFASUPER SPECˆITINCORPORATESOTHERSPECIFCATIONS INCLUDING THE3ERVLETSSPECANDTHE*30SPEC4HATSFOR THEWEB#ONTAINER"UTTHE*%%SPECALSOINCLUDES THE%NTERPRISE*AVA"EANSPECIlCATION FORTHE%*" #ONTAINER)NOTHERWORDS THEWEB#ONTAINERISFORWEB COMPONENTS3ERVLETSAND*30S ANDTHE%*"#ONTAINER ISFORBUSINESSCOMPONENTS !FULLY COMPLIANT*%%APPLICATIONSERVERMUSTHAVEBOTH AWEB#ONTAINERANDAN%*"#ONTAINERPLUSOTHERTHINGS INCLUDINGA*.$)AND*-3IMPLEMENTATION 4OMCAT ISJUSTAWEB#ONTAINER)TISSTILLCOMPLIANTWITHTHE PORTIONSOFTHE*%%SPECTHATADDRESSTHEWEB#ONTAINER 4OMCATISAWEB#ONTAINER NOTAFULL*%%APPLICATION SERVER BECAUSE4OMCATDOESNOTHAVEAN%*"#ONTAINER

$-((DSSOLFDWLRQVHUYHU LQFOXGHVERWKDZHE &RQWDLQHU$1'DQ(-% &RQWDLQHU 7RPFDWLVDZHE&RQWDLQHU EXW127DIXOO-(( DSSOLFDWLRQVHUYHU $-((VHUYHULQFOXGHV WKH6HUYOHWVSHF-63 VSHFDQG(-%VSHF

-(($SSOLFDWLRQ6HUYHU :HE&RQWDLQHU

(-%&RQWDLQHU

6HUYOHW KWPO! ERG\! MVSVHW3URSHUW\ QDPH ´IRR´ SURSHUW\ ´EDU´! ERG\! KWPO!

6HUYOHWV -63V

4

3O4OMCATISASTANDALONEWEB#ONTAINERDOES THATMEANTHEREARESTANDALONE%*"#ONTAINERS

$

)NTHEOLDDAYS SAY THEYEAR YOUCOULDFIND COMPLETE*%%APPLICATIONSERVERS STANDALONEWEB#ON TAINERS ANDSTANDALONE%*"#ONTAINERS"UTTODAY VIRTUALLY ALL%*"#ONTAINERSAREPARTOFFULL*%%SERVERS ALTHOUGH THEREARESTILLAFEWSTANDLONEWEB#ONTAINERS INCLUDING

'%

(QWHUSULVH-DYD%HDQV

4OMCATAND2ESIN3TANDALONEWEB#ONTAINERSAREUSUALLY CONFIGUREDTOWORKWITHAN(440WEBSERVERLIKE!PACHE ALTHOUGHTHE4OMCAT#ONTAINERDOESHAVETHEABILITYTO ACTASABASIC(440SERVER"UTFOR(440SERVERCAPABILITY 4OMCATISNOTNEARLYASROBUSTAS!PACHE SOTHEMOSTCOM MONNON %*"WEBAPPSUSUALLYUSE!PACHEAND4OMCAT CONFIGUREDTOGETHERˆWITH!PACHEASTHE(440WEB3ERVER AND4OMCATASTHEWEB#ONTAINER 3OMEOFTHEMOSTCOMMON*%%SERVERSARE"%!S 7EB,OGIC THEOPENSOURCE*"OSS!3 AND)"-S7EB3PHERE \RXDUHKHUH



Chapter 2. Web App Architecture Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] Print Publication Date: 8/1/2004 User number: 747221 Copyright 2006, 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&

0LQL09&7XWRULDO +HPD\ORRNWRXJKEXW KHKDVQHYHUFUHDWHGDQG GHSOR\HGDQ09&ZHEDSS ,KHDUGWKDWKHVWLOO FRGHVDOOKLVSUHVHQWDWLRQ ORJLFLQVHUYOHWV-XVWWKLQN KH·GEHDEODFNEHOWE\QRZLI KH·GEHHQXVLQJ-63V

&UHDWHDQGGHSOR\DQ09&ZHEDSS,W¶VWLPHWRJHW\RXUKDQGV GLUW\ZULWLQJDQ+70/IRUPDVHUYOHWFRQWUROOHUDPRGHO SODLQROG-DYDFODVV DQ ;0/GHSOR\PHQWGHVFULSWRUDQGD-63YLHZ7LPHWREXLOGLWGHSOR\LWDQGWHVWLW %XW¿UVW\RXQHHGWRVHWXS\RXUGHYHORSPHQWHQYLURQPHQW²DSURMHFWGLUHFWRU\ VWUXFWXUHWKDW¶VVHSDUDWHIURP\RXUDFWXDOGHSOR\HGDSS1H[W\RXQHHGWRVHWXS \RXUGHSOR\PHQWHQYLURQPHQWIROORZLQJWKHVHUYOHWDQG-63VSHFVDQG7RPFDW UHTXLUHPHQWV7KHQ\RX¶UHUHDG\WRVWDUWZULWLQJFRPSLOLQJGHSOR\LQJDQGUXQQLQJ 7UXHWKLVLVDYHU\VPDOODSSZH¶UHEXLOGLQJ%XWWKHUH¶VDOPRVW12DSSWKDW¶VWRR VPDOOWRXVH09&%HFDXVHWRGD\¶VVPDOODSSLVWRPRUURZ¶VGRWFRPVXFFHVV

WKLVLVDQHZFKDSWHU



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

RI¿FLDO6XQH[DPREMHFWLYHV

:HE$SSOLFDWLRQ'HSOR\PHQW

&RYHUDJH1RWHV

Copyright Safari Books Online #747221  &RQVWUXFWWKH¿OHDQGGLUHFWRU\VWUXFWXUHRIDZHE

DSSOLFDWLRQWKDWPD\FRQWDLQ D VWDWLFFRQWHQW E  -63SDJHV F VHUYOHWFODVVHV G WKHGHSOR\PHQW GHVFULSWRU H WDJOLEUDULHV I -$5¿OHVDQG J  -DYDFODVV¿OHV'HVFULEHKRZWRSURWHFWUHVRXUFH ¿OHVIURP+773DFFHVV

 'HVFULEHWKHSXUSRVHDQGVHPDQWLFVIRUHDFKRI WKHIROORZLQJGHSOR\PHQWGHVFULSWRUHOHPHQWV HUURUSDJHLQLWSDUDPPLPHPDSSLQJVHUYOHW VHUYOHWFODVVVHUYOHWPDSSLQJVHUYOHWQDPHDQG ZHOFRPH¿OH

!LLOFTHEOBJECTIVESINTHISSECTIONARECOVERED COMPLETELYINTHE$EPLOYMENTCHAPTERTHIS ISJUSTAlRSTLOOK4HISCHAPTERISTHEONLY COMPLETESTART TO lNISHTUTORIALINTHEBOOK SO IFYOUSKIPIT YOUMIGHTHAVETROUBLELATER TESTINGSOMEOFTHEOTHEREXAMPLESINLATER CHAPTERSWHEREWEDONTGOTHROUGHEVERY DETAILAGAIN  !SWITHTHEPREVIOUSTWOCHAPTERS YOUDONT NEEDTOFOCUSONMEMORIZINGTHECONTENTINTHIS CHAPTER*USTGETINTHEREANDDOIT

 &RQVWUXFWWKHFRUUHFWVWUXFWXUHIRUHDFKRIWKH IROORZLQJGHSOR\PHQWGHVFULSWRUHOHPHQWV HUURUSDJHLQLWSDUDPPLPHPDSSLQJVHUYOHW VHUYOHWFODVVVHUYOHWQDPHDQGZHOFRPH¿OH



FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&

4M\¼[J]QTLIZMIT[UITT_MJIXXTQKI\QWV 7ELOOKEDATTHEROLEOFACONTAINER WETALKEDABITABOUT DEPLOYMENTDESCRIPTORS ANDWETOOKAlRSTLOOKATTHE-ODEL -6#ARCHITECTURE"UTYOUCANTJUSTSITHEREANDREADALLDAYˆ NOWITSTIMETOACTUALLYDOSOMETHING

7KHIRXUVWHSVZH·OOIROORZ %HHU5HFRPPHQGDWLRQV-63

 5HYLHZWKHXVHU¶VYLHZV ZKDWWKHEURZVHU

WU\-DFN·V3DOH$OH WU\*RXW6WRXW

ZLOOGLVSOD\ DQGWKHKLJKOHYHODUFKLWHFWXUH

0\3URMHFWV

 &UHDWHWKHGHYHORSPHQWHQYLURQPHQWWKDWZH GDWLQJ$SS

ZLOOXVHIRUWKLVSURMHFW ZKLFK\RXFDQXVHIRU DQ\RWKHUH[DPSOHLQWKHERRN  HWF

EHHU9

ZHE

FODVVHV

VUF

OLE





ZHEDSS!   ZHEDSS!

FRP

FRP

UHVXOWMVS

ZHE[PO

H[DPSOH

WRPFDW WRPFDW

ZHE

 &UHDWHWKHGHSOR\PHQW

ZHEDSSV

HQYLURQPHQWWKDWZHZLOOXVHIRU WKLVSURMHFW ZKLFK\RXFDQXVHIRU DQ\RWKHUH[DPSOHLQWKHERRN 

%HHUY



KWPO! ERG\!  ERG\! KWPO!

:(%,1)

IRUPKWPO



  !

UHVXOWMVS

KWPO! ERG\!  ERG\! KWPO!

  !



SXEOLF FODVV

6HUYOHW H[WHQGV +WWS6HUY OHW^`

%HHU6HOHFWMDYD

IRUPKWPO

H[DPSOH

PRGHO

ZHE

PRGHO





JHW %UDQGV  ^  `

   

   

%HHU6HOHFWFODVV

%HHU([SHUWFODVV

%HHU([SHUWMDYD





OLE

FODVVHV

ZHEDSS!   ZHEDSS!

ZHE[PO FRP

H[DPSOH

ZHE



PRGHO

desi



   

   

%HHU6HOHFWFODVV

%HHU([SHUWFODVV

gn

 3HUIRUPLWHUDWLYHGHYHORSPHQWDQGWHVWLQJRQWKH

code

1RWH:HUHFRPPHQGLWHUDWLYHGHYHORSPHQWDQGWHVWLQJ DOWKRXJKZHZRQ¶WDOZD\VVKRZDOOWKHVWHSVLQWKLVERRN

test

YDULRXVFRPSRQHQWVRIRXUZHEDSSOLFDWLRQ 2. WKLVLVPRUHRIDVWUDWHJ\WKDQDVWHS

\RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

XVHUYLHZV

QM_WN\PM_MJIXXTQKI\QWV¸ I*MMZ)L^Q[WZ /URWEBAPPLICATIONISA"EER!DVISOR5SERSWILLBEABLETO SURFTOOURAPP ANSWERAQUESTION ANDGETBACKSTUNNINGLY USEFULBEERADVICE

This page will be written in HTML, and will generate an HTTP Post request, sending the userÕs color selection as a parameter.

This page will be a JSP that Õsgives ce. the advice based on the user choi %HHU5HFRPPHQGDWLRQV-63 WU\-DFN·V3DOH$OH WU\*RXW6WRXW

4

7HYAREWEWRITINGAWEB APPLICATIONTHATGIVESBEERADVICE

$

!FTERANEXHAUSTIVEMARKETING RESEARCHEFFORT WECONCLUDEDTHAT OFOURREADERSAPPRECIATEBEER 4HEOTHERCANSIMPLYSUBSTITUTE THEWORDhCOFFEEvFORhBEERv



FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&

0MZM¼[\PMIZKPQ\MK\]ZM %VENTHOUGHTHISISATINYAPPLICATION WELLBUILDITUSINGASIMPLE -6#ARCHITECTURE4HATWAY WHENITBECOMES4(%HOTTESTSITEON THEWEB WELLBEREADYTOEXTENDTHEAPPLICATION

:HE6HUYHU :HE EURZVHU

&RQWDLQHU

 :HE 6HUYHU ORJLF

 &OLHQW

7KHFOLHQWPDNHVDUHTXHVW IRUWKHIRUPKWPOSDJH

&RQWDLQHU ORJLF



KWPO! KHDG! KHDG!

7KH&RQWDLQHUUHWULHYHVWKH IRUPKWPOSDJH

Controller Model

VHUYOHW

ERG\!  ERG\! KWPO! KWPO! KHDG! KHDG!

IRUPKWPO

ERG\!  ERG\! KWPO!

View

%HHU([SHUW FRPSRQHQW

UHVXOWMVS

7KH&RQWDLQHUUHWXUQVWKH SDJHWRWKHEURZVHUZKHUHWKH XVHUDQVZHUVWKHTXHVWLRQVRQ WKHIRUPDQG

(Plain Just a POJObject). O a av Old J 7KHEURZVHUVHQGVWKH UHTXHVWGDWDWRWKHFRQWDLQHU 7KH&RQWDLQHUILQGVWKH FRUUHFWVHUYOHWEDVHGRQWKH 85/DQGSDVVHVWKHUHTXHVWWR WKHVHUYOHW

&RQWDLQHU :HE EURZVHU

 

&RQWDLQHU ORJLF

7KHVHUYOHWFDOOVWKH %HHU([SHUWIRUKHOS



&OLHQW

7KHH[SHUWFODVVUHWXUQVDQ DQVZHUZKLFKWKHVHUYOHWDGGV WRWKHUHTXHVWREMHFW



KWPO! KHDG! KHDG! ERG\!  ERG\! KWPO!

UHVXOWMVS

From here on out when you donÕt see the web server, assume itÕs there.



VHUYOHW 



%HHU([SHUW FRPSRQHQW

 UHTXHVW

7KHVHUYOHWIRUZDUGVWKH UHTXHVWWRWKH-63 7KH-63JHWVWKHDQVZHU IURPWKHUHTXHVWREMHFW 7KH-63JHQHUDWHVDSDJH IRUWKH&RQWDLQHU 7KHFRQWDLQHUUHWXUQVWKH SDJHWRWKHKDSS\XVHU \RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

GHYHORSPHQWHQYLURQPHQW

+ZMI\QVOaW]ZLM^MTWXUMV\MV^QZWVUMV\ 4HEREARELOTSOFWAYSYOUCOULDORGANIZEYOURDEVELOPMENTDIRECTORYSTRUCTURE BUT HERESWHATWERECOMMENDFORSMALL ANDMEDIUM SIZEDPROJECTS7HENITSTIME TODEPLOYTHEWEBAPP WELLCOPYAPORTIONOFTHISINTOWHEREVEROURPARTICULAR #ONTAINERWANTSTHEPIECESTOGO)NTHISTUTORIAL WEREUSING4OMCAT

Somewhere on your hard drive... (You donÕt need this directory for the tutorial.)

HWF



ZHEDSS!   ZHEDSS!

0\3URMHFWV

GDWLQJ$SS

EHHU9

VUF

OLE

This is where you put 3rd party JAR Þles (from servlets-R-us).



SXEOLF FODVV

6HUYOHW H[WHQGV +WWS6HUY OHW^`

%HHU6HOHFWMDYD

  !

FRP

y This directisorderived structure mpile when you coclasses your Java (using -d ).

H[DPSOH

ZHE

ZHE



FRP

This is where your conÞguration Þle goes.

Your static and dynamic view components go here.

FODVVHV

All of your Java code lives under the src directory.

ZHE[PO

WeÕre of course using a standard package structure so that we get all the normal beneÞts of packages: - project organization - namespace management - portability and reusability

Put each web app in its own project directory.

PRGHO

UHVXOWMVS

IRUPKWPO

PRGHO







JHW %UDQGV  ^  `

   

   

%HHU6HOHFWFODVV

%HHU([SHUWFODVV

%HHU([SHUWMDYD

KWPO! ERG\!  ERG\! KWPO!

Examples of some view components.

H[DPSOH

ZHE



Notice that weÕre separating the controller components from the model components.

FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&

+ZMI\QVO\PMLMXTWaUMV\MV^QZWVUMV\

This is the directory; itTomimcat home named somethingght be else like: jakarta-tomcat -5.0.19.

$EPLOYINGAWEBAPPINVOLVESBOTH#ONTAINER SPECIlCRULESAND REQUIREMENTSOFTHE3ERVLETSAND*30SPECIlCATIONS)FYOURENOT DEPLOYINGTO4OMCAT YOULLHAVETOlGUREOUTEXACTLYWHEREYOURWEB APPSHOULDBERELATIVETOYOUR#ONTAINER )NOUREXAMPLE EVERYTHING BELOWTHEh"EER VvDIRECTORYISTHESAMEREGARDLESSOFYOUR#ONTAINER WRPFDW WRPFDW

7RPFDWVSHFLÀF

This part of the directory structure is required by Tomcat, and it must be directly inside the Tomcat home directory.

ZHEDSSV

This directory name also represents the Òcontext rootÓ which Tomcat uses when resolving URLs. WeÕll explore this concept in great detail in the deployment chapter.

The name of the web app.

%HHUY

Everything BELOW this dotted line IS the webapp, and will be the same regardless of your Container vendor.

:(%,1)

3DUWRIWKH6HUYOHWV VSHFLÀFDWLRQ





KWPO! ERG\!  ERG\! KWPO!

  !

IRUPKWPO 

OLE

FODVVHV

ZHEDSS!   ZHEDSS!

UHVXOWMVS

This web.xml Þle MUST be in WEB-INF

ZHE[PO FRP

This package structure is exactly what we used in the development environment. Unless youÕre deploying your classes in a JAR (weÕll talk about that later in the book), then you MUST put the package directory structure immediately under WEB-INF/classes.

$SSOLFDWLRQVSHFLÀF H[DPSOH

ZHE

PRGHO





   

   

%HHU6HOHFWFODVV

%HHU([SHUWFODVV

\RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

EXLOGLQJWKHDSS

7]ZZWILUIXNWZJ]QTLQVO\PMIXX 7HENWESTARTEDTHISCHAPTERWEOUTLINEDAFOUR STEPPROCESSFORDEVELOPINGOURWEBAPP 3OFARWEVE  REVIEWEDTHEUSERVIEWSFOROURWEBAPP  LOOKEDATTHEARCHITECTURE  SETUPTHEDEVELOPMENTANDDEPLOYMENTENVIRONMENTSFORCREATINGANDDEPLOYINGTHEAPP .OWITSTIMEFORSTEP CREATINGTHEAPP 7EBORROWFROMSEVERALPOPULARDEVELOPMENTMETHODOLOGIESALITTLEFROMEXTREME PROGRAMMING ITERATIVEDEVELOPMENT ANDMANGLETHEMFOROUROWNEVILPURPOSES

7KHILYHVWHSVZH·OOIROORZ LQVWHS 



D

%XLOGDQGWHVWWKH+70/IRUPWKDWWKHXVHUZLOO¿UVWUHTXHVW

E

%XLOGDQGWHVWYHUVLRQRIWKHFRQWUROOHUVHUYOHWZLWKWKH +70/IRUP7KLVYHUVLRQLVLQYRNHGYLDWKH+70/IRUPDQG SULQWVWKHSDUDPHWHULWUHFHLYHV

F

%XLOGDWHVWFODVVIRUWKHH[SHUWPRGHOFODVVWKHQEXLOGDQG WHVWWKHH[SHUWPRGHOFODVVLWVHOI

G

8SJUDGHWKHVHUYOHWWRYHUVLRQ7KLVYHUVLRQDGGVWKH FDSDELOLW\RIFDOOLQJWKHPRGHOFODVVWRJHWEHHUDGYLFH

H

%XLOGWKH-63XSJUDGHWKHVHUYOHWWRYHUVLRQ ZKLFKDGGV WKHFDSDELOLW\RIGLVSDWFKLQJWRWKH-63 DQGWHVWWKHZKROHDSS

FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&


KWPO!ERG\! KDOLJQ ´FHQWHU´!%HHU6HOHFWLRQ3DJHK! IRUPPHWKRG ´3267´ DFWLRQ ´6HOHFW%HHUGR´! 6HOHFWEHHUFKDUDFWHULVWLFVS! &RORU VHOHFWQDPH ´FRORU´VL]H ´´!

Why did we choose POST instead of GET ? This is what the HTML thinks the servlet is called. There is NOTHING in your directory structure named ÒSelectBeer.doÓ! ItÕs a logical name...

RSWLRQ!OLJKW RSWLRQ!DPEHU RSWLRQ!EURZQ RSWLRQ!GDUN

This is how we created the pull down menu, your options may vary. (Did you Þgure out size=Ò1Ó ?)

VHOHFW! EU!EU! FHQWHU! LQSXWW\SH ´68%0,7´! FHQWHU! IRUP!ERG\!KWPO!

4

7HYISTHEFORMSUBMITTINGTOh3ELECT"EERDOvWHENTHEREIS./SERVLETWITH THATNAME)NTHEDIRECTORYSTRUCTURESWELOOKEDATEARLIER )DIDNTSEEANYTHINGTHAT HADTHENAMEh3ELECT"EERDOv!NDWHATSWITHTHEhDOvEXTENSIONANYWAY

$

3ELECT"EERDOISALOGICALNAME NOTANACTUALFILENAME)TSSIMPLYTHENAMEWE WANTTHECLIENTTOUSE)NFACTTHECLIENTWILL.%6%2HAVEDIRECTACCESSTOTHESERVLETCLASS FILE SOYOUWONT FOREXAMPLE CREATEAN(4-,PAGEWITHALINKORACTIONTHATINCLUDESA PATHTOASERVLETCLASSFILE 4HETRICKIS WELLUSETHE8-,$EPLOYMENT$ESCRIPTORWEBXML TOMAPFROMWHATTHE CLIENTREQUESTSh3ELECT"EERDOv TOANACTUALSERVLETCLASSFILETHE#ONTAINERWILLUSEWHEN AREQUESTCOMESINFORh3ELECT"EERDOv&ORNOW THINKOFTHEhDOvEXTENSIONASSIMPLYPART OFTHELOGICALNAMEANDNOTAREALFILETYPE ,ATERINTHEBOOK YOULLLEARNABOUTOTHER WAYSINWHICHYOUCANUSEEXTENSIONSREALORMADE UPLOGICAL INYOURSERVLETMAPPINGS

\RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

GHSOR\LQJDQGWHVWLQJ

,MXTWaQVOIVL\M[\QVO\PMWXMVQVOXIOM 4OTESTIT YOUNEEDTODEPLOYITINTOTHE#ONTAINER4OMCAT DIRECTORY STRUCTURE START4OMCAT ANDBRINGUPTHEPAGEINABROWSER WRPFDW



&UHDWHWKH+70/LQ\RXUGHYHORSPHQWHQYLURQPHQW &UHDWHWKLV+70/¿OHFDOOLWIRUPKWPODQGVDYHLWLQ\RXUGHYHORSPHQW HQYLURQPHQWXQGHUWKHEHHU9ZHEGLUHFWRU\



%HHUY

&RS\WKHÀOHLQWRWKHGHSOR\PHQWHQYLURQPHQW 3ODFHDFRS\RIWKHIRUPKWPO¿OHLQWRWRPFDWZHEDSSV%HHUY 5HPHPEHU\RXUWRPFDWKRPHGLUHFWRU\PLJKWKDYHDGLIIHUHQWQDPH 



6WDUW7RPFDW 7KURXJKRXWWKLVERRNZH¶UHXVLQJ7RPFDWDVERWKWKH ZHE6HUYHUDQGWKHZHE&RQWDLQHU,QWKHUHDOZRUOG\RX SUREDEO\XVHDPRUHUREXVW:HE6HUYHU OLNH$SDFKH  FRQ¿JXUHGZLWKD:HE&RQWDLQHU OLNH7RPFDW %XW7RPFDW PDNHVDSHUIHFWO\GHFHQW:HE6HUYHUIRUHYHU\WKLQJZH QHHGWRGRLQWKLVERRN 7RVWDUW7RPFDWFGLQWRWKHWRPFDWKRPHGLUHFWRU\DQGUXQ ELQVWDUWXSVK



ZHEDSSV



KWPO! ERG\!  ERG\! KWPO!

IRUPKWPO )LOH(GLW:LQGRZ+HOS2SHQ6RXUFH,W

FGWRPFDW ELQVWDUWXSVK

7HVWWKHSDJH 2SHQWKH+70/SDJHLQ\RXUEURZVHU DQGW\SH

KWWSORFDOKRVW%HHUYIRUPKWPO

KWWSORFDOKRVW%HHUYIRUPKWPO


FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&

+ZMI\QVO\PM,MXTWaUMV\,M[KZQX\WZ,, 4HEMAINJOBOFTHIS$$ISTODElNETHEMAPPINGBETWEENTHELOGICAL NAMETHECLIENTUSESFORTHEREQUESTh3ELECT"EERDOv ANDTHEACTUAL SERVLETCLASSlLECOMEXAMPLEWEB"EER3ELECT  

&UHDWHWKH''LQ\RXUGHYHORSPHQWHQYLURQPHQW &UHDWHWKLV;0/GRFXPHQWQDPHLWZHE[PODQGVDYHLWLQ\RXU GHSOR\PHQWHQYLURQPHQWXQGHUWKHEHHU9HWFGLUHFWRU\

know You donÕt have to ans, what any of this me just type it in.

ZHEDSS[POQV ´KWWSMDYDVXQFRP[POQVMHH´ [POQV[VL ´KWWSZZZZRUJ;0/6FKHPDLQVWDQFH´ [VLVFKHPD/RFDWLRQ ´KWWSMDYDVXQFRP[POQVMHHZHEDSSBB[VG´ YHUVLRQ ´´!

p name This is a made-uON LY in use l uÕl yo at th e DD. th of s rt pa r he  VHUYOHWQDPH!&K%HHUVHUYOHWQDPH! ot

 VHUYOHW!

 VHUYOHWFODVV!FRPH[DPSOHZHE%HHU6HOHFWVHUYOHWFODVV! P

of the Fully-qualiÞed name le. Þ ss cla t vle ser

VHUYOHW!  VHUYOHWPDSSLQJ! VHUYOHWQDPH!&K%HHUVHUYOHWQDPH!  XUOSDWWHUQ!6HOHFW%HHUGRXUOSDWWHUQ!

e client to refer to is how we want oÓthis just a convention. DonÕt forget to This ser Ò.d vlet. The start with a slash. the

VHUYOHWPDSSLQJ!  ZHEDSS!



WRPFDW

ZHEDSSV

&RS\WKHÀOHLQWRWKHGHSOR\PHQWHQYLURQPHQW 3ODFHDFRS\RIWKHZHE[PO¿OHLQWR WRPFDWZHEDSSV%HHUY:(%,1)
%HHUY



:(%,1)

KWPO! ERG\!  ERG\! KWPO!

IRUPKWPO 

ZHEDSS!   ZHEDSS!

ZHE[PO \RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

VHUYOHWPDSSLQJ

5IXXQVO\PMTWOQKITVIUM\WI[MZ ^TM\KTI[[NQTM 

'LDQHÀOOVRXWWKHIRUPDQGKLWVVXEPLW7KHEURZVHU JHQHUDWHVWKHUHTXHVW85/

%HHUY6HOHFW%HHUGR

The host The web app The logical resource name. server context root. root.  3267%HHUY 6HOHFW%HHUGR  +773 +RVWZZZZLFNHG

O\VPDUWFRP 8VHU$JHQW0 R]LOOD 0DFLQ WRVK8 33&0DF26;0D FK2HQ86U Y  *HFNR 1HWVFDSH $FFHSWWH[W[PO DSSOLFDWLRQ [PODSSOLFDWLRQ[ KWPO[POWH[ W KWPOT WH[W SODLQT YLGHR [ PQJLPDJHS QJLPDJHMSHJ LPDJH JLIT   T 

&OLHQW



&RQWDLQHU

7KH&RQWDLQHUVHDUFKHVWKH'' DQGÀQGVDVHUYOHWPDSSLQJ! ZLWKDXUOSDWWHUQ!WKDW PDWFKHV6HOHFW%HHUGRZKHUH WKHVODVK  UHSUHVHQWVWKH FRQWH[WURRWRIWKHZHEDSSDQG 6HOHFW%HHUGRLVWKHORJLFDOQDPH RIDUHVRXUFH

 ZHEDSS! ! VHUYOHW HWQDPH! VHUYO %HHU  &K OHWQDPH! VHUY HWFODVV! W YO HU V %HHU6HOHF [DPSOHZHE FRPH FODVV! W OH UY VH  W! VHUYOH

&RQWDLQHU



7KH&RQWDLQHUVHHVWKDWWKHVHUYOHW QDPH!IRUWKLVXUOSDWWHUQ!LV´&K %HHUµ%XWWKDWLVQ·WWKHQDPHRIDQ DFWXDOVHUYOHWFODVVÀOH´&K%HHUµLV WKHQDPHRIDVHUYOHWQRWDVHUYOHW FODVV 7RWKH&RQWDLQHUDVHUYOHWLVVRPHWKLQJ QDPHGLQWKH''XQGHUDVHUYOHW!WDJ 7KHQDPHRIWKHVHUYOHWLVVLPSO\WKH QDPHXVHGLQWKH''VRWKDWRWKHU SDUWVRIWKH''FDQPDSWRLW



r-v1/Ó isnÕt it L, the Ò/Bee In the HTMe path. In the HTML, part of th just says: d=ÓPOSTÓ
ectBeer.doÓ action=ÓSel Ò/Beer-v1/Ó ser prependse thatÕs where ow br e th But quest, becaus . In on to the rerequest is coming fromoÓ in nt the clie ds, the ÒSelectBeer.d RL of other wor is relative to the U lative to the HTML s on. In this case, re r-v1Ó. the page itof the web app, Ò/Bee the root

 PDSSLQJ! VHUYOHW HWQDPH! VHUYO %HHU &K OHWQDPH! UY VH    DWWHUQ! S XUO HFW%HHUGR 6HO SDWWHUQ! O XU   WPDSSLQJ! VHUYOH S! DS ZHE

&RQWDLQHU

FKDSWHU

Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

KDQGVRQ09&



7KH&RQWDLQHUORRNVLQVLGHWKH VHUYOHW!WDJVIRUVRPHWKLQJZLWK WKHVHUYOHWQDPH!´&K%HHUµ

&RQWDLQHU



 ZHEDSS! ! VHUYOHW HWQDPH! VHUYO %HHU  &K   ! H! OHWQDPH VHUY HWFODVV! YO HU 6HOHFW V   HZHE%HHU SO DP H[ P FR OHWFODVV! VHUY W! VHUYOH  PDSSLQJ! VHUYOHW ! PH! DP QD HWQ VHUYO U %HHU  &K   ! PH QD W OH VHUY DWWHUQ! XUOS GR U HH W% HF 6HO SDWWHUQ! XUO LQJ! SS PD W OH VHUY ZHEDSS!

7KH&RQWDLQHUXVHVWKH VHUYOHWFODVV!LQWKHVHUYOHW! WDJWRNQRZZKLFKVHUYOHWFODVV LVUHVSRQVLEOHIRUKDQGOLQJWKLV UHTXHVW,IWKHVHUYOHWKDV QRWEHHQLQLWLDOL]HGWKHFODVV LVORDGHGDQGWKHVHUYOHWLV LQLWLDOL]HG &RQWDLQHU



7KH&RQWDLQHUVWDUWVDQHZWKUHDGWR KDQGOHWKHUHTXHVWDQGSDVVHVWKH UHTXHVWWRWKHWKUHDG WRWKHVHUYOHW·V VHUYLFH PHWKRG 

VHUYOHW

UHTXHVW +7732.  KWPO! KHDG!  KHDG! ERG\! LPJVUF ! ERG\! KWPO!

&RQWDLQHU UHVSRQVH



7KH&RQWDLQHUVHQGVWKHUHVSRQVH WKURXJKWKH :HE6HUYHURIFRXUVH EDFNWRWKHFOLHQW

+7732.  KWPO! KHDG!  KHDG! ERG\! LPJVUF ! ERG\! KWPO!

&OLHQW

VHUYOHW

&RQWDLQHU

\RXDUHKHUH



Chapter 3. Mini MVC Tutorial Head First Servlets and JSP By Bert Bates, Kathy Sierra, Bryan Basham ISBN: 0596005407 Publisher: O'Reilly Prepared for Stephen Goss, Safari ID: [email protected] 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.

Chapter 3. Mini MVC Tutorial

VHUYOHWFRQWUROOHUYHUVLRQRQH


6HUYOHWFRGH SDFNDJHFRPH[DPSOHZHE LPSRUWMDYD[VHUYOHW  LPSRUWMDYD[VHUYOHWKWWS  LPSRUWMDYDLR 

match the Be sure yout and deployment en m op rlier. el dev e created ea structures w

ervlet, nds GenericS interface... te ex et vl er et HttpS ements the Servl which impl

SXEOLFFODVV%HHU6HOHFWH[WHQGV+WWS6HUYOHW^ SXEOLFYRLGGR3RVW +WWS6HUYOHW5HTXHVWUHTXHVW   +WWS6HUYOHW5HVSRQVHUHVSRQVH  WKURZV,2([FHSWLRQ6HUYOHW([FHSWLRQ^ doPost to

WeÕll use handle the HTTP request, because  UHVSRQVHVHW&RQWHQW7\SH ³WH[WKWPO´  the HTML form  3ULQW:ULWHURXW UHVSRQVHJHW:ULWHU  says: RXWSULQWOQ ³%HHU6HOHFWLRQ$GYLFHEU!´  method=POST  6WULQJF UHTXHVWJHW3DUDPHWHU ³FRORU´ 

RXWSULQWOQ ³EU!*RWEHHUFRORU³F  ` ` WeÕre not giving back advice

here, just displaying test information.

This method comes from the ServletResponse interface. This method comes from the ServletRequest interface. Notice that the argument matches the value of the ÒnameÓ attribute in the HTMLÕs

Login with Facebook Login with Google