Table of Contents
| Ch. 1 | Overview | 1 |
| Ch. 2 | Understanding XML | 31 |
| Ch. 3 | Getting started with web applications | 81 |
| Ch. 4 | Java API for XML processing | 105 |
| Ch. 5 | Simple API for XML | 115 |
| Ch. 6 | Document object model | 175 |
| Ch. 7 | Extensible stylesheet language transformations | 245 |
| Ch. 8 | Building web services with JAX-RPC | 313 |
| Ch. 9 | SOAP with attachments API for Java | 339 |
| Ch. 10 | Java API for XML registries | 389 |
| Ch. 11 | Java servlet technology | 435 |
| Ch. 12 | JavaServer pages technology | 471 |
| Ch. 13 | JavaServer pages documents | 515 |
| Ch. 14 | JavaServer pages standard tag library | 537 |
| Ch. 15 | Custom tags in JSP pages | 563 |
| Ch. 16 | Scripting in JSP pages | 617 |
| Ch. 17 | JavaServer faces technology | 631 |
| Ch. 18 | Using JavaServer faces technology in JSP pages | 671 |
| Ch. 19 | Developing with JavaServer faces technology | 729 |
| Ch. 20 | Creating custom UI components | 761 |
| Ch. 21 | Configuring JavaServer faces applications | 791 |
| Ch. 22 | Internationalizing and localizing web applications | 819 |
| Ch. 23 | Enterprise beans | 829 |
| Ch. 24 | Getting started with enterprise beans | 853 |
| Ch. 25 | Session bean examples | 873 |
| Ch. 26 | Bean-managed persistence examples | 903 |
| Ch. 27 | Container-managed persistence examples | 939 |
| Ch. 28 | A message-driven bean example | 1003 |
| Ch. 29 | Enterprise JavaBeans query language | 1015 |
| Ch. 30 | Transactions | 1045 |
| Ch. 31 | Resource connections | 1075 |
| Ch. 32 | Security | 1087 |
| Ch. 33 | The Java message service API | 1153 |
| Ch. 34 | J2EE examples using the JMS API | 1221 |
| Ch. 35 | The coffee break application | 1255 |
| Ch. 36 | The Duke's bank application | 1301 |
| App. A | Java encoding schemes | 1341 |
| App. B | XML and related specs : digesting the alphabet soup | 1343 |
| App. C | HTTP overview | 1355 |
| App. D | J2EE connector architecture | 1357 |
Forewords & Introductions
About This Tutorial
The J2EE™ Tutorial, Second Edition is a guide to developing enterprise applications for the Java 2 Platform, Enterprise Edition (J2EE) version 1.4. Here we cover all the things you need to know to make the best use of this tutorial.
Who Should Use This Tutorial
This tutorial is intended for programmers who are interested in developing and deploying J2EE 1.4 applications on the Sun Java System Application Server Platform Edition 8.
Prerequisites
Before proceeding with this tutorial you should have a good knowledge of the Java programming language. A good way to get to that point is to work through all the basic and some of the specialized trails in The Java™ Tutorial, Mary Campione et al. (Addison-Wesley, 2000). In particular, you should be familiar with relational database and security features.
How to Read This Tutorial
The J2EE 1.4 platform is quite large, and this tutorial reflects this. However, you don't have to digest everything in it at once.
This tutorial opens with three introductory chapters, which you should read before proceeding to any specific technology area. Chapter 1 covers the J2EE 1.4 platform architecture and APIs along with the Sun Java System Application Server Platform Edition 8. Chapters 2 and 3 cover XML basics and getting started with Web applications.
When you have digested the basics, you can delve into one or more of the four main technology areas listed next.
- The Java XML chapters cover the technologies for developing applications that process XML documents and implement Web services components:
- The Java API for XML Processing (JAXP)
- The Java APIfor XML-based RPC (JAX-RPC)
- SOAP with Attachments API for Java (SAAJ)
- The Java API for XML Registries (JAXR)
- The Web-tier technology chapters cover the components used in developing the presentation layer of a J2EE or stand-alone Web application:
- Java Servlet
- JavaServer Pages (JSP)
- JavaServer Pages Standard Tag Library (JSTL)
- JavaServer Faces
- Web application internationalization and localization
- The Enterprise JavaBeans (EJB) technology chapters cover the components used in developing the business logic of a J2EE application:
- Session beans
- Entity beans
- Message-driven beans
- Enterprise JavaBeans Query Language
- The platform services chapters cover the system services used by all the J2EE component technologies:
- Transactions
- Resource connections
- Security
- Java Message Service
After you have become familiar with some of the technology areas, you are ready to tackle the case studies, which tie together several of the technologies discussed in the tutorial. The Coffee Break Application (Chapter 35) describes an application that uses the Web application and Web services APIs. The Duke's Bank Application (Chapter 36) describes an application that employs Web application technologies and enterprise beans.
Finally, the appendixes contain auxiliary information helpful to the J2EE application developer along with a brief summary of the J2EE Connector architecture:
- Java Encoding Schemes (Appendix A)
- XML standards (Appendix B)
- HTTP Overview (Appendix C)
- J2EE Connector Architecture (Appendix D)
About the Examples
This section tells you everything you need to know to install, build, and run the examples.
Required SoftwareTutorial Bundle
The tutorial example source is contained in the tutorial bundle, which is distributed on the accompanying CD-ROM.
After you have installed the tutorial bundle, the example source code is in the <INSTALL>/j2eetutorial14/examples/ directory, with subdirectories for each of the technologies discussed in the tutorial.
Application Server
The Sun Java System Application Server Platform Edition 8 is targeted as the build and runtime environment for the tutorial examples. To build, deploy, and run the examples, you need a copy of the Application Server and the Java 2 -Software Development Kit, Standard Edition (J2SE SDK) 1.4.2_04 or higher. The Application Server and J2SE SDK are contained in the J2EE 1.4 SDK, which is distributed on the CD-ROM accompanying the tutorial.
Application Server Installation Tips
In the Admin configuration pane of the Application Server installer,
- Select the Don't Prompt for Admin User Name radio button. This will save the user name and password so that you won't need to provide them when performing administrative operations with asadmin and deploytool. You will still have to provide the user name and password to log in to the Admin Console.
- Note the HTTP port at which the server is installed. This tutorial assumes that you are accepting the default port of 8080. If 8080 is in use during installation and the installer chooses another port, or if you decide to change it yourself, you will need to update the common build properties file (described in the next section) and the configuration files for some of the tutorial examples to reflect the correct port.
In the Installation Options pane, check the Add Bin Directory to PATH checkbox so that Application Server scripts (asadmin, asant, deploytool, and wscompile) override other installations.
Registry Server
You need a registry server to run the examples discussed in Chapters 10 and 35. Directions for obtaining and setting up a registry server are provided in those chapters.
Building the Examples
Most of the tutorial examples are distributed with a configuration file for asant, a portable build tool contained in the Application Server. This tool is an extension of the Ant tool developed by the Apache Software Foundation (
http://ant.apache.org). The asant utility contains additional tasks that invoke the Application Server administration utility asadmin. Directions for building the examples are provided in each chapter.
Build properties and targets common to all the examples are specified in the files <INSTALL>/j2eetutorial14/examples/common/build.properties and <INSTALL>/j2eetutorial14/examples/common/targets.xml. Build properties and targets common to a particular technology are specified in the files <INSTALL>/j2eetutorial14/examples/tech/common/build.properties and <INSTALL>/j2eetutorial14/examples/tech/common/targets.xml.
To run the asant scripts, you must set two common build properties as follows:
- Set the j2ee.home property in the file <INSTALL>/j2eetutorial14/examples/common/build.properties to the location of your Application Server installation. The build process uses the j2ee.home property to include the libraries in <J2EE_HOME>/lib/ in the classpath. All examples that run on the Application Server include the J2EE library archive--<J2EE_HOME>/lib/j2ee.jar--in the build classpath. Some examples use additional libraries in <J2EE_HOME>/lib/ and <J2EE_HOME>/lib/endorsed/; the required libraries are enumerated in the individual technology chapters.
<J2EE_HOME> refers to the directory where you have installed the Application Server or the J2EE 1.4 SDK. - If you did not use port 8080 when you installed the Application Server, set the value of the domain.resources.port property in <INSTALL>/j2eetutorial14/examples/common/build.properties to the correct port.
Tutorial Example Directory Structure
To facilitate iterative development and keep application source separate from compiled files, the source code for the tutorial examples is stored in the following structure under each application directory:
build.xml: asant build filesrc: Java source of servlets and JavaBeans components; tag librariesweb: JSP pages and HTML pages, tag files, and images
The asant build files (build.xml) distributed with the examples contain targets to create a build subdirectory and to copy and compile files into that directory.
Further Information
This tutorial includes the basic information that you need to deploy applications on and administer the Application Server.
For reference information on the tools distributed with the Application Server, see the man pages at
http://docs.sun.com/db/doc/817-6092.
See the Sun Java™ System Application Server Platform Edition 8 Developer's Guide at
http://docs.sun.com/db/doc/817-6087 for information about developer features of the Application Server.
See the Sun Java™ System Application Server Platform Edition 8 Administration Guide at
http://docs.sun.com/db/doc/817-6088 for information about administering the Application Server.