Home > Store

Special Edition Using Java 2, Enterprise Edition

Register your product to gain access to bonus material or receive a coupon.

Special Edition Using Java 2, Enterprise Edition


  • Sorry, this book is no longer in print.
Not for Sale



Question 1: What about the license for BEA WebLogic? I get a message that the server cannot be started because the license has expired.

Solution 1: To obtain a license key that will activate the WebLogic Server 5.0.1 demo, please go to http://www.bea.com/eval/usej2ee/


  • Copyright 2001
  • Edition: 1st
  • Book
  • ISBN-10: 0-7897-2503-7
  • ISBN-13: 978-0-7897-2503-5

Java 2 Enterprise Edition is a combination of Java-related technologies including Java Server Pages, Servlets, and Enterprise Java Beans. Working together these “pieces” make Java a viable solution for enterprise-scale applications. "SE Using J2EE" starts with a section covering the core J2EE components and how they fit into the overall application architecture. The book then builds off this foundation to explore the practical applications of J2EE including incorporating XML into J2EE, creating wireless Web applications, network programming with J2EE, managing security and encryption, object programming with Serialization and Reflection, and programming Java applets in the enterprise. Later chapters discuss alternative approaches to solving problems in J2EE applications including debugging, decompiling and disassembly. The book finishes with a useful reference section discussing each of the core J2EE APIs.

Sample Content

Online Sample Chapters

Creating a Session Bean

JMS and the Importance of Messaging

JNDI—Java Naming and Directory Interface

Table of Contents


Who Should Buy This Book. How This Book Is Organized. Conventions Used in This Book.


1. Application Architecture Concepts.

The Three Layers of an Application. Single-Tiered Applications. Two-Tiered Applications. Three-Tiered Applications. The Trade-Offs The “ilities”. Hybrid Architectures. Case Study: An Online Ordering System.

2. A Quick Primer on SQL.

Introduction to Relational Databases. Relationships. The Structured Query Language (SQL) Auto-Generated Keys. Troubleshooting.

3. JDBC—The Java Database API.

What Is JDBC? JDBC Core Components. A Simple Database Query Program. Inserting, Updating, and Deleting Data. Updating Data from a Result Set. The JDBC Optional Package. Troubleshooting.

4. Remote Method Invocatione.

What Is RMI? Creating an RMI Server Object. Creating an RMI Client. Remote Method Parameters. Using the RMI Registry. Implementing a Remote Object Factory. Performing Callbacks. Remote Activation. Troubleshooting.

5. Overview of Enterprise JavaBeans.

The Need for EJB. Containers, Components, and Connectors. Enterprise JavaBeans Session Beans. Entity Beans. Transactions. Core Technologies. Case Study.

6. Creating a Session Bean.

What Does a Session Bean Do? A “Hello World” Session Bean Creating a Stateless Session Bean. More Details About Session Beans. Creating a Session Bean That Does Some Work. Troubleshooting.

7. Creating an Entity Bean.

What Is an Entity Bean? How an Entity Bean Interacts with the Database. Creating an Entity Bean with Bean-Managed Persistence. More Details About Entity Beans. Using an Entity Bean from a Session Bean. Passing References from One Entity Bean to Another. Troubleshooting.

8. Using Container-Managed Persistence. Why Use Container-Managed Persistence (CMP)? Creating a CMP Entity Bean Under EJB 1.1. Creating a CMP Entity Bean Under EJB 2.0. Troubleshooting.
9. EJB Transactions.

Why Transactions Are Important? The ACID Test. Who Starts and Ends a Transaction? Using Container-Managed Transactions. Using the SessionSynchronization Interface. Using the Java Transaction API (JTA) for Bean-Managed Transactions. Troubleshooting.

10. Mapping Objects to a Relational Database.

Relational Models Versus Object Models. Performance Issues. Using an Object Database. Using the TopLink Object-to-Relational Mapper. Troubleshooting.

11. Debugging an EJB.

Why Debugging Is Tough. Using Log Files to Debug an Application. Using Debugger. Debugging an Enterprise JavaBean. Troubleshooting.

12. EJB Design.

Client Access to Enterprise JavaBeans. Session Beans Versus Entity Beans. Creating View Objects. Improving EJB Performance. Case Study.


13. Servlets.

What Is a Servlet? A “Hello World” Servlet. The Anatomy of a Servlet. The HttpServlet Class. Troubleshooting.

14. Java Server Pages.

A “Hello World” Java Server Page. Using the % % Tags in a Java Server Page. Displaying a Value with %= %;. Inserting Comments. Declaring Methods and Variables with %! %. Handling Multiple Threads in a JSP. Choosing Between Servlets and Java Server Pages. Troubleshooting.

15. Common JSP Tasks.

A Simple HTML Form. Using the request Object. Retrieving Form Variables in a Servlet. Storing Data in a session Object. How Sessions Work. Forcing a New Session. Handling Session Termination. Handling Sessions Without Cookies. Troubleshooting.

16. Extending JSP with New Tags.

Including Other Files. Forwarding to Another Page. The jsp:useBean Tag. Custom Tag Extensions. A “Hello World” Tag. Packaging and Installing a Tag. Conditional Includes Using Custom Tags. Accessing Tag Attributes. Processing Body Content with a Custom Tag. Adding Scripting Variables. Troubleshooting.


17. CORBA.

What Is CORBA? The Interface Definition Language (IDL). Creating a CORBA Server. Creating a CORBA Client. Attributes. More About IDL. Factories. Callbacks. Object References. Dynamic Invocation. Using CORBA and RMI Together. CORBA Application Architecture. Additional CORBA Services. Troubleshooting.

18. JNDI—Java Naming and Directory Interface.

A Centralized Directory. JNDI Basics. Directory Operations. Using LDAP with JNDI. LDAP Classes and Attributes. Troubleshooting.

19. JMS—The Java Message Service.

The Importance of Messaging. Types of Messaging. The Java Message Service (JMS). More About Messages. Message-Driven Beans. Troubleshooting.

20. Connecting to Existing Systems.

Types of External System Connections. Socket Connections to Existing Systems. Sending Messages to Existing Systems. Using Custom Access Libraries. Using the J2EE Connector API. Case Study.

21. Packaging and Installing a J2EE Application. Using an Automated EJB Packaging Tool. How Enterprise JavaBeans Are Packaged. EJB Deployment Descriptor Options. Packaging Java Server Pages and Servlets. WAR Configuration Options. Application Deployment. EAR Descriptor Options. Troubleshooting.


22. XML—The Extensible Markup Language.

What XML Is and Isn't. Why XML Is Important in J2EE. Basic XML Syntax. Creating a Document Type Definition (DTD). Other XML Specifications. Java Meets XML. Creating XML Documents with Java. Parsing an XML Document with Java. Troubleshooting.

23. Using XSL to Translate XML Documents.

What Is XSL?. A Simple XSL Style Sheet. Using a Standalone XSL Processor. Applying XSL Templates on the Browser. Applying XSL Templates from a Servlet. Navigating an XML Document with XPath. JSP or Style Sheets?. Troubleshooting.

24. Using Java-XML Tools.

The Need for Additional Tools. The Example XML and Java Bean Files. Using KBML to Serialize and Deserialize Java Beans. Using JOX to Read and Write Objects in XML. Using Quick to Read and Write Objects in XML. Troubleshooting.

25. Remote Method Calls with XML-SOAP.

What Is SOAP? Using SOAP with Java. Using SOAP with Enterprise Java Beans. Sending SOAP Requests via Email. Troubleshooting.


26. Networks and Network Protocols.

The Importance of Understanding the Network. The Internet Protocol. Domain Name Service (DNS). Firewalls.

27. Network Programming.

Socket Programming. Using Datagram Sockets. Choosing Between TCP and UDP. Troubleshooting.

28. Overview of Internet Protocols.

Who Defines Internet Protocols. Where to Find Internet Standards. Basic Features of Internet Protocols. Some Common Internet Protocols. An In-Depth Look at the File Transfer Protocol. Case Study.

29. The HTTP Protocol.

The HTTP Protocol. Common Request Headers. Common Response Headers. The HTTP POST Command. GET Versus POST. HTTPS—Secure HTTP. Case Study.

30. SMTP, POP3, and IMAP4—The E-mail Protocols.

The Simple Mail Transport Protocol. The Post Office Protocol, Version. The Internet Message Access Protocol. The Java Mail API. Troubleshooting.

31. Proxies and Relays.

Connections Are Everywhere. Using a Relay to Trace Data. Relaying Datagrams. Creating a Custom Socket. Case Study.


32. Introduction to Encryption Techniques.

What Is Encryption? Encryption Terminology. Choosing the Right Kind of Encryption. Guarding Against Malicious Attacks. Digital Signatures. Digital Certificates. Case Study.

33. Encrypting Data.

The Java Cryptography Extension. Generating an Encryption Key. Encrypting Data. Decrypting Data. Encrypting Objects. A Quick and Dirty Public Key Implementation. Accessing the Keystore. Exchanging Keys. Troubleshooting.

34. Digitally Signing Data.

How Digital Signatures Work. A Simple Digital Signature Algorithm. Digitally Signing Data. Troubleshooting.

35. Using the Secure Socket Layer (SSL). How the Secure Socket Layer Works. Managing Keys and Certificates. Creating an SSL Server Program. Creating an SSL Client Program. Communicating with a Web Browser. An SSL Relay Program. Accessing Web Servers with SSL. Using SSL with RMI. Troubleshooting.
36. Java Security Features.

The Advantages of Built-In Security. The Java Security Framework. Signing a JAR File. Troubleshooting.

37. J2EE Security.

Role-Based Security. Basic Authentication. Creating a Custom Login Form. Checking Security Roles Programmatically. Using Client Certificates for Authentication. Troubleshooting.


38. Serialization.

The Many Uses of Serialization. Customizing Serialization. Dealing with Multiple Versions. Troubleshooting.

39. Reflection.

What Is Reflection? Examining Objects at Runtime. Suppressing Access Restrictions. Creating Dynamic Proxies. Improving Reflection Performance. Troubleshooting.

40. Dynamic Class Loading.

Loading Classes at Runtime. Designing Servers to Use Dynamic Class Loading. Troubleshooting.

41. Introspection.

How Introspection Works. Using Introspection in an Application. Choosing Between Introspection and Reflection. Troubleshooting.

42. The Model-View-Controller Paradigm.

What Is Model-View-Controller? Using Reflection to Implement MVC. Using MVC in a Web Application. Calling Multiple Controllers and Views. Case Study.

43. Code Generation.

Generating Code Automatically. Using XML to Describe Objects. Dealing with Changes. To Generate or Not to Generate. Case Study.


44. Applet Development.

Why and When to Use Applets. Creating an Applet. Applet Security Restrictions. Accessing Files and Data from an Applet. Improving Applet Downloads. Running Applets in a Standalone Application. Using the Java Plug-In. Troubleshooting.

45. Code Signing.

Why You Should Digitally Sign Code. Signing Code for the Java Plug-In. Signing Code for Internet Explorer. Signing Code for Netscape Navigator. Troubleshooting.

46. Using Enterprise JavaBeans from an Applet.

When Applets Make Sense in an EJB Application. Creating an Applet That Accesses an EJB. Getting to the Classes You Need. Troubleshooting.

47. Web Start—An Alternative to Applets.

What Is Web Start? Creating a Web Start Application. File Access and Other Useful Features. Troubleshooting.


48. Narrowing Down the Problem.

The Art of Debugging. Debugging Techniques. Narrowing Down the Problem. Troubleshooting.

49. Decompiling and Patching.

Decompiling a Java Class. Disassembling a Java Class. Patching a Java Library. Troubleshooting.


50. A J2EE Web Application.

Designing a Web-Based EJB Application. Creating the Entity Beans. Creating the Session Bean. Creating the Web Interface. Deploying the Application. Troubleshooting.

51. Using XML for Data Exchange.

Why XML Is Good for Data Exchange. Parsing XML with SAX and DOM. Troubleshooting.

52. Internationalization.

Detecting the Browser's Preferred Locale. Using Locale-Based Text Formatters. Using Resource Bundles. Troubleshooting.

53. Creating a Wireless Web Application.

A Wireless “Hello World” Page.

Brief Introduction to WML. Detecting Wireless Clients in a JSP or Servlet. A Wireless Score Entry and Reporting System. Troubleshooting.

54. Creating a Business-to-Business Application.

What Does Business-to-Business Mean? Using Different Methods of Communication Data Formatting Issues. Creating a B2B Application.



Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020