Formatted contents note |
I Introduction to Computers, the Internet and<br/>the Web<br/>1 .1 Introduction<br/>1.2 (Computers: 1 lardwarc and Software<br/>1 3 C Computer ()r{;anization<br/>1.4 F.arly Operating Systems<br/>1.5 Personal, Distributed and (llietu/Server ( !omputing<br/>1.6 The Internet and the World Wide Web<br/>1 .7 Machine l,angua};es, Assembly l anguages and 1 iigh-1 evel l anguages<br/>1.8 Histor)' of C. and C.+ +<br/>1 .9 Mistory of Java<br/>1.10 Java Cia.ss Libraries<br/>1.1 1 Fortran, COBOL, Pascal and Ada<br/>1.12 BASIC, Visual Basic, Visual C+ f, C# and .NE'l<br/>1.13 Typical Java Development Environment<br/>1.14 Notes about Java and Java How to Program, Eighth Edition<br/>1.15 Test-Driving a Java Application<br/>1.16 Software Engineering Case Study; Introduction to Object Technolog)-<br/>and the UML<br/>1.17 Web 2.0<br/>1.18 Software Technologies<br/>1.19 Wrap-Up<br/>1.20 Web Resources<br/>2 introduction to Java Applications<br/>2.1 Introduction<br/>2.2 Our First Program in Java: Printing a Line of Text<br/>2.3 Modifying Our First Java Program<br/>2.4 Displaying Text with pri ntf<br/>2.5 Another Application: Adding Integers<br/>2.6 Memor\' Concepts<br/>2.7 Arithmetic<br/>2.8 Decision .Making; lupiality and Relational Operators<br/>2.9 NX'rap-L'p<br/>3 Introduction to Classes and Objects<br/>3.1 IntrodiKtion<br/>3.2 Cliasses. (Objects. .Methods aiul Instarue \ ;iriables<br/>.3..3 Declaring a ( lass with a .Method .ind Instantiating an (Mt|ect ol a ( lass<br/>3.4 Declaring a .Method with a Parainctei<br/>3.5 Instance \'ariables, set .Method.s atid ^el Methods<br/>3.6 Primitive Types vs. Referetue 1 s pes<br/>3.7 Initializing Objects with Constructors<br/>3.8 Floating-Point Numbers and Type double<br/>3.9 (Optional) (iUI and (Graphics C.tse .Study: Csing Dialog boxes<br/>3.10 ^'rap-l'p<br/>4 Control Statements: Part 1<br/>4.1 Introduction<br/>4.2 Algorithtns<br/>4.3 Pseudocode<br/>4.4 Control Structures<br/>4.5 if Single-Selection Statement<br/>4.6 if...else Double-Selection Statement<br/>4.7 whi le Repetition Statement<br/>4.8 Formulating Algorithms: Counter-Controlled Repetition<br/>4.9 Formulating Algorithms: Sentinel-Controlled Repetition<br/>4.10 Formulating Algorithms: Nested Control Statements<br/>4.11 Compound Assignment Operators<br/>4.12 Increment and Decrement Operators<br/>4.13 Primitive Types<br/>4.14 (Optional) GUI and Graphics Case Study: Creating Simple Drawings<br/>4.15 Wrap-Up<br/>5 Control Statements: Part 2<br/>5-1 li^troduction Counter-Controlled Repetition<br/>for Repetition Statement<br/>d"" Ml "r Statement<br/>V : Statement<br/>5,9 Structute<lPmgmmmmgSu.„ma.y<br/>5. 1 0 K )pti()n.!l! (il l .Hui ( ii.i[ilii(.s ( iasc Siiulv: 1 )r.iu inp Rci t.in;'lc>. .in>l ( K.iR<br/>5.1 1 \Xrap-lp<br/>6 Methods: A Deeper Look<br/>6.1 IntrochKUon<br/>6.2 Propr.uii .\Ioiliilf'> ni I.iv.i<br/>6.3 static .Mctlimis. stat ic l ii-liis .iiui < l.issM.itli<br/>6.4 I )c«.l.irin<: .\kiln)(.is with .Multiple I'.u.iiiu tets<br/>6.5 Notes oil 1 )ecl.iriiig .iiul I siiit; Melhotls<br/>6.6 .\1cthod-( .ill Stack ami .ActivaiifHi Records<br/>6.7 Areument Promotion .iml ( .istiiit;<br/>6.H lava .API Packages<br/>6.9 (i.ise Studv; Random-Number (lener.ition<br/>6.9.1 (ienerali/ed .Scaling, .md Shiltingol Random Numbers<br/>6.9.2 Random-Number Repeatability lor Testitig and IVbuggitig<br/>6.10 (".ase Studv: .A (lame of (ihanee; Intioducing l iiumei.itions<br/>6.1 1 Scope ot Declarations<br/>6.12 Method Overloading<br/>6.13 (Optionalj (iUl and ( Iraphics ( ia.se Study: ( iolors and billed Shapes<br/>6.14 Wrap-Up<br/>7 Arrays and ArrayLi sts<br/>7.1 Introduction<br/>7.2 Arrays<br/>7.3 Declaring and Oeating Arrays<br/>7.4 Examples Using Arrays<br/>7.5 Case Study: Card Shuffling and Dealing Simulation<br/>7.6 Enhanced for Statement<br/>7.7 Passing Arrays to Methods<br/>7.8 Ca.se Study: Class GradeBook Using an Array to Store Crades<br/>7.9 Multidimensional Arrays<br/>7.10 Case Study: Class GradeBook Using a Two-Dimensional Array<br/>7.1 1 Variable-Length Argument Lists<br/>7.12 Using Command-Line Arguments<br/>7.13 Class Arrays<br/>7.14 Introduction to Collections and Class Ar rayLi st<br/>7.15 (Optional) GUI and Graphics Case Study: Drawing Arcs<br/>7.16 Wrap-Up<br/>8 Classes and Objects: A Deeper Look<br/>8.1 Introduction<br/>8.2 Ti me Class Case Study<br/>8.3 Controlling Access to Members<br/>8.4 Referring to the Current Object's Members with the thi s Refere*"-^<br/>S.s Time I lass C^isc Study: Ovcrloadcil ( ()nstructt)rN<br/>8.6 IX'fauit and \o Aii;umcnt (:()iisiructors<br/>H." Notes on Sft and (if! Mcthoils<br/>8.8 C .ontposition<br/>8.') Jdunnerations<br/>8.10 C.arliauc Collection and Method f inal ize<br/>8.1 1 static (dass Menihers<br/>8.12 static import<br/>8.1.1 final Instance \ ariahle.s<br/>8.1^ Time Cdass Cdise Study: Creatini; Packages<br/>8.1 S Package Access<br/>8.16 (Optional) CiUl and C iraphics Case Study: I'sing Objects with C.raphics<br/>8.1" Wrap-Up<br/>9 Object-Oriented Programming: Inheritance<br/>9.1 Introduction<br/>9.2 Superclasses and Subcla,s,se.s<br/>9.3 protected Members<br/>9.4 Relationship between Supercla.sses and Subclasses<br/>9.4.1 Creating and Using a Commi ssionEmployee Class<br/>9.4.2 Creating atid Using a BasePlusCommissionEmployee Cla.ss<br/>9.4.3 Creating a Commi ssionEmployee-BasePlusConimi ssionEmployee<br/>Inheritance Hierarchy<br/>9.4.4 Commi ssionEmployee-BasePlusCommi ssionEmployee Inheritance<br/>Hierarchy Using protected Instance Variables<br/>9.4.5 CommissionEmployee-BasePlusCommissionEmployee Inheritance<br/>Hierarchy Using private Instance Variables<br/>9.5 Constructors in Subclasses<br/>9.6 Software Engineering with Inheritance<br/>9.7 Object Class<br/>9.8 (Optional) GUI and Graphics Ca.se Study: Displaying Text and<br/>Images Using Labels<br/>9.9 Wrap-Up<br/>10 Object-Oriented Programming: Polymorphism<br/>10.1 Introduction<br/>10.2 Polymorphism Examples<br/>10.3 I )emonstrating Polymorphic Behavior<br/>10.4 Abstract Classes and Methods<br/>10.5 Ca« Study; Payroll System Using Polytnorphism<br/>10.5.1 Abstract Superclass Employee<br/>10.5.2 Concrete Subclass SalariedEmployee<br/>'0^5.3 Concrete Subclass HourlyEmployee<br/>1 o's'^ Concrete Subclass Commi ssionEmployee<br/>• - •"direct Concrete Subdass BasePlusCommissionEmployee<br/>10.5.6 Polymorphic Processing, Operator i nstanceof and Downcasting<br/>10.5.7 Summary of the Allowed Assignments Between Superclass and<br/>Subclass Variables<br/>10.6 fi nal Methods and Classes<br/>10.7 Case Study: Creating and Using Interfaces<br/>10.7.1 Developing a Payabl e Hierarchy<br/>10.7.2 Interface Payable<br/>10.7.3 Class Invoice<br/>10.7.4 Modifying Class Empl oyee to Implement Interface Payabl e<br/>10.7.5 Modifying Class SalariedEtnployee for Use in the Payable<br/>Hierarchy<br/>10.7.6 Using Interface Payabl e to Process Invoi ces and Empl oyees<br/>Polymorphically<br/>10.7.7 Common InteriFaces of the Java API<br/>10.8 (Optional) GUI and Graphics Case Study: Drawing with Polymorphism<br/>10.9 Wrap-Up<br/>I I Exception Handling<br/>11.1 Introduction<br/>11.2 Error-Handling Overview<br/>11.3 Example: Divide by Zero without Exception Handling<br/>11.4 Example: Handling Ari thmeti cExcepti ons and<br/>InputMi smatchExcepti ons<br/>11.5 When to Use Exception Handling<br/>11.6 Java Exception Hierarchy<br/>11.7 finally Block<br/>11.8 Stack Unwinding<br/>11.9 pri ntStackTrace, getStackTrace and getMessage<br/>11.10 Chained Exceptions<br/>11.11 Declaring New Exception Types<br/>11.12 Preconditions and Postconditions<br/>11.13 Assertions<br/>11.14 Wrap-Up<br/>12 ATM Case Study, Part I: Object-Oriented<br/>Design with the UML<br/>12.1 Case Study Introduction<br/>12.2 Examining the Requirements Document<br/>12.3 Identifying the Classes in a Requirements Document<br/>12.4 Identifying Class Attributes<br/>12.5 Identifying Objects' States and Activities<br/>12.6 Identifying Class Operations<br/>12.7 Indicating Collaboration Among Objects<br/>12.8 Wrap-Up<br/>I 3 ATM Case Study Part 2: Implementing an<br/>Object-Oriented Design<br/>1 I lntroducti«)!i<br/>13.2 St.irrinp lo Program the ( lasses ot the .\ I .\1 System<br/>13.3 IiKorporatmg Inhentaiue aiul Polymorphism mto the .\ 1 .\t System<br/>13.3.1 Implementing the A IM System Design (Ineorpoiatmg Inheritaiue)<br/>13. t .3 r.\l ( ase Stiiiiv Implementation<br/>13. 1.1 CdassATM<br/>13.•1.2 (.lass Screen<br/>13.-1.3 (lass Keypad<br/>13.4.d (llass CashDi spenser<br/>13.4.3 ( dass Deposi tSlot<br/>13.4.() (ilass Account<br/>13.4."" (dass BankDatabase<br/>13.'i.H ( dass Transaction<br/>1 3.4.9 ("lass Balancelnqui ry<br/>13.4.10 C!lass Wi thdrawal<br/>13.4.1 1 ("lass Deposi t<br/>13.4.12 ("lass ATMCaseStudy<br/>13.5 Wrap-1 p<br/>14 GUI Components: Part I<br/>14.1 Introduction<br/>14.2 Java's New Nimbus Look-and-i-"ecl<br/>14.3 Simple CiUI-Bascd Input/Output with DOptionPane<br/>14.4 Overview of Swing (.omponents<br/>14.5 Displaying I'cxr and Images in a Window<br/>14.6 Text Fields and an Introduction to Event Handling with Nested Cla.sses<br/>1^-7 Common GUI Event l ypes and Listener Interlaces<br/>14.8 How Event Handling Works<br/>14.9 3Button<br/>14.10 Buttons That Maintain State<br/>^4.10.1 DCheckBox<br/>3RadioButton<br/>14 12 and Using an Anonymous Inner Class for Event Handling<br/>II 1/ Lists<br/>1 j Ever,, Handling<br/>14.1 T Adapter Classes<br/>14.16 3 Panel Subclass frtr<br/>14\7 Key Event Hantiling "^"""8""' the Mouse<br/>Introduction Layout Managers<br/>j^lB.l FlowLayout<br/>14 J'g2 BorderLayout<br/>"ri dLayout<br/>14.19 Using Panels to Manage More Complex Layouts<br/>14.20 JTextArea<br/>14.21 Wrap-Up<br/>15 Graphics and Java 20''''^<br/>15.1 Introduction<br/>15.2 Graphics Contexts and Graphics Objects<br/>15.3 Color Control<br/>15.4 Manipulating Fonts<br/>15.5 Drawing Lines, Rectangles and Ovals<br/>15.6 Drawing Arcs<br/>15.7 Drawing Polygons and Polylines<br/>15.8 Java 2D API<br/>15.9 Wrap-Up<br/>16 Strings, Characters and Regular Expressions<br/>16.1 Introduction<br/>16.2 Fundamentals of Characters and Strings<br/>16.3 Class String<br/>16.3.1 String Constructors<br/>16.3.2 String Methods length, charAt and getChars<br/>16.3.3 Comparing Strings<br/>16.3.4 Locating Characters and Substrings in Strings<br/>16.3.5 Extracting Substrings from Strings<br/>16.3.6 Concatenating Strings<br/>16.3.7 Miscellaneous String Methods<br/>16.3.8 String Method valueOf<br/>16.4 Class StringBuilder<br/>16.4.1 StringBuilder Constructors<br/>16.4.2 StringBuilder Methods length, capacity, setLength and<br/>ensureCapacity<br/>16.4.3 StringBuilder Methods charAt, setCharAt, getChars and<br/>reverse<br/>16.4.4 StringBuilder append Methods<br/>16.4.5 StringBuilder Insertion and Deletion Methods<br/>16.5 Class Character<br/>16.6 Tokenizing Strings<br/>16.7 Regular Expressions, Class Pattern and Class Matcher<br/>16.8 Wrap-Up<br/>I 7 Flits, Streams and Object Serialization<br/>17.1 Introduction<br/>17.2 Data Hierarchy<br/>17.3 I-ilc> and Strcani\<br/>17.4 (-lass File<br/>17.5 Sccjuciuial-Access I cxt l iles<br/>l^.^.l ( reaiiiv^ a Scijucntial-Access I e\l i ile<br/>1~.3.2 Reading Data from a Secitiential-.Access I e\t l ile<br/>P.^.3 Case <tiidy; A ( redit Iiu|iiiry Program<br/>1"'.S.^ I pdating Secjueritial-.\ccess Piles<br/>17.6 Object SerialiAttion<br/>17.6.1 ( Tearing a Sei)iiential-Access ItIc I sing (Ibjec t Seriali/.ition<br/>1~.6.2 Reading and Deseriaii/ing IXita from a Seciuential-.Access Pile<br/>17.7 Additional java . i o (!las.ses<br/>17 "* 1 Interfaces and (.lasses for Byte-Based Input .md (^ut[>ut<br/>P.".2 Interfaces and ('lasses for Character-Based Input and Output<br/>17.8 Opening Files with JFileCfiooser<br/>17.9 Wrap-l'p<br/>18 Recursion<br/>18.1 Introduction<br/>18.2 Recursion Concepts<br/>18.3 F.xample Using Recursion: Factorials<br/>18.4 FLxample Using Recursion: Fibonacci Series<br/>18.5 Recursion and the Method-Call Stack<br/>18.6 Recursion vs. Iteration<br/>18.7 Towers of Hanoi<br/>18.8 Fractals<br/>18.9 Recursive Backtracking<br/>18.10 Wrap-Up<br/>I 9 Searching, Sorting and Big O<br/>19.1 Introduction<br/>19.2 Searching Algorithms<br/>19.2.1 Linear Search<br/>19.2.2 Binary Search<br/>19.3 Sorting Algorithms<br/>19.3.1 Selection Sort<br/>19.3.2 Insertion Sort<br/>19.3.3 Merge Sort<br/>19 4 Wrap-Up<br/>20 Generic Collections<br/>20.1 Introduction<br/>20.2 Collections Overview<br/>20.3 Type-Wrapper Classes for Primitive Types<br/>20.4 Autoboxing and Auto-Unboxing<br/>20.5 Interface Col 1 ecti on and Class Col 1 ecti ons<br/>20.6 Lists<br/>20.6.1 ArrayLi St and Iterator<br/>20.6.2 LinkedList<br/>20.7 Collections Methods<br/>20.7.1 Method sort<br/>20.7.2 Method shuffle<br/>20.7.3 Methods reverse, fill, copy, max and min<br/>20.7.4 Method hi narySearch<br/>20.7.5 Methods addAl 1, frequency and disjoi nt<br/>20.8 Stack Class of Package java.util<br/>20.9 Class PriorityQueue and Interface Queue<br/>20.10 Sets<br/>20.11 Maps<br/>20.12 Properties Class<br/>20.13 Synchronized Collections<br/>20.14 Unmodifiable Collections<br/>20.15 Abstract Implementations<br/>20.16 Wrap-Up<br/>2 i Generic Classes and Methods<br/>21.1 Introduction<br/>21.2 Motivation for Generic Methods<br/>21.3 Generic Methods: Implementation and Compile-Time Translation<br/>21.4 Additional Compile-Time Translation Issues: Methods That Use a Type<br/>Parameter as the Return Type<br/>21.5 Overloading Generic Methods<br/>21.6 Generic Classes<br/>21.7 Raw Types<br/>21.8 Wildcards in Methods That Accept Type Parameters<br/>21.9 Generics and Inheritance: Notes<br/>21.10 Wrap-Up<br/>22 Custom Generic Data Structures<br/>22.1 Introduction<br/>22.2 Self-Referential Classes<br/>22.3 Dynamic Memory Allocation<br/>22.4 Linked Lists<br/>22.5 Stacks<br/>22.6 Queues<br/>22.7 Trees<br/>22.8 Wrap-Up<br/>23 Applets and Java Web Start<br/>2.11 IntroiiiKtmn<br/>2.12 .S.ini(ilc Applets I'rosulcsi with the |[)K<br/>2.1.^ Sitnple lava Ap['»let; I)rawitit; a .Sirinp<br/>2.11! I.xeciitiiit:'^elcomeApplet in the applet viewer<br/>2.1.12 I xeiiitmu an Applet in a \X eh ilowsei<br/>2.14 Applet 1 ik'-( vtle Mctlnuls<br/>2.15 Initiali/int: an Instance \ ariahle with Method init<br/>2.16 .Saruih« ).\ Seciiritv .Model<br/>2.1" Java \X eh Start and the lava Network I aiinih Protocol (|N1 P*<br/>2.^.". 1 Paekaginu the DrawTest .Apfdet for I se with lava \X eh Start<br/>2.1".2 j.N'l.P I)ociiment for the DrawTest Applet<br/>2.18 VC'rap-L'[)<br/>24 Multimedia: Applets and Applications<br/>24.1 Introduction<br/>24.2 Loading, Di.splaying and Scaling linages<br/>24..3 Animating a Series of Images<br/>24.4 Image Maps<br/>24.5 Loading and Playing Audio Cdips<br/>24.6 Playing Video and Other Media with Java Media I ramework<br/>24.7 Wrap-Up<br/>24.8 Web Resources<br/>25 GUI Components: Part 2<br/>25.1 Introduction<br/>25.2 JSlider<br/>25.3 Windows: Additional Notes<br/>25.4 Using Menus with Frames<br/>25.5 JPopupMenu<br/>25.6 Pluggable Look-and-Feel<br/>25.7 JDesktopPane and Hnternal Frame<br/>25.8 DTabbedPane<br/>25.9 Layout Managers: BoxLayout and CridBagLayout<br/>25.10 Wrap-Up<br/>26 Multithreading<br/>26.1 Introduction<br/>26.2 Thread States: Life Cycle of a I bread<br/>26.3 Thread Priorities and Thread Scheduling<br/>26.4 Creating and Executing Threads<br/>26.4.1 Runnables and the Thread Class<br/>26.4.2 Thread Management with the Executor Framework<br/>26."^ rhrc.ul Synchroiii/ation<br/>26.^.1 I'nsviu hroiii/fil n.ua Sharing<br/>26.S.2 SyiKhroMi/cd 1 )ata Sharing Making (.Operations Atomu<br/>26.6 Prothicer/C.onsumer Relationship without Synehroni/ation<br/>26." Protivicer/C'.onsunier Relationship; ArrayBlockinqQueue<br/>26.(S Proclucer/C"onsunier Relationship with .Synchronization<br/>26.6 Prodiicer/C'onsiinier Relationship: Houiuled Biilkrs<br/>26.10 Prochicer/Consumer Relationship: I he Lock ami Condition Interlaces<br/>26.1 1 .Multithreading with (il l<br/>26.1 1 .1 Performing (-omputations in a OX orker I hread<br/>26.1 1 .2 Processing Intermediate Results with SvvingWorker<br/>26.12 Interfaces Callable and Future<br/>26.1.1 \X'rap-Up<br/>27 Networking<br/>27.1 Introduction<br/>27.2 Manipulating URLs<br/>27.3 Reading a File on a Web Server<br/>27.4 Flstabli.shing a Simple SeiA'er Using Stream Sockets<br/>27.3 Establi.shing a Simple Client Using Stream Sockets<br/>27.6 C:iient/Server Interaction with Stream Socket C:onnections<br/>27.7 (]onncctionle,ss Cdient/Servcr Interaction with Datagrams<br/>27.8 Cdient/Sei^er ric- Tac-Toe Using a Multithreaded Server^<br/>27.9 [Web Bonus] Ca.se Study: Dei telMessenger Server and Cdient<br/>27.10 Wrap-Up<br/>28 Accessing Databases with JDBC<br/>28.1 Introduction<br/>28.2 Relational Databases<br/>28.3 Relational Database Overview: The books Database<br/>28.4 SQL<br/>28.4.1 Basic SELECT Query<br/>28.4.2 WHERE Clause<br/>28.4.3 ORDER BY Clause<br/>28.4.4 Merging Data from Multiple Tables; INNER DOIN<br/>28.4.5 INSERT Statement<br/>28.4.6 UPDATE Statement<br/>28.4.7 DELETE Statement<br/>28.5 Instructions for Installing MySQL and MySQL Connector/J<br/>28.6 Instructions for Setting Up a MySQL User Account<br/>28.7 Creating Database books in MySQL<br/>28.8 Manipulating Databases with JDBC<br/>28.8.1 Connecting to and Querying a Database<br/>28.8.2 Querying the books Database<br/>28.9 RowSet Interface<br/>28.10 Java DB/Apache Derby '<br/>28.11 PreparedStatements<br/>28.12 Stored Procedures<br/>28.13 Transaction Processing<br/>28.14 Wrap-Up<br/>28.15 Web Resources<br/>29 JavaScrvcr^'*' Faces Web Applications<br/>29.1 Introduction<br/>29.2 Simple HTTP Transactions<br/>29.3 Multitier Application Architecture<br/>29.4 Java Web Technologies<br/>29.4.1 Servlets<br/>29.4.2 JavaServer Pages<br/>29.4.3 JavaServer Faces<br/>29.4.4 Web Technologies in NetBeans<br/>29.5 Creating and Running a Simple Application in NetBeans<br/>29.5.1 Examining a JSP Document<br/>29.5.2 Examining a Page Bean File<br/>29.5.3 Event-Processing Life Cycle<br/>29.5.4 Building a Web Application in NetBeans<br/>29.6 JSF Components<br/>29.6.1 Text and Graphics Components<br/>29.6.2 Validation Using Validator Components and Custom Validators<br/>29.7 Session Tracking<br/>29.7.1 Cookies<br/>29.7.2 Session Tracking with Session Beans<br/>29.8 Wrap-Up<br/>30 Ajax-Enabled JavaServcr^*^ Faces Web<br/>Applications<br/>30.1 Introduction<br/>30.2 Accessing Databases in Web Applications<br/>30.2.1 Building a Web Application That Displays Data from a Daubase<br/>30 2.2 Modifying the Page Bean File for the AddressBook Application<br/>30.3 Ajax-Enabled JSF Components<br/>30.4 Creating an Autocomplete Text Reld and Using Virtual Forms<br/>30.4.1 Configuring Virtual Forms<br/>30.4.2 JSP File with Virtual Forms and an Autocomplete Text Field<br/>30.4.3 Providing Su^estions for an Autocomplete Text Field<br/>30.4.4 Displaying the Contaa's Information<br/>30.5 Wrap-Up<br/>3 i Web Services<br/>31.1 Introduction<br/>31.2 Web Service Basics<br/>31.3 Simple Object Access Protocol (SOAP)<br/>31.4 Representational State Transfer (REST)<br/>31.5 JavaScript Object Notation OSON)<br/>31.6 Publishing and Consuming SOAP-Based Web Services<br/>31.6.1 Creating a Web Application Project and Adding a Web Service<br/>Class in NetBeans<br/>31.6.2 Defining the Wei comeSOAP Web Service in NetBeans<br/>31.6.3 Publishing the Wei comeSOAP Web Service from NetBeans<br/>31.6.4 Testing the Wei comeSOAP Web Service with GlassFish<br/>Application Server's Tester Web Page<br/>31.6.5 Describing a Web Service with the Web Service Description<br/>Langu^e (WSDL)<br/>31.6.6 Creating a Client to Consume the Wei comeSOAP Web Service<br/>31.6.7 Consuming the Wei comeSOAP Web Service<br/>31.7 Publishing and Consuming REST-Based XML Web Services<br/>31.7.1 Creating a REST-Based XML Web Service<br/>31.7.2 Consuming a REST-Based XML Web Service<br/>31.8 Publishing and Consuming REST-Based JSON Web Services<br/>31.8.1 Creating a REST-Based JSON Web Service<br/>31.8.2 Consuming a REST-Based JSON Web Service<br/>31.9 Session Tracking in a SOAP-Based Web Service<br/>31.9.1 Creating a B1 ackj ack Web Service<br/>31.9.2 Consuming the B1 ack j ack Web Service<br/>31.10 Consuming a Database-Driven SOAP-Based Web Service<br/>31.10.1 Creating the Reservation Database<br/>31.10.2 Creating a Web Application to Interact with the Reservation<br/>Service<br/>31.11 Equation Generator; Returning User-Defined Types<br/>31.11.1 Creating the REST-Based XML EquationCenerator<br/>Web Service<br/>31.11.2 Consuming the REST-Based XML EquationCenerator<br/>Web Service<br/>31.11.3 Creating the REST-Based JSON EquationCenerator<br/>Web Service<br/>31.11.4 Consuming the REST-Based JSON EquationCenerator<br/>31.12 Wrap-Up<br/>Web Service |