ebook img

WEB TECHNOLOGIES - Google Drive PDF

591 Pages·2011·6.42 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview WEB TECHNOLOGIES - Google Drive

WEB TECHNOLOGIES A Computer Science Perspective Jeffrey C. Jackson Duquesne University UpperSaddleRiver,NewJersey07458 LibraryofCongressCataloging-in-PublicationData Jackson,JeffreyC. Webtechnologies:acomputerscienceperspective/JeffreyC.Jackson. p.cm. Includesbibliographicalreferencesandindex. ISBN0-13-185603-0 1. Webservices. 2. Worldwideweb. 3. Internetprogramming. I. Title. TK5105.88813.J332006 006.7(cid:2)6—dc22 2006019529 VicePresidentandEditorialDirector, CreativeDirector:JuanLopez ECS:MarciaJ.Horton ArtDirectorandCoverManager:JayneConte ExecutiveEditor:TracyDunkelberger ManagingEditor,AVManagementand AssociateEditor:CaroleSnyder Production:PatriciaBurns EditorialAssistant:ChristiannaLee ArtEditor:GregoryDulles ExecutiveManagingEditor:VinceO’Brien ManufacturingManager,ESM:AlexisHeydt-Long ManagingEditor:CamilleTrentacoste ManufacturingBuyer:LisaMcDowell ProductionEditor:ShelleyL.Creager ExecutiveMarketingManager:RobinO’Brien DirectorofCreativeServices:PaulBelfanti MarketingAssistant:MackPatterson (cid:3)C 2007PearsonEducation,Inc. PearsonPrenticeHall PearsonEducation,Inc. UpperSaddleRiver,NJ07458 Allrightsreserved.Nopartofthisbookmaybereproducedinanyformorbyanymeans, withoutpermissioninwritingfromthepublisher. PearsonPrenticeHallTMisatrademarkofPearsonEducation,Inc. Allothertradmarksorproductnamesarethepropertyoftheirrespectiveowners. Theauthorandpublisherofthisbookhaveusedtheirbesteffortsinpreparingthisbook. Theseeffortsincludethedevelopment,research,andtestingofthetheoriesandprograms todeterminetheireffectiveness.Theauthorandpublishermakenowarrantyofanykind, expressedorimplied,withregardtotheseprogramsorthedocumentationcontainedin thisbook.Theauthorandpublishershallnotbeliableinanyeventforincidentalor consequentialdamagesinconnectionwith,orarisingoutof,thefurnishing,performance, oruseoftheseprograms. PrintedintheUnitedStatesofAmerica 10 9 8 7 6 5 4 3 2 1 ISBN 0-13-185603-0 PearsonEducationLtd.,London PearsonEducacio´ndeMexico,S.A.deC.V. PearsonEducationAustraliaPty.Ltd.,Sydney PearsonEducation—Japan,Tokyo PearsonEducationSingapore,Pte.Ltd. PearsonEducationMalaysia,Pte.Ltd. PearsonEducationNorthAsiaLtd.,HongKong Pearson Education, Inc., Upper Saddle River, PearsonEducationCanada,Inc.,Toronto NewJersey Contents Preface xi PurposeandScope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii TextbookPlanandCourseSequences . . . . . . . . . . . . . . . . . . . . . . . xiii SourceFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv CHAPTER1 WebEssentials:Clients,Servers,andCommunication 1 1.1 TheInternet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 BasicInternetProtocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 UDP,DNS,andDomainNames . . . . . . . . . . . . . . . . . . . . 7 1.2.3 Higher-LevelProtocols . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 TheWorldWideWeb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.1 HypertextTransportProtocol. . . . . . . . . . . . . . . . . . . . . . 10 1.4 HTTPRequestMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.1 OverallStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.2 HTTPVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.3 Request-URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.4 RequestMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4.5 HeaderFieldsandMIMETypes . . . . . . . . . . . . . . . . . . . . 15 1.5 HTTPResponseMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5.1 ResponseStatusLine . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5.2 ResponseHeaderFields . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5.3 CacheControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.5.4 CharacterSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.6 WebClients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.6.1 BasicBrowserFunctions . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6.2 URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.6.3 User-ControllableFeatures . . . . . . . . . . . . . . . . . . . . . . . 27 1.6.4 AdditionalFunctionality . . . . . . . . . . . . . . . . . . . . . . . . 29 1.7 WebServers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.7.1 ServerFeatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.7.2 ServerHistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.7.3 ServerConfigurationandTuning . . . . . . . . . . . . . . . . . . . . 32 1.7.4 DefiningVirtualHosts . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.7.5 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.7.6 AccessControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 1.7.7 SecureServers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 1.8 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 iii iv Contents 1.9 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 CHAPTER2 MarkupLanguages:XHTML1.0 56 2.1 AnIntroductiontoHTML . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.2 HTML’sHistoryandVersions . . . . . . . . . . . . . . . . . . . . . . . . 59 2.2.1 The“War”Years . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.2.2 TheClean-upEffort . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.3 BasicXHTMLSyntaxandSemantics . . . . . . . . . . . . . . . . . . . . 64 2.3.1 DocumentTypeDeclaration . . . . . . . . . . . . . . . . . . . . . 64 2.3.2 WhiteSpaceinCharacterData . . . . . . . . . . . . . . . . . . . 65 2.3.3 UnrecognizedElementsandAttributes . . . . . . . . . . . . . . . 67 2.3.4 SpecialCharacters . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.3.5 Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.4 SomeFundamentalHTMLElements . . . . . . . . . . . . . . . . . . . . . 72 2.4.1 Headings:h1andFriends . . . . . . . . . . . . . . . . . . . . . . 72 2.4.2 Spacing:preandbr . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.4.3 FormattingTextPhrases:span,strong,tt,etc. . . . . . . . . 75 2.4.4 HorizontalRule:hr . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.4.5 Images:TheimgElement . . . . . . . . . . . . . . . . . . . . . . 76 2.4.6 Links:TheaElement . . . . . . . . . . . . . . . . . . . . . . . . 78 2.4.7 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.4.8 NestingElements . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.5 RelativeURLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.6 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.7 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 2.8 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.9 Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 2.10 DefiningXHTML’sAbstractSyntax:XML . . . . . . . . . . . . . . . . . 98 2.10.1 ElementTypeDeclarations . . . . . . . . . . . . . . . . . . . . . 99 2.10.2 AttributeListDeclarations. . . . . . . . . . . . . . . . . . . . . . 101 2.10.3 EntityDeclarations. . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.10.4 DTDFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.11 CreatingHTMLDocuments . . . . . . . . . . . . . . . . . . . . . . . . . 106 2.12 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 CHAPTER3 StyleSheets:CSS 121 3.1 IntroductiontoCascadingStyleSheets . . . . . . . . . . . . . . . . . . . . 121 3.2 CascadingStyleSheetFeatures . . . . . . . . . . . . . . . . . . . . . . . . 123 3.3 CSSCoreSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.3.1 SelectorStrings . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.3.2 At-Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 3.4 StyleSheetsandHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Contents v 3.5 StyleRuleCascadingandInheritance . . . . . . . . . . . . . . . . . . . . 133 3.5.1 RuleCascading . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 3.5.2 StyleInheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 3.6 TextProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 3.6.1 FontFamilies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 3.6.2 LengthSpecificationsinCSS . . . . . . . . . . . . . . . . . . . . 143 3.6.3 FontProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 3.6.4 LineBoxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 3.6.5 TextFormattingandColor . . . . . . . . . . . . . . . . . . . . . . 149 3.7 CSSBoxModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.7.1 BasicConceptsandProperties . . . . . . . . . . . . . . . . . . . . 151 3.7.2 BoxModelShorthandProperties . . . . . . . . . . . . . . . . . . 154 3.7.3 BackgroundColorsandImages . . . . . . . . . . . . . . . . . . . 157 3.8 NormalFlowBoxLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 3.8.1 BasicBoxLayout . . . . . . . . . . . . . . . . . . . . . . . . . . 158 3.8.2 ThedisplayProperty . . . . . . . . . . . . . . . . . . . . . . . 160 3.8.3 MarginCollapse . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 3.8.4 BlockBoxWidthandHeight . . . . . . . . . . . . . . . . . . . . 162 3.8.5 SimpleInlineBoxes . . . . . . . . . . . . . . . . . . . . . . . . . 166 3.8.6 NestedInlineBoxes . . . . . . . . . . . . . . . . . . . . . . . . . 168 3.9 BeyondtheNormalFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 3.9.1 PropertiesforPositioning . . . . . . . . . . . . . . . . . . . . . . 169 3.9.2 RelativePositioning . . . . . . . . . . . . . . . . . . . . . . . . . 170 3.9.3 FloatPositioning . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.9.4 AbsolutePositioning . . . . . . . . . . . . . . . . . . . . . . . . . 172 3.9.5 Positioning-RelatedProperties . . . . . . . . . . . . . . . . . . . 174 3.10 SomeOtherUsefulStyleProperties . . . . . . . . . . . . . . . . . . . . . 176 3.10.1 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.10.2 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.10.3 CursorStyles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3.11 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3.12 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 CHAPTER4 Client-SideProgramming:TheJavaScriptTMLanguage 192 4.1 HistoryandVersionsofJavaScript . . . . . . . . . . . . . . . . . . . . . . 192 4.2 IntroductiontoJavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 4.3 JavaScriptinPerspective . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 4.3.1 ScriptingLanguages . . . . . . . . . . . . . . . . . . . . . . . . . 195 4.3.2 WritingandTestingJavaScriptPrograms . . . . . . . . . . . . . . 196 4.4 BasicSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 4.5 VariablesandDataTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 4.6 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 4.7 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 4.7.1 Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 vi Contents 4.7.2 TypeConversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 4.7.3 BitOperators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 4.8 Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 4.9 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 4.10 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 4.10.1 ObjectProperties. . . . . . . . . . . . . . . . . . . . . . . . . . . 212 4.10.2 EnumeratingProperties . . . . . . . . . . . . . . . . . . . . . . . 214 4.10.3 ArrayNotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 4.10.4 ObjectReferences . . . . . . . . . . . . . . . . . . . . . . . . . . 215 4.10.5 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 4.10.6 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.10.7 Example:BinaryTree . . . . . . . . . . . . . . . . . . . . . . . . 221 4.11 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.11.1 CreatinganArray . . . . . . . . . . . . . . . . . . . . . . . . . . 225 4.11.2 DynamicallyChangingArrayLength . . . . . . . . . . . . . . . . 226 4.11.3 ArrayMethods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 4.12 Built-inObjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 4.12.1 TheGlobalObject(window) . . . . . . . . . . . . . . . . . . . . 228 4.12.2 String,Number,andBoolean. . . . . . . . . . . . . . . . . . . 229 4.12.3 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 4.12.4 Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 4.12.5 RegExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 4.13 JavaScriptDebuggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 4.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 CHAPTER5 HostObjects:BrowsersandtheDOM 249 5.1 IntroductiontotheDocumentObjectModel . . . . . . . . . . . . . . . . . 249 5.2 DOMHistoryandLevels . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 5.3 IntrinsicEventHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 5.4 ModifyingElementStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 5.5 TheDocumentTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 5.5.1 NodeObjects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 5.5.2 Example:ListReordering . . . . . . . . . . . . . . . . . . . . . . 261 5.5.3 ThedocumentNode . . . . . . . . . . . . . . . . . . . . . . . . 262 5.5.4 ElementNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 5.5.5 TextNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 5.5.6 Example:CollapsibleElements . . . . . . . . . . . . . . . . . . . 264 5.5.7 HTMLConvenienceProperties . . . . . . . . . . . . . . . . . . . 268 5.6 DOMEventHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 5.6.1 TheEventObjectandEventListeners . . . . . . . . . . . . . . . 268 5.6.2 MouseEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 5.6.3 Window-LevelEvents . . . . . . . . . . . . . . . . . . . . . . . . 273 5.6.4 EventPropagation . . . . . . . . . . . . . . . . . . . . . . . . . . 273 5.6.5 Example:DropdownMenus . . . . . . . . . . . . . . . . . . . . . 275 Contents vii 5.6.6 EventCancelingandFormValidation . . . . . . . . . . . . . . . . 280 5.6.7 GeneratingEvents . . . . . . . . . . . . . . . . . . . . . . . . . . 281 5.7 AccommodatingNoncompliantBrowsers . . . . . . . . . . . . . . . . . . 282 5.7.1 DetectingHostObjects . . . . . . . . . . . . . . . . . . . . . . . 283 5.7.2 IE6Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 5.8 AdditionalPropertiesofwindow . . . . . . . . . . . . . . . . . . . . . . . 289 5.9 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 5.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 CHAPTER6 Server-SideProgramming:JavaServlets 307 6.1 ServletArchitectureOverview . . . . . . . . . . . . . . . . . . . . . . . . 307 6.2 A“HelloWorld!”Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 6.3 ServletsGeneratingDynamicContent . . . . . . . . . . . . . . . . . . . . 311 6.4 ServletLifeCycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 6.5 ParameterData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 6.5.1 ParameterDataandQueryStrings. . . . . . . . . . . . . . . . . . 314 6.5.2 ServletsandParameterData . . . . . . . . . . . . . . . . . . . . . 316 6.5.3 FormsandParameterData . . . . . . . . . . . . . . . . . . . . . . 319 6.6 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 6.6.1 CreatingaSession . . . . . . . . . . . . . . . . . . . . . . . . . . 322 6.6.2 StoringandRetrievingAttributes . . . . . . . . . . . . . . . . . . 323 6.6.3 SessionTermination . . . . . . . . . . . . . . . . . . . . . . . . . 327 6.7 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 6.8 URLRewriting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 6.9 OtherServletCapabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 6.9.1 AdditionalHttpServletRequestMethods . . . . . . . . . . . . . 334 6.9.2 AdditionalHttpServletResponseMethods . . . . . . . . . . . 334 6.9.3 SupportforOtherHTTPMethods . . . . . . . . . . . . . . . . . . 338 6.10 DataStorage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 6.11 ServletsandConcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 6.11.1 ConcurrencyinWebServers. . . . . . . . . . . . . . . . . . . . . 339 6.11.2 Threads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 6.11.3 ThreadingIssues . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 6.11.4 ThreadSynchronization . . . . . . . . . . . . . . . . . . . . . . . 342 6.11.5 ServletSynchronization . . . . . . . . . . . . . . . . . . . . . . . 345 6.11.6 SummaryandConcludingRemarks . . . . . . . . . . . . . . . . . 350 6.12 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 6.13 RelatedTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 6.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 CHAPTER7 RepresentingWebData:XML 364 7.1 XMLDocumentsandVocabularies . . . . . . . . . . . . . . . . . . . . . . 364 7.2 XMLVersionsandtheXMLDeclaration. . . . . . . . . . . . . . . . . . . 369 viii Contents 7.3 XMLNamespaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 7.4 JavaScriptandXML:Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . 373 7.5 DOM-BasedXMLProcessing . . . . . . . . . . . . . . . . . . . . . . . . 378 7.6 Event-orientedParsing:SAX . . . . . . . . . . . . . . . . . . . . . . . . . 383 7.7 TransformingXMLDocuments. . . . . . . . . . . . . . . . . . . . . . . . 390 7.7.1 TransformingbetweenXMLRepresentations . . . . . . . . . . . . 390 7.7.2 IntroductiontoXSL . . . . . . . . . . . . . . . . . . . . . . . . . 393 7.7.3 XSLComponentOverview . . . . . . . . . . . . . . . . . . . . . 394 7.8 SelectingXMLData:XPath . . . . . . . . . . . . . . . . . . . . . . . . . 396 7.8.1 LocationPaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 7.8.2 LocationPathswithMultipleSteps . . . . . . . . . . . . . . . . . 399 7.8.3 AbsoluteandRelativeLocationPaths . . . . . . . . . . . . . . . . 400 7.8.4 CombiningNodeLists . . . . . . . . . . . . . . . . . . . . . . . . 401 7.8.5 FunctionCallsasXPathExpressions . . . . . . . . . . . . . . . . 401 7.9 Template-basedTransformation:XSLT . . . . . . . . . . . . . . . . . . . . 402 7.9.1 “HelloWorld!”Revisited . . . . . . . . . . . . . . . . . . . . . . 402 7.9.2 RecursiveTemplateProcessing . . . . . . . . . . . . . . . . . . . 405 7.9.3 GeneratingResultTreeContent . . . . . . . . . . . . . . . . . . . 409 7.9.4 XMLResultDocumentFormatting . . . . . . . . . . . . . . . . . 415 7.10 DisplayingXMLDocumentsinBrowsers . . . . . . . . . . . . . . . . . . 417 7.11 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 7.12 RelatedTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 7.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 CHAPTER8 SeparatingProgrammingandPresentation:JSPTM Technology 432 8.1 IntroductiontoJavaServerPages . . . . . . . . . . . . . . . . . . . . . . . 433 8.2 JSPandServlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 8.3 RunningJSPApplications . . . . . . . . . . . . . . . . . . . . . . . . . . 438 8.3.1 WebApplications . . . . . . . . . . . . . . . . . . . . . . . . . . 438 8.3.2 InstallingaWebApplication . . . . . . . . . . . . . . . . . . . . 439 8.3.3 DefiningWebApplicationParameters. . . . . . . . . . . . . . . . 442 8.4 BasicJSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 8.4.1 JSPExpressionLanguage(EL) . . . . . . . . . . . . . . . . . . . 447 8.4.2 JSPMarkup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 8.4.3 JSTLCoreActions. . . . . . . . . . . . . . . . . . . . . . . . . . 452 8.5 JavaBeansClassesandJSP . . . . . . . . . . . . . . . . . . . . . . . . . . 457 8.5.1 JavaBeansTechnologyBasics . . . . . . . . . . . . . . . . . . . . 457 8.5.2 InstantiatingBeanObjects . . . . . . . . . . . . . . . . . . . . . . 460 8.5.3 UsingJavaBeansObjects . . . . . . . . . . . . . . . . . . . . . . 462 8.5.4 Getters/SettersonNonbeanObjects . . . . . . . . . . . . . . . . . 463 8.6 TagLibrariesandFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 8.7 SupportfortheModel-View-ControllerParadigm . . . . . . . . . . . . . . 466 8.7.1 MVCBasics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 Contents ix 8.7.2 ServletRequestDispatching . . . . . . . . . . . . . . . . . . . . . 467 8.7.3 JSPActionsSupportingMVC . . . . . . . . . . . . . . . . . . . . 471 8.8 CaseStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 8.9 RelatedTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 8.9.1 JSPPageswithScriptlets . . . . . . . . . . . . . . . . . . . . . . 479 8.9.2 ActiveServerPagesandASP.NET . . . . . . . . . . . . . . . . . 480 8.9.3 PHP:HypertextPreprocessor . . . . . . . . . . . . . . . . . . . . 480 8.9.4 ColdFusion(cid:3)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 8.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 CHAPTER9 WebServices:JAX-RPC,WSDL,XMLSchema,andSOAP 486 9.1 WebServiceConcepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 9.2 WritingaJavaWebService . . . . . . . . . . . . . . . . . . . . . . . . . . 491 9.2.1 CurrencyConversionService . . . . . . . . . . . . . . . . . . . . . 491 9.2.2 WritingServerSoftware . . . . . . . . . . . . . . . . . . . . . . . . 491 9.2.3 PackagingServerSoftware . . . . . . . . . . . . . . . . . . . . . . . 492 9.3 WritingaJavaWebServiceClient . . . . . . . . . . . . . . . . . . . . . . . 497 9.4 DescribingWebServices:WSDL . . . . . . . . . . . . . . . . . . . . . . . 502 9.5 RepresentingDataTypes:XMLSchema . . . . . . . . . . . . . . . . . . . . 508 9.5.1 Built-InDataTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 9.5.2 XMLSchemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 9.5.3 User-DefinedSimpleTypes . . . . . . . . . . . . . . . . . . . . . . 512 9.5.4 User-DefinedComplexTypes . . . . . . . . . . . . . . . . . . . . . 514 9.5.5 XMLSchemawithinInstanceDocuments . . . . . . . . . . . . . . . 516 9.6 CommunicatingObjectData:SOAP . . . . . . . . . . . . . . . . . . . . . . 517 9.6.1 SOAPElements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 9.6.2 RPCRepresentation . . . . . . . . . . . . . . . . . . . . . . . . . . 518 9.6.3 SOAPEncodingofStructData. . . . . . . . . . . . . . . . . . . . . 521 9.6.4 SOAPEncodingofArrays . . . . . . . . . . . . . . . . . . . . . . . 522 9.6.5 SOAPandHTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 9.6.6 JavaSupportforSOAP . . . . . . . . . . . . . . . . . . . . . . . . . 524 9.7 RelatedTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 9.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 APPENDICES 530 APPENDIXA SoftwareInstallation 530 A.1 SystemBasics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 A.1.1 CommandPrompt . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 A.1.2 EnvironmentVariables . . . . . . . . . . . . . . . . . . . . . . . . 531 A.1.3 FilePaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 A.2 BrowserSoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.