Preface | p. vii |
Acknowledgments | p. xi |
Getting Started | p. 1 |
Defining the Enterprise | p. 3 |
Introducing Enterprise Applications | p. 3 |
Introducing J2EE | p. 11 |
Getting Started | p. 19 |
Summary | p. 22 |
Introducing Enterprise Applications | p. 23 |
Business-to-Consumer Applications | p. 24 |
Business-to-Business Applications | p. 28 |
Back-End Applications | p. 31 |
Summary | p. 33 |
Delivering Content | p. 35 |
Creating Dynamic Content with Servlets | p. 37 |
What Is a Servlet? | p. 37 |
Creating a Basic HttpServlet | p. 39 |
Introducing the Servlet APIs | p. 47 |
Saving and Sharing Information | p. 52 |
Adding Functionality with filter, forward, and include | p. 54 |
Summary | p. 60 |
Using JavaServer Pages | p. 63 |
Creating a Basic JSP Page | p. 64 |
Putting the "J" in JSP | p. 69 |
Adding JavaBeans | p. 76 |
Using Custom Tags | p. 82 |
Bringing JSPs and Servlets Together | p. 88 |
Summary | p. 88 |
Sending and Receiving Mail with JavaMail | p. 91 |
What Is E-mail? | p. 91 |
Introducing JavaMail | p. 99 |
Sending an E-mail | p. 101 |
Receiving an E-mail | p. 111 |
Building E-mail Filters | p. 116 |
Summary | p. 121 |
Finding Things with Databases and Searches | p. 123 |
Interacting with Relational Databases | p. 125 |
What Is a Relational Database? | p. 126 |
Defining Information in an RDBMS | p. 130 |
Managing Data | p. 139 |
Searching for Information | p. 142 |
Summary | p. 147 |
Using JDBC to Interact with SQL Databases | p. 149 |
Java Abstractions of a Database | p. 149 |
Getting Started | p. 152 |
Connecting to a Database | p. 157 |
Database Data Structures | p. 165 |
Interacting with the Database | p. 180 |
Using Enterprise Features | p. 188 |
Summary | p. 194 |
Working with Directory Services and LDAP | p. 195 |
Introducing Directory Services | p. 195 |
Introducing LDAP | p. 199 |
Defining Information in an LDAP Database | p. 204 |
Interacting with the Database | p. 213 |
Building Custom Data Structures | p. 215 |
Summary | p. 221 |
Accessing Directory Services with JNDI | p. 223 |
Java Abstraction of Directory Services | p. 223 |
Connecting to a Service | p. 226 |
Interacting with Databases | p. 236 |
Summary | p. 244 |
Communicating Between Systems with XML | p. 245 |
Building an XML Foundation | p. 247 |
What Is XML? | p. 247 |
XML for Documents and Presentation | p. 253 |
XML for Configuration | p. 257 |
XML for Storing and Sharing Data | p. 259 |
XML Syntax | p. 264 |
Summary | p. 269 |
Describing Documents with DTDs and Schemas | p. 271 |
Producing Valid XML Documents | p. 272 |
Writing Document Type Definitions (DTDs) | p. 276 |
Validating XML | p. 281 |
Describing Documents with XML Schemas | p. 283 |
Summary | p. 291 |
Parsing Documents with JAXP | p. 293 |
Introducing JAXP | p. 293 |
Reaching for SAX | p. 302 |
Using the DOM | p. 308 |
Summary | p. 320 |
Interacting with XML Using JDOM | p. 321 |
Using JDOM | p. 322 |
The JDOM APIs | p. 328 |
Summary | p. 340 |
Transforming and Binding Your XML Documents | p. 343 |
Presenting XML | p. 343 |
Transforming XML | p. 359 |
Binding with JAXB | p. 367 |
Using the JAXB Bindings | p. 385 |
Summary | p. 393 |
Abstracting the System | p. 395 |
Exploring the RMI Mechanism | p. 397 |
The Components of a Basic RMI Application | p. 397 |
Running a Distributed Version | p. 404 |
Using Non-Remote Objects | p. 411 |
Activating Services | p. 416 |
Summary | p. 420 |
Introducing Enterprise JavaBeans | p. 421 |
Introducing a New Level of Abstraction | p. 422 |
Exploring the Components of an EJB Service | p. 426 |
Using Enterprise Beans on the Server Side | p. 435 |
Using Enterprise Beans on the Client Side | p. 473 |
Summary | p. 484 |
Using Advanced EJB Techniques | p. 485 |
Extending Enterprise Beans | p. 485 |
Using Message-Driven Beans | p. 499 |
Understanding Container-Managed Persistence | p. 505 |
Managing Bean-Security Issues | p. 532 |
Dealing with Bean-Configuration Issues | p. 543 |
Who Is Looking After the Code? | p. 546 |
Summary | p. 550 |
Introducing CORBA | p. 551 |
The Need for CORBA | p. 551 |
What Is CORBA? | p. 552 |
The Object Management Architecture | p. 553 |
Example: Calculating Simple Interest | p. 576 |
CORBA Services | p. 587 |
Differences between CORBA and RMI | p. 588 |
Summary | p. 588 |
CORBA Applications in the Enterprise | p. 589 |
Build the CORBA Object | p. 590 |
Develop the CORBA Server | p. 591 |
Develop the CORBA Client | p. 603 |
Summary | p. 616 |
Why Dream of Jini? | p. 617 |
A Quick Look at Jini | p. 617 |
Introducing Our Example | p. 619 |
Getting Jini Up and Running | p. 621 |
A Simple Proxy Jini Calculator Service | p. 629 |
Use Attributes in the Jini Calculator | p. 642 |
Cache the Services | p. 648 |
Use RMI Stubs as Thin Proxies | p. 654 |
Summary | p. 657 |
Building Big Systems | p. 659 |
Implementing Web Services | p. 661 |
A HelloWorld Service | p. 662 |
Understanding Simple Object Access Protocol (SOAP) | p. 669 |
Deploying Web Services | p. 673 |
Finding Web Services with UDDI | p. 677 |
Creating and Working with WSDL files | p. 681 |
Sending a Java Object to your Web Service | p. 691 |
Summary | p. 699 |
JMS | p. 701 |
Messages in the Middle | p. 701 |
Life before JMS | p. 702 |
MOM Meets JMS | p. 702 |
Types of Messaging Systems | p. 703 |
JMS Overview | p. 704 |
JMS System Setup | p. 710 |
Administered Objects | p. 710 |
Sending and Receiving Messages | p. 712 |
Messages in Detail | p. 722 |
Application Development with JMS | p. 727 |
Putting it All Together--an Example | p. 729 |
JMS and J2EE | p. 743 |
Summary | p. 746 |
Managing Transactions with JTA/JTS | p. 747 |
What Are Transactions? | p. 748 |
Java Transaction Service | p. 759 |
Java Transaction API | p. 760 |
How Do I Use JTA/JTS? | p. 765 |
ACME Widgets Inc.--A Shopping-Cart Demo | p. 778 |
Summary | p. 798 |
System Architecture Issues | p. 799 |
Designing Real-World Systems | p. 799 |
Dividing up the Workload | p. 804 |
Choosing a Design | p. 809 |
Implementing Security | p. 812 |
Summary | p. 815 |
J2EE Design Patterns | p. 817 |
Design-Pattern Basics | p. 817 |
Introducing Enterprise Design Patterns | p. 822 |
Summary | p. 830 |
Installing the J2EE Reference Implementation | p. 831 |
J2EE API Version Requirements | p. 877 |
J2EE Vendors and Systems | p. 881 |
Glossary | p. 889 |
Index | p. 895 |
Table of Contents provided by Syndetics. All Rights Reserved. |