© 1992-2005. Deitel & Associates, Inc. All Rights Reserved.
|
| | Illustrations | xvi |
| Preface | xxix |
1 | Introduction | 1 |
1.1 | Introduction | 2 |
1.2 | Computing Advancements and Web Services | 3 |
1.2.1 | 3 |
1.2.2 | 4 |
1.2.3 | 5 |
1.2.4 | 6 |
1.3 | Emergence of Web Services | 7 |
1.4 | Web Services Advantages | 8 |
1.5 | Real Web Services | 9 |
1.6 | Web Services Challenges | 11 |
1.7 | Java Web Services Software | 12 |
1.7.1 | 12 |
1.7.2 | 12 |
1.7.3 | 13 |
1.8 | Tour of the Book | 15 |
1.9 | Summary | 20 |
2 | Creating Markup with XML | 23 |
2.1 | Introduction | 24 |
2.2 | Introduction to XML Markup | 24 |
2.3 | Parsers and Well-Formed XML Documents | 27 |
2.4 | Characters | 28 |
2.4.1 | 28 |
2.4.2 | 28 |
2.5 | CDATA Sections and Processing Instructions | 30 |
2.6 | XML Namespaces | 32 |
2.7 | Summary | 35 |
2.8 | Internet and World Wide Web Resources | 35 |
3 | Document Type Definition (DTD) | 37 |
3.1 | Introduction | 38 |
3.2 | Parsers and Well-Formed and Valid XML Documents | 38 |
3.3 | Document Type Declaration | 39 |
3.4 | Element Type Declarations | 40 |
3.4.1 | 42 |
3.4.2 | 45 |
3.5 | Attribute Declarations | 47 |
3.6 | Attribute Types | 48 |
3.6.1 | 49 |
3.6.2 | 54 |
3.7 | Conditional Sections | 55 |
3.8 | Whitespace Characters | 56 |
3.9 | Summary | 58 |
3.10 | Internet and World Wide Web Resources | 59 |
4 | Document Object Model (DOM™) | 60 |
4.1 | Introduction | 61 |
4.2 | DOM with Java | 62 |
4.3 | DOM Components | 66 |
4.4 | Creating Nodes | 73 |
4.5 | Traversing the DOM | 77 |
4.6 | Summary | 81 |
4.7 | Internet and World Wide Web Resources | 81 |
5 | XSL: Extensible Stylesheet Language Transformations (XSLT) | 82 |
5.1 | Introduction | 83 |
5.2 | Applying XSLTs with Java | 83 |
5.3 | Simple Transformation Example | 85 |
5.4 | Creating Elements and Attributes | 87 |
5.5 | Iteration and Sorting | 90 |
5.6 | Conditional Processing | 94 |
5.7 | Combining Style Sheets | 96 |
5.8 | Summary | 104 |
5.9 | Internet and World Wide Web Resources | 105 |
6 | SOAP-Based Web-Services Platforms | 106 |
6.1 | Introduction | 108 |
6.2 | Developing a Web Service | 109 |
6.3 | Axis | 110 |
6.3.1 | 110 |
6.3.2 | 111 |
6.3.3 | 111 |
6.3.4 | 113 |
6.4 | CapeConnect 3.5 | 114 |
6.4.1 | 114 |
6.4.2 | 115 |
6.4.3 | 117 |
6.4.4 | 119 |
6.5 | GLUE Standard 3.0 | 122 |
6.5.1 | 123 |
6.5.2 | 123 |
6.5.3 | 124 |
6.5.4 | 130 |
6.6 | IONA Orbix E2A XMLBus 5.2 | 131 |
6.6.1 | 131 |
6.6.2 | 131 |
6.6.3 | 135 |
6.6.4 | 139 |
6.7 | WASP Server for Java 4.0 | 140 |
6.7.1 | 142 |
6.7.2 | 143 |
6.7.3 | 144 |
6.7.4 | 146 |
6.8 | Developing a Web-Services Client | 149 |
6.8.1 | 149 |
6.8.2 | 150 |
6.9 | Simple Object Access Protocol (SOAP) | 153 |
6.10 | 156 |
6.11 | 157 |
7 | Web Services Description Language | 158 |
7.1 | Introduction | 159 |
7.2 | History of WSDL | 159 |
7.3 | Role of WSDL in Web Services | 159 |
7.4 | WSDL Document Structure | 160 |
7.5 | WSDL Document Generation | 164 |
7.6 | Using WSDL in Developing a Web-Service Client | 170 |
7.7 | Remote Web-Service Invocation Using WSDL | 174 |
7.8 | Summary | 185 |
8 | UDDI, Discovery and Web Services Registries | 187 |
8.1 | Introduction | 188 |
8.2 | Discovery | 189 |
8.3 | SOAP, UDDI and WSDL | 189 |
8.4 | Universal Description, Discovery and Integration (UDDI) | 190 |
8.4.1 | 191 |
8.4.2 | 191 |
8.5 | Role of UDDI in Web Services | 192 |
8.5.1 | 192 |
8.5.2 | 192 |
8.5.3 | 197 |
8.6 | UDDI Registries | 198 |
8.6.1 | 198 |
8.6.2 | 203 |
8.7 | Limitations of UDDI | 203 |
8.8 | Other Discovery Technologies | 204 |
8.8.1 | 204 |
8.8.2 | 205 |
8.9 | Summary | 206 |
8.10 | Internet and Web Resources | 207 |
9 | Java API for XML-Based Remote Procedure Calls (JAX-RPC) | 211 |
9.1 | Introduction | 212 |
9.2 | JAX-RPC Overview | 213 |
9.3 | Simple Web Service: Vote Service | 214 |
9.3.1 | 216 |
9.3.2 | 217 |
9.3.3 | 218 |
9.3.4 | 221 |
9.3.5 | 226 |
9.4 | Improved Vote Service | 257 |
9.4.1 | 259 |
9.4.2 | 263 |
9.4.3 | 267 |
9.5 | Accessing Web Services Written by a Third Party | 271 |
9.5.1 | 272 |
9.5.2 | 272 |
9.6 | Summary | 278 |
9.7 | Internet and World Wide Web Resources | 279 |
10 | Java API for XML Registries (JAXR) | 280 |
10.1 | Introduction | 281 |
10.1.1 | 282 |
10.1.2 | 282 |
10.2 | Registering for XML Registry Access | 284 |
10.2.1 | 284 |
10.2.2 | 285 |
10.3 | Connecting to an XML Registry | 285 |
10.4 | Registering Business Profile | 288 |
10.4.1 | 300 |
10.5 | Querying Registries Using JAXR | 301 |
10.6 | Removing Business Profile | 310 |
10.7 | Query Manager and Life Cycle Manager Providers’ URLs | 317 |
10.8 | Summary | 318 |
10.9 | Internet and World Wide Web Resources | 319 |
11 | JAXM and SAAJ | 320 |
11.1 | Introduction | 321 |
11.2 | Java Messaging APIs | 321 |
11.3 | JAXM and SAAJ | 322 |
11.4 | Standalone JAXM Clients and JAXM Web Services | 323 |
11.5 | JAXM Application with Message Provider | 339 |
11.6 | Summary | 370 |
12 | Computer and Internet Security | 372 |
12.1 | Introduction | 373 |
12.2 | Ancient Ciphers to Modern Cryptosystems | 374 |
12.3 | Secret-Key Cryptography | 375 |
12.4 | Public-Key Cryptography | 377 |
12.5 | Cryptanalysis | 380 |
12.6 | Key Agreement Protocols | 380 |
12.7 | Key Management | 381 |
12.8 | Digital Signatures | 382 |
12.9 | Public-Key Infrastructure, Certificates and Certificate Authorities | 383 |
12.9.1 | 385 |
12.10 | Security Protocols | 386 |
12.10.1 | 386 |
12.10.2 | 387 |
12.11 | Authentication and Authorization | 388 |
12.11.1 | 389 |
12.11.2 | 389 |
12.11.3 | 390 |
12.12 | Security Attacks | 391 |
12.12.1 | 392 |
12.12.2 | 392 |
12.12.3 | 394 |
12.13 | Network Security | 395 |
12.13.1 | 395 |
12.13.2 | 396 |
12.14 | Steganography | 397 |
12.15 | Summary | 398 |
12.16 | Internet and Web Resources | 400 |
13 | Web Services Security | 408 |
13.1 | Introduction | 409 |
13.2 | Basic Security for Transmissions over HTTP | 410 |
13.3 | Web Services and Secure Sockets Layer (SSL) | 411 |
13.4 | XML Signature and XML Encryption | 412 |
13.5 | XML Key Management Specification (XKMS) | 418 |
13.6 | Security Assertion Markup Language (SAML) | 422 |
13.7 | Extensible Access Control Markup Language (XACML) | 426 |
13.8 | Authentication and Authorization for Web Services | 430 |
13.9 | Web Services and Network Security | 431 |
13.10 | Summary | 432 |
13.11 | Internet and Web Resources | 433 |
14 | Wireless Web Services and Java 2 Micro Edition | 439 |
14.1 | Introduction | 440 |
14.2 | Java 2 Micro Edition | 440 |
14.2.1 | 440 |
14.2.2 | 444 |
14.3 | Using J2ME to Access Web Services via Servlets | 447 |
14.4 | Using J2ME to Access Web Services via Enhydra’s kSOAP | 460 |
14.5 | Summary | 466 |
14.6 | Internet and World Wide Web Resources | 467 |
15 | Case Study Architecture and Web-Service Implementations | 469 |
15.1 | Introduction | 470 |
15.2 | Price Finder Application Architecture | 470 |
15.3 | Deitel Book Information Web Service | 472 |
15.4 | Bookstore Implementations | 475 |
15.5 | Price Finder Web Services | 493 |
15.5.1 | 499 |
15.5.2 | 507 |
15.5.3 | 507 |
16 | Case Study Client Applications | 517 |
16.1 | Introduction | 518 |
16.2 | Servlet-based Web Client | 518 |
16.2.1 | 519 |
16.2.2 | 521 |
16.2.3 | 524 |
16.2.4 | 524 |
16.2.5 | 529 |
16.2.6 | 532 |
16.2.7 | 534 |
16.3 | Swing Desktop Client | 536 |
16.4 | Java™ 2 Micro Edition Wireless Client | 545 |
17 | Case Study Deployment | 569 |
17.1 | Introduction | 570 |
17.2 | Deploying the Bookstore Web Services | 570 |
17.2.1 | 570 |
17.2.2 | 571 |
17.2.3 | 574 |
17.2.4 | 576 |
17.3 | Book Information Web Service Deployment Instructions | 577 |
17.4 | PriceFinder Deployment Instructions | 577 |
A | Servlets | 583 |
A.1 | Introduction | 584 |
A.2 | Servlet Overview and Architecture | 586 |
A.2.1 | 587 |
A.2.2 | 589 |
A.2.3 | 590 |
A.2.4 | 591 |
A.3 | Handling HTTP get Requests | 592 |
A.3.1 | 596 |
A.3.2 | 597 |
A.4 | Handling HTTP get Requests Containing Data | 602 |
A.5 | Handling HTTP post Requests | 605 |
A.6 | Redirecting Requests to Other Resources | 608 |
A.7 | Session Tracking | 612 |
A.7.1 | 613 |
A.7.2 | 621 |
A.8 | Multi-Tier Applications: Using JDBC from a Servlet | 630 |
A.9 | HttpUtils Class | 637 |
A.10 | Summary | 637 |
A.11 | Internet and World Wide Web Resources | 641 |
B | JavaServer Pages (JSP) | 643 |
B.1 | Introduction | 644 |
B.2 | JavaServer Pages Overview | 645 |
B.3 | A First JavaServer Page Example | 646 |
B.4 | Implicit Objects | 648 |
B.5 | Scripting | 649 |
B.5.1 | 650 |
B.5.2 | 651 |
B.6 | Standard Actions | 654 |
B.6.1 | 655 |
B.6.2 | 660 |
B.6.3 | 663 |
B.6.4 | 667 |
B.7 | Directives | 684 |
B.7.1 | 684 |
B.7.2 | 686 |
B.8 | Custom Tag Libraries | 688 |
B.8.1 | 689 |
B.8.2 | 693 |
B.8.3 | 697 |
B.9 | Summary | 703 |
B.10 | Internet and World Wide Web Resources | 706 |
| Index | 707 |