Java 2 Platform, Enterprise Edition: Platform and Component Specifications

Java 2 Platform, Enterprise Edition: Platform and Component Specifications

Paperback

$37.68 $44.95 Save 16% Current price is $37.68, Original price is $44.95. You Save 16%.

Overview

The Java 2™ Platform, Enterprise Edition (J2EE) defines a new standard in enterprise solutions through a simplified, component-based development model. By extending the "write-once, run-anywhere™" benefits of the Java programming language to enterprise servers, J2EE adds the scalability, robustness, and security required for today's vital e-commerce and enterprise solutions. The Java™ 2 Platform, Enterprise Edition: Platform and Components Specifications defines the architecture for developing applications with J2EE. This volume includes:

Java™ 2 Platform, Enterprise Edition Specification, version 1.2
This specification defines the initial release of the J2EE platform. It discusses application architecture using Java™ Servlets, JavaServer Pages™, Enterprise JavaBeans™, and other technologies. It specifies application access to services such as JDBC™, Java Transaction API, JavaMail™, CORBA connectivity, and others. It also discusses J2EE policies regarding application deployment and security.
Enterprise JavaBeans™ Specification, version 1.1
Enterprise JavaBeans technology provides the standard middle-tier components in the J2EE model. This technology provides simplified support for transaction management and remote object access, and it frees enterprise developers to focus on the business logic of their applications. Version 1.1 of the specification includes a number of enhancements, including mandatory entity beans and XML deployment descriptors.
Java™ Servlet Specification, version 2.2
Java Servlets technology defines a standard for developing server-sidebehaviors in web applications based on the Java programming language. As part of the J2EE specifications, servlets technology supports development of dynamic web content for e-commerce and other enterprise applications.
JavaServer Pages™ Specification, version 1.2
The JavaServer Pages (JSP) technology simplifies the development and deployment of interactive web applications. Using an extensible markup language based on HTML and the Java programming language, JSP defines a server-side mechanism to allow content experts greater freedom in creating and displaying dynamic web content.

Developed with the input of a wide range of industry experts, these specifications define a new standard for resolving many complex issues related to developing, deploying, and managing multi-tier enterprise applications.



Product Details

ISBN-13: 9780201704563
Publisher: Pearson Education
Publication date: 05/26/2000
Series: Addison-Wesley Java Series
Pages: 800
Product dimensions: 7.42(w) x 9.20(h) x 1.14(d)

About the Author


Bill Shannon is a Distinguished Engineer at Sun Microsystems, where he is one of the architects of the J2EE. He previously worked on the JavaMail API, the HotJava Views product, the Common Desktop Environment, the Solaris operating system, and all versions of SunOS.

Mark Hapner is Lead Architect for the Java 2 Platform, Enterprise Edition. He participated in the development of the JDBC API, wrote the Java Message Service specification, and co-authored the Enterprise JavaBeans specification.

Vlada Matena is a Distinguished Engineer with the Java Software division of Sun Microsystems Inc., where he works on the J2EE architecture team. He is the Chief Architect of the Enterprise JavaBeans specification, and an architect of the JTS and JTA specifications.

James Davidson is a Staff Engineer at Sun Microsystems, working on web server-related technologies. Before joining Sun, James was involved in building some of the very first e-commerce sites on the World Wide Web.

Eduardo Pelegri-Llopart is the Web Layer Architect for the Java platform, coordinating technical efforts on the Servlet, JSP, and XML layers. He is also the co-spec lead for the JSP 1.0 and JSP 1.1.

Larry Cable is a Senior Staff Engineer with Sun Microsystems where he is the lead architect for the iPlanet Application Server developed jointly by Sun and Netscape.

Read an Excerpt


Chapter J2EE.2: Platform Overview

J2EE.2.2 Product Requirements

This specification doesn't require that a J2EE product be implemented by a single program, a single server, or even a single machine. In general, this specification doesn't describe the partitioning of services or functions between machines, servers, processes, etc. As long as the requirements in this specification are met, J2EE product providers can partition the functionality however they see fit. A J2EE product must be able to deploy application components that execute with the semantics described by this specification.

A very simple J2EE product might be provided as a single Java virtual machine that supports applets, web components, and enterprise beans simultaneously in one container (although this would be an extreme, and probably rare, case), and application clients each in their own container. A typical low end J2EE product will support applets in one of the popular browsers, application clients each in their own Java virtual machine, and will provide a single server that supports both web components and enterprise beans. A high end J2EE product might split the server components into multiple servers, each of which can be distributed and load-balanced across a collection of machines. This specification does not prescribe or preclude any of these configurations.

In addition, this specification does not describe which of the components that make up a J2EE product must be packaged together in a single product. A vendor of a fully integrated J2EE product might provide a complete package that includes all the software required to provide the J2EE services as well as the underlyingoperating system and even hardware. A more typical J2EE product provider might provide a middleware application server along with components that allow the server to integrate with products from other vendors (e.g., a database, a web server) to provide the complete J2EE product. Some vendors may require that the end customer purchase and integrate significant additional components to create a J2EE product. This specification does not prescribe or preclude any of these approaches. In all cases, it is the responsibility of the J2EE product provider to describe to the customer exactly what to do to create an environment that is J2EEcompatible.

A wide variety of J2EE product configurations and implementations, all of which meet the requirements of this specification, are possible. A portable J2EE application will function correctly when successfully deployed in any of these products.

J2EE.2.3 Product Extensions

This specification describes a minimum set of facilities that all J2EE products must provide. Most J2EE products will provide facilities beyond the minimum required by this specification. This specification includes only a few limits to the ability of a product to provide extensions. In particular, it includes the same restrictions as J2SE on extensions to Java APIs. A J2EE product may not add classes to the Java programming language packages included in this specification, and may not add methods or otherwise alter the signatures of the specified classes.

However, many other extensions are possible. A J2EE product may provide additional Java APIs, either other Java standard extensions or other (appropriately named) packages. A J2EE product may include support for additional protocols or services not specified here. A J2EE product may support applications written in other languages, or may support connectivity to other platforms or applications.

Of course, portable applications will not make use of any platform extensions. Applications that do make use of facilities not required by this specification will be less portable. Depending on the facility used, the loss of portability may be minor or it may be significant. The Java 2 Platform, Enterprise Edition Application Programming Model 1 will help application developers construct portable applications, and will contain advice on how best to manage the use of non-portable code when the use of such facilities is necessary.

In addition, we expect J2EE products to vary widely, and in fact compete, on various quality of service aspects. Different products will provide different levels of performance, scalability, robustness, availability, security, etc. In some cases this specification describes minimum required levels of service. Future versions of this specification may allow applications to describe their requirements in these areas.

J2EE.2.4 Platform Roles

This section describes typical Java 2 Platform, Enterprise Edition roles. Although these roles are considered to be typical, an organization could use slightly different roles to match that organization's actual application development and deployment workflow.

The following sections describe the roles in greater detail. Subsets of some of these roles are defined in the EJB, JSP, and servlet specifications.

J2EE.2.4.1 J2 EE Product Provider

A J2EE product provider, typically an operating system vendor, database system vendor, appl server vendor, or a web server vendor, implements a J2EE product providing the component containers, J2EE platform APIs, and other features defined in this specification. A J2EE product provider must provide the J2EE APIs to the application components through the containers. A product provider frequently bases an implementation on an existing infrastructure.

A J2EE product provider must provide the mapping of the application components to the network protocols as specified by this specification. A J2EE product is free to implement the interfaces that are not specified by this specification in an implementation-specific way.

A J2EE product provider must provide application deployment and management tools...

Table of Contents

Foreword xxxi
Java™ 2 Platform Enterprise Edition Specification, v1.2 1(118)
Introduction
3(2)
Acknowledgments
4(1)
Platform Overview
5(12)
Architecture
5(5)
Product Requirements
10(1)
Product Extensions
11(1)
Platform Roles
12(2)
J2EE Product Provider
12(1)
Application Component Provider
13(1)
Application Assembler
13(1)
Deployer
13(1)
System Administrator
14(1)
Tool Provider
14(1)
Platform Contracts
14(3)
J2EE API
14(1)
Network Protocols
15(1)
Deployment Descriptors
15(2)
Security
17(20)
Introduction
17(1)
A Simple Example
18(3)
Security Architecture
21(9)
Goals
21(1)
Non Goals
22(1)
Terminology
23(1)
Container Based Security
24(1)
Declarative Security
24(1)
Programmatic Security
24(1)
Distributed Security
25(1)
Authorization Model
25(1)
Role Mapping
26(1)
HTTP Login Gateways
27(1)
User Authentication
27(1)
Web Client
27(2)
Application Client
29(1)
Lazy Authentication
30(1)
User Authentication Requirements
30(3)
Web Clients
30(1)
Web Single Signon
30(1)
Login Sessions
30(1)
Requred Login Mechanisms
31(1)
Unauthenticated Users
31(1)
Application Clients
32(1)
Resource Authentication Requirements
33(1)
Authorization Requirements
33(1)
Code Authorization
33(1)
Caller Authorization
34(1)
Deployment Requirements
34(1)
Future Directions
35(2)
Interoperability
35(1)
Auditing
35(2)
Transaction Management
37(6)
Overview
37(2)
Requirements
39(2)
Web Components
39(1)
Enterprise JavaBeans™ Components
40(1)
Application Clients
40(1)
Applet Clients
41(1)
Transactional JDBC™ Technology Support
41(1)
Transaction Interoperability
41(1)
Multiple J2EE Platform Interoperability
41(1)
Support for Transactional Resource Managers
41(1)
System Administration Tools
42(1)
Naming
43(18)
Overview
43(1)
Java Naming and Directory Interface™ (JNDI) Naming Context
44(5)
Application Component Provider's Responsibilities
45(1)
Access to Application Component's Environment
45(2)
Declaration of Environment Entries
47(1)
Application Assembler's Responsibilities
48(1)
Deployer's Responsibilities
48(1)
J2EE Product Provider's Responsibilities
49(1)
Enterprise JavaBeans™ (EJB) References
49(5)
Application Component Provider's Responsibilities
49(1)
Programming Interfaces for EJB References
50(1)
Declaration of EJB References
51(1)
Application Assembler's Responsibilities
52(1)
Deployer's Responsibilities
53(1)
J2EE Product Provider's Responsibilities
53(1)
Resource Factory References
54(5)
Application Component Provider's Responsibilities
54(1)
Programming Interfaces for Resource FactoryReferences
54(2)
Declaration of Resource Factory Referebces
56(1)
Standard Resource Factory Types
56(1)
Deployer's Responsibilities
57(1)
J2EE Product Provider's Responsibilities
58(1)
System Administrator's Responsibilities
59(1)
UserTransaction References
59(2)
Application Component Provider's Responsibilities
60(1)
Deployer's Responsibilities
60(1)
J2EE Product Provider's Responsibilities
60(1)
System Administrator's Responsibilities
60(1)
Application Programming Interface
61(18)
Required APIs
61(1)
Java 2 Platform, Standard Edition (J2SE) Requirements
62(10)
Programming Restrictions
62(2)
Additional Requirements
64(1)
Networking
64(2)
AWT
66(1)
JDBC™ API
66(5)
Java ™ IDL
71(1)
RMI-JRMP
71(1)
JDBC™ 2.0 Standard Extension Requirements
72(1)
RMI-IIOP 1.0 Requirements
72(1)
Enterprise JavaBeans™ (EJB) 1.1 Requirements
72(1)
Servlet 2.2 Requirements
73(1)
JavaServer Pages™ (JSP) 1.1 Requirements
73(1)
Java™ Message Service (JMS) 1.0 Requirements
74(1)
Java Naming and Directory Interface™ (JNDI) 1.2 Requirements
74(1)
Java™ Transaction API (JTA) 1.0 Requirements
75(1)
JavaMail™ 1.1 Requirements
76(1)
JavaBeans™ Activation Framework 1.0 Requirements
77(2)
Interoperability
79(4)
Introduction to Interoperability
79(1)
Interoperability Protocols
80(3)
Internet Protocols
81(1)
OMG Protocols
81(1)
RMI Protocols
81(1)
Data Formats
82(1)
Application Assembly and Deployment
83(12)
Application Development Life Cycle
84(3)
Component Creation
85(1)
Component Packaging: Composing a J2EE Module
85(1)
Application Assembly
86(1)
Customization
86(1)
Deployment
86(1)
Application Assembly
87(1)
Assembling a J2EE Application
87(1)
Adding and Removing Modules
88(1)
Deployment
89(1)
Deploying a Stand-Alone J2EE Module
89(1)
Deploying a J2EE Application
89(1)
J2EE:application XML DTD
90(5)
Application Clients
95(10)
Overview
95(1)
Security
95(1)
Transactions
96(1)
Naming
96(1)
Application Programming Interfaces
97(1)
Packaging and Deployment
97(1)
J2EE: application-client XML DTD
98(7)
Service Provider Interface
105(2)
Future Directions
107(4)
Java™ Message Service API
107(1)
Enterprise JavaBeans™ (EJB)/IIOP Protocol
107(1)
J2EE SPI
108(1)
Connectors
108(1)
XML APIs
108(1)
JDBC RowSets
108(1)
Security APIs
109(1)
Deployment APIs
109(1)
Management APIs
109(1)
SQLJ Part 0
109(2)
Revision History
111(6)
Changes Since Public Draft
111(2)
Additional Requirements
111(1)
Removed Requirements
112(1)
Editorial Changes
112(1)
Changes Since Public Release 1
113(1)
Additional Requirements
113(1)
Removed Requirements
113(1)
Editorial Changes
113(1)
Changes Since Public Release 2
114(3)
Additional Requirements
114(1)
Removed Requirements
114(1)
Editorial Changes
114(3)
Related Documents
117(2)
Servlet Specification, v2.2 (SRV) 119(96)
Who Should Read This Specification
121(4)
API Reference
122(1)
Other Java™ Platform Specifications
122(1)
Other Important References
122(1)
Providing Feedback
123(1)
Acknowledgments
124(1)
Overview
125(4)
What Is a Servlet?
125(1)
What Is a Servlet Container?
125(1)
An Example
126(1)
Comparing Servlets with Other Technologies
126(1)
Relationship to Java 2 Enterprise Edition
127(1)
Distributable Servlet Containers
127(1)
Changes Since Version 2.1
127(2)
Terms Used
129(6)
Basic Terms
129(2)
Uniform Resource Locators
129(1)
Servlet Definition
130(1)
Servlet Mapping
130(1)
Web Application
130(1)
Web Application Archive
130(1)
Roles
131(1)
Application Developer
131(1)
Application Assembler
131(1)
Deployer
131(1)
System Administrator
132(1)
Servlet Container Provider
132(1)
Security Terms
132(3)
Principal
132(1)
Security Policy Domain
132(1)
Security Technology Domain
132(1)
Role
133(2)
The Servlet Interface
135(6)
Request Handling Methods
135(1)
HTTP Specific Request Handling Methods
135(1)
Conditional GET Support
136(1)
Number of Instances
136(1)
Note About SingleThreadModel
137(1)
Servlet Life Cycle
137(4)
Loading and Instantiation
137(1)
Initialization
137(1)
Error Conditions on Initialization
138(1)
Tool Considerations
138(1)
Request Handling
138(1)
Multithreading Issues
139(1)
Exceptions During Request Handling
139(1)
Thread Safety
140(1)
End of Service
140(1)
Servlet Context
141(4)
Scope of a ServletContext
141(1)
Initialization Parameters
142(1)
Context Attributes
142(1)
Context Attributes in a Distributed Container
142(1)
Resources
142(1)
Multiple Hosts and Servlet Contexts
143(1)
Reloading Considerations
143(1)
Temporary Working Directories
144(1)
The Request
145(8)
Parameters
145(1)
Attributes
146(1)
Headers
147(1)
Request Path Elements
147(2)
Path Translation Methods
149(1)
Cookies
150(1)
SSL Attributes
150(1)
Internationalization
150(3)
The Response
153(4)
Buffering
153(1)
Headers
154(1)
Convenience Methods
155(1)
Internationalization
155(1)
Closure of Response Object
156(1)
Sessions
157(4)
Session Tracking Mechanisms
157(1)
URL Rewriting
157(1)
Cookies
157(1)
SSL Sessions
158(1)
Creating a Session
158(1)
Session Scope
158(1)
Binding Attributes into a Session
159(1)
Session Timeouts
159(1)
Last Accessed Times
159(1)
Important Session Semantics
160(1)
Threading Issues
160(1)
Distributed Environments
160(1)
Client Semantics
160(1)
Dispatching Requests
161(4)
Obtaining a RequestDispatcher
161(1)
Query Strings in Request Dispatcher Paths
162(1)
Using a Request Dispatcher
162(1)
include
163(1)
Included Request Parameters
163(1)
forward
163(1)
Error Handling
164(1)
Web Applications
165(6)
Relationship to ServletContext
165(1)
Elements of a Web Application
166(1)
Distinction Between Representations
166(1)
Directory Structure
166(1)
Sample Web Application Directory Structure
167(1)
Web Application Archive File
167(1)
Web Application Configuration Descriptor
167(1)
Replacing a Web Application
168(1)
Error Handling
168(1)
Web Application Environment
168(3)
Mapping Requests to Servlets
171(4)
Use of URL Paths
171(1)
Specification of Mappings
172(3)
Implicit Mappings
172(1)
Example Mapping Set
172(3)
Security
175(8)
Introduction
175(1)
Declarative Security
176(1)
Programmatic Security
176(1)
Roles
177(1)
Authentication
177(3)
HTTP Basic Authentication
177(1)
HTTP Digest Authentication
178(1)
From Based Authentication
178(1)
Login Form Notes
179(1)
HTTPS Client Authentication
179(1)
Server Tracking of Authentication Information
180(1)
Specifying Security Constraints
180(3)
Default Policies
181(2)
Application Programming Interface
183(12)
Package javax.servlet
184(4)
RequestDispatcher
184(1)
Servlet
184(1)
ServletConfig
184(1)
ServletContext
184(1)
ServletRequest
185(1)
ServletResponse
186(1)
SingleThreadModel
186(1)
GenericServlet
186(1)
ServletInputStream
187(1)
ServletOutputStream
187(1)
ServletException
188(1)
UnavailableException
188(1)
Package javax.servlet.http
188(7)
HttpServletRequest
189(1)
HttpServletResponse
189(2)
HttpSession
191(1)
HttpSessionBindingListener
192(1)
HttpSessionContext
192(1)
Cookie
192(1)
HttpServlet
192(1)
HttpSessionBindingEvent
193(1)
HttpUtils
193(2)
Deployment Descriptor
195(18)
Deployment Descriptor Elements
195(1)
Deployment Descriptor DOCTYPE
195(1)
DTD
196(14)
Examples
210(3)
A Basic Example
210(1)
An Example of Security
211(2)
Futures
213(2)
Pages™ Specification, v1.1 (JSP) 215(146)
Who Should Read This Document
217(4)
Related Documents
218(1)
Acknowledgments
218(3)
Overview
221(16)
The JavaServer Pages™ Technology
221(1)
What Is a JSP Page?
222(3)
An Example Using Scripting and Beans
222(1)
An Example Using a Tag Library
223(2)
Components and Containers
225(1)
Features in JSP 1.1
225(1)
Overview of JSP Page Semantics
225(7)
Translating and Executing JSP Pages
225(1)
Compiling JSP Pages
226(1)
Objects and Scopes
227(1)
Fixed Template Data
228(1)
Directives and Actions
228(1)
Tag Extension Mechanism
229(1)
Scripting Languages
229(1)
Objects and Variables
230(1)
Scripts, Actions, and Beans
230(1)
JSP, HTML, and XML
231(1)
Web Applications
232(1)
Application Model
232(5)
Simple 21/2-Tier Application
232(1)
N-Tier Application
233(1)
Loosely Coupled Applications
233(1)
Using XML with JSP Technology
234(1)
Redirecting Requests
235(1)
Presentation JSP Pages and Front JSP Pages
236(1)
Including Requests
236(1)
Standard Syntax and Semantics
237(38)
General Syntax Rules
237(3)
Elements and Template Data
237(1)
Element Syntax
237(1)
Start and End Tags
238(1)
Empty Elements
238(1)
Attribute Values
238(1)
White Space
239(1)
Error Handling
240(1)
Translation Time Processing Errors
240(1)
Client Request Time Processing Errors
240(1)
Comments
241(1)
Generating Comments in Output to Client
241(1)
JSP Comments
241(1)
Quoting and Escape Conventions
242(1)
Overview of Semantics
242(3)
Web Applications
243(1)
Relative URL Specifications Within an Application
243(1)
Web Containers and Web Components
244(1)
JSP Pages
244(1)
Template Text Semantics
245(1)
Directives
245(10)
The page Directive
246(1)
Syntax
247(3)
Synchronization Issues
250(2)
Specifying Content Types
252(1)
Delivering Localized Content
252(1)
Including Data in JSP Pages
253(1)
The include Directive
254(1)
Syntax
254(1)
The taglib Directive
254(1)
Syntax
255(1)
Implicit Objects
255(2)
The PageContext Object
257(1)
Scripting Elements
257(2)
Declarations
258(1)
Scriptlets
258(1)
Expressions
259(1)
Actions
259(1)
Tag Attribute Interpretation Semantics
260(3)
Request Time Attribute Values
260(1)
The id Attribute
261(1)
The scope Attribute
262(1)
Standard Actions
263(12)
<jsp:useBean>
264(2)
Syntax
266(1)
<jsp:setProperty>
267(1)
Syntax
268(1)
<jsp:getProperty>
269(1)
Syntax
270(1)
<jsp:include>
270(1)
Syntax
270(1)
<jsp:forward>
271(1)
Syntax
271(1)
<jsp:param>
272(1)
Syntax
272(1)
<jsp:plugin>
272(2)
Syntax
274(1)
The JSP Container
275(12)
The JSP Page Model
275(2)
The Protocol Seen by the Web Server
275(1)
The Protocol Seen by the JSP Page Author
276(1)
The HttpJspPage Interface
276(1)
JSP Page Implementation Class
277(7)
API Contracts
278(1)
Request and Response Parameters
278(1)
Omitting the extends Attribute
279(3)
Using the extends Attribute
282(2)
Buffering
284(1)
Precompilation
284(3)
Request Parameter Names
284(1)
Precompilation Protocol
284(3)
Scripting
287(4)
Overall Structure
287(1)
Valid JSP Page
287(1)
Implementation Flexibility
288(1)
Declarations Section
288(1)
Initialization Section
289(1)
Main Section
289(2)
Tag Extensions
291(28)
Introduction
291(6)
Goals
292(1)
Overview
292(1)
Simple Actions
293(1)
Actions with Body
293(1)
Cooperating Actions
294(1)
Actions Defining Scripting Variables
294(1)
Examples
295(1)
Call Functionality, No Body
295(1)
Call Functionality, No Body, Define Object
295(1)
Call Functionality, Define Object by Scope
296(1)
Template Mechanisms
296(1)
An HTML Quoting Action
296(1)
A useBean as in the JSP 0.92 Specification
296(1)
Tag Library
297(1)
Packaged Tag Libraries
297(1)
Location of Java Classes
297(1)
Tag Library directive
297(1)
Tag Library Descriptor
298(8)
Locating a Tag Library Descriptor
298(1)
taglib Map in web.xml
299(1)
Default Location
300(1)
Translation-Time Class Loader
300(1)
Assembling a Web Application
300(1)
Well-Known URIs
301(1)
The Tag Library Descriptor Format
301(5)
Tag Handlers
306(7)
Properties
306(1)
Basic Protocol: Tag Interface
307(2)
The TagSupport Base Class
309(1)
Body Protocol: BodyTag Interface
309(2)
The BodyContent Class
311(1)
The BodyTagSupport Base Class
311(1)
Life-Cycle Considerations
312(1)
Scripting Variables
313(1)
Cooperating Actions
314(1)
Ids and PageContext
315(1)
Run-Time Stack
315(1)
Validation
315(1)
Syntactic Information on the TLD
316(1)
Syntactic Information in a TagExtraInfo Class
316(1)
Raising an Error at Action Time
316(1)
Conventions and Other Issues
316(3)
How to Define New Implicit Objects
316(1)
Access to Vendor-Specific information
317(1)
Customizing a Tag Library
317(2)
JSP Technology Classes
319(10)
Package javax.servlet.jsp
319(9)
JspPage and HttpJspPage
319(1)
JspWriter
320(2)
JspException and JspError
322(1)
PageContext
323(1)
Creation
323(1)
Usage
324(3)
JspEngineInfo
327(1)
JspFactory
328(1)
Package javx.servlet.jsp.tagext
328(1)
JSP Pages as XML Documents
329(8)
Why an XML Representation
329(1)
Document Type
330(1)
The jsp:root Element
330(1)
Public ID
330(1)
Directives
330(2)
The page directive
331(1)
The include Directive
331(1)
The taglib Directive
331(1)
Scripting Elements
332(1)
Declarations
332(1)
Scriptlets
332(1)
Expressions
333(1)
Actions
333(1)
Transforming a JSP Page into an XML Document
333(1)
Quoting Conventions
334(1)
Request-Time Attribute Expressions
334(1)
DTD for the XML Document
334(3)
Examples
337(6)
Simple Examples
337(2)
Call Functionality, No Body
337(1)
Call Functionality, No Body, Define Object
338(1)
Template Mechanisms
338(1)
A 0.92-like useBean
339(1)
A Set of SQL Tags
339(4)
Connection, UserId, and Password
339(1)
Query
340(1)
Iteration
341(2)
Implementation Notes
343(8)
Delivering Localized Content
343(1)
Processing TagLib Directives
343(1)
Processing Tag Libraries
344(5)
Processing a Tag Library Descriptor
344(1)
Processing a JSP Page
344(1)
Generating the JSP Page Implementation Class
345(1)
An Example
345(1)
JSP Page Example
345(1)
Implementation Code Fragment
346(3)
Implementing Buffering
349(2)
Packaging JSP Pages
351(4)
A Very Simple JSP Page
351(1)
The JSP Page Packaged as Source in a WAR File
352(1)
The Servlet for the Compiled JSP Page
352(1)
The Web Application Descriptor
353(1)
The WAR for the Compiled JSP Page
354(1)
Future
355(2)
Meta-Tag Information
355(1)
Standard Tags
355(1)
Additional Application Support
355(1)
JSP, XML, and XSL Technologies
356(1)
Changes
357(4)
Changes Between 1.1 PR2 and 1.1 Final
357(1)
Changes
357(1)
Changes Between 1.1 PR1 and PR2
358(1)
Additions
358(1)
Changes
358(1)
Changes Between 1.1 PD1 and PR1
359(1)
Additions
359(1)
Changes
359(1)
Deletions
360(1)
Changes Between 1.0 and 1.1 PD1
360(1)
Additions
360(1)
Changes
360(1)
Removals
360(1)
JavaBeans™ Specification, v1.1 (EJB) 361(66)
Introduction
363(4)
Target Audience
363(1)
What Is New in EJB 1.1
363(1)
Application Compatibility and Interoperability
364(1)
Acknowledgments
365(1)
Organization
365(1)
Document Conventions
366(1)
Goals
367(2)
Overall Goals
367(1)
Goals for Release 1.0
368(1)
Goals for Release 1.1
368(1)
EJB Architecture Roles and Scenarios
369(8)
EJB Architecture Roles
369(4)
Enterprise Bean Provider
369(1)
Application Assembler
370(1)
Deployer
370(1)
EJB Server Provider
371(1)
EJB Container Provider
372(1)
System Administrator
372(1)
Scenario: Development, Assembly, and Deployment
373(4)
Overview
377(8)
Enterprise Beans as Components
377(1)
Component Characteristics
377(1)
Flexible Component Model
378(1)
Enterprise JavaBeans Architecture Contracts
378(4)
Client-View Contract
379(1)
Component Contract
380(1)
EJB JAR File
381(1)
Contracts Summary
381(1)
Session and Entity Objects
382(1)
Session Objects
382(1)
Entity Objects
383(1)
Standard Mapping to CORBA Protocols
383(2)
Client View of a Session Bean
385(10)
Overview
385(1)
EJB Container
386(1)
Locating a Session Bean's Home Interface
386(1)
What a Container Provides
387(1)
Home Interface
387(1)
Creating a Session Object
388(1)
Removing a Session Object
388(1)
EJBObject
388(1)
Session Object Identity
389(1)
Client View of Session Object's Life Cycle
390(1)
Creating and Using a Session Object
391(1)
Object Identity
392(2)
Stateful Session Beans
392(1)
Stateless Session Beans
393(1)
getPrimaryKey()
393(1)
Type Narrowing
394(1)
Session Bean Component Contract
395(32)
Overview
395(1)
Goals
396(1)
A Container's Management of Its Working Set
396(1)
Conversational State
396(3)
Instance Passivation and Conversational State
397(2)
The Effect of Transaction Rollback on Conversational State
399(1)
Protocol Between a Session Bean Instance and Its Container
399(4)
The Required SessionBean Interface
399(1)
The SessionContext Interface
400(1)
The Optional SessionSynchronization Interface
400(1)
Business Method Delegation
401(1)
Session Bean's ejbCreate(...) Methods
401(1)
Serializing Session Bean Methods
402(1)
Transaction Context of Session Bean Methods
402(1)
Stateful Session Bean State Diagram
403(7)
Operations Allowed in the Methods of a Stateful Session Bean Class
406(2)
Dealing with Exceptions
408(1)
Missed ejbRemove() Calls
409(1)
Restrictions for Transactions
409(1)
Object Interaction Diagrams for a Stateful Session Bean
410(4)
Notes
410(1)
Creating a Session Object
410(1)
Starting a Transaction
411(1)
Committing a Transaction
412(1)
Passivating and Activating an Instance Between Transactions
413(1)
Removing a Session Object
414(1)
Stateless Session Beans
414(4)
Stateless Session Bean State Diagram
415(1)
Operations Allowed in the Methods of a Stateless Session Bean Class
416(2)
Dealing with Exceptions
418(1)
Object Interaction Diagrams for a Stateless Session Bean
418(3)
Client-Invoked create()
419(1)
Business Method Invocation
419(1)
Client-Invoked remove()
420(1)
Adding Instance to the Pool
420(1)
The Responsibilities of the Bean Provider
421(3)
Classes and Interfaces
421(1)
Session Bean Class
421(1)
ejbCreate Methods
422(1)
Business Methods
423(1)
Session Bean's Remote Interface
423(1)
Session Bean's Home Interface
424(1)
The Responsibilities of the Container Provider
424(3)
Generation of Implementation Classes
425(1)
Session EJBHome Class
425(1)
Session EJBObject Class
426(1)
Handle Classes
426(1)
EJBMetaData Class
426(1)
Non-Reentrant Instances
426(1)
Transaction Scoping, Security, Exceptions
426(1)
Example Session Scenario 427(4)
Overview
427(1)
Inheritance Relationship
427(4)
What the Session Bean Provider Is Responsible For
428(1)
Classes Supplied by Container Provider
429(1)
What the Container Provider Is Responsible For
429(2)
Client View of an Entity 431(12)
Overview
431(1)
EJB Container
432(2)
Locating an Entity Bean's Home Interface
432(1)
What a Container Provides
433(1)
Entity Bean's Home Interface
434(2)
create Methods
434(1)
finder Methods
435(1)
remove Methods
436(1)
Entity Object's Life Cycle
436(2)
Primary Key and Object Identity
438(2)
Entity Bean's Remote Interface
440(1)
Entity Bean's Handle
440(2)
Entity Home Handles
442(1)
Type Narrowing of Object References
442(1)
Entity Bean Component Contract 443(234)
Concepts
443(28)
Runtime Execution Model
443(2)
Granularity of Entity Beans
445(1)
Entity Persistence (Data Access Protocol)
446(1)
Bean-Managed Persistence
447(1)
Container-Managed Persistence
447(1)
Instance Life Cycle
448(3)
The Entity Bean Component Contract
451(1)
Entity Bean Instance's View
451(4)
Container's View
455(3)
Operations Allowed in the Methods of the Entity Bean Class
458(3)
Caching of Entity State and the ejbLoad and ejbStore Methods
461(1)
ejbLoad and ejbStore with the NotSupported Transaction Attribute
462(1)
Finder Method Return Type
463(1)
Single-Object Finder
463(1)
Multi-Object Finders
463(2)
Standard Application Exceptions for Entities
465(1)
CreateException
466(1)
DuplicateKeyException
466(1)
FinderException
466(1)
ObjectNotFoundException
467(1)
RemoveException
467(1)
Commit Options
467(2)
Concurrent Access from Multiple Transactions
469(1)
Non-Reentrant and Re-entrant Instances
470(1)
Responsibilities of the Enterprise Bean Provider
471(6)
Classes and Interfaces
471(1)
Enterpise Bean Class
472(1)
ejbCreate Methods
473(1)
ejbPostCreate Methods
473(1)
ejbFind Methods
474(1)
Business Methods
475(1)
Entity Bean's Remote Interface
475(1)
Entity
476(1)
Entity Bean's Primary Key Class
477(1)
The Responsibilities of the Container Provider
477(3)
Generation of Implementation Classes
477(1)
Entity EJBHome Class
478(1)
Entity EJBObject Class
478(1)
Handle Class
479(1)
Home Handle Class
479(1)
Meta-Data Class
479(1)
Instance's Re-entrance
479(1)
Transaction Scoping, Security, Exceptions
479(1)
Implementation of Object References
479(1)
Entity Beans with Container-Managed Persistence
480(6)
Container-Managed Fields
480(2)
ejbCreate, ejbPostCreate
482(1)
ejbRemove
483(1)
ejbLoad
484(1)
ejbStore
484(1)
Finder Methods
484(1)
Primary Key Type
485(1)
Primary Key That Maps to a Single Field in the Entity Bean Class
485(1)
Primary Key That Maps to Multiple Fields in the Entity Bean Class
485(1)
Special Case: Unknown Primary Key Class
485(1)
Object Interaction Diagrams
486(13)
Notes
486(1)
Creating an Entity Object
487(2)
Passivating and Activating an Instance in a Transaction
489(2)
Committing a Transaction
491(2)
Starting the Next Transaction
493(2)
Removing an Entity Object
495(1)
Finding an Entity Object
496(1)
Adding and Removing an Instance from the Pool
497(2)
Example Entity Scenario
499(4)
Overview
499(1)
Inheritance Relationship (Figure EBJ.10-1)
500(3)
What the Entity Bean Provider Is Responsible For
501(1)
Classes Supplied by Container Provider
501(1)
What the Container Provider Is Responsible For
502(1)
Support for Transactions
503(36)
Overview
503(2)
Transactions
503(1)
Transaction Model
504(1)
Relationship to JTA and JTS
504(1)
Sample Scenarios
505(5)
Update of Multiple Databases
505(1)
Update of Databases via Multiple EJB Servers
506(1)
Client-Managed Demarcation
507(1)
Container-Managed Demarcation
507(1)
Bean-Managed Demarcation
508(1)
Interoperability with Non-Java Clients and Servers
509(1)
Bean Provider's Responsibilities
510(9)
Bean-Managed Versus Container-Managed Transaction Demarcation
510(1)
Non-Transactional Execution
510(1)
Isolation Levels
510(1)
Enterprise Beans Using Bean-Managed Transaction Demarcation
511(6)
getRollbackOnly() and setRollbackOnly() Method
517(1)
Enterprise Beans Using Container-Managed Transaction Demarcation
517(1)
javax.ejb.SessionSynchronization Interface
518(1)
javax.ejb.EJBContext.setRolbackOnly() Method
519(1)
javax.ejb.EJBContext.getRolbackOnly() Method
519(1)
Declaration in Deployment Descriptor
519(1)
Application Assembler's Responsibilities
519(5)
Transaction Attributes
520(4)
Deployer's Responsibilities
524(1)
Container Provider Responsibilities
524(9)
Bean-Managed Transaction Demarcation
524(3)
Container-Managed Transaction Demarcation
527(1)
NotSupported
527(1)
Required
527(1)
Supports
528(1)
RequiresNew
528(1)
Mandatory
529(1)
Never
529(1)
Transaction Attribute Summary
529(1)
Handling of setRollbackOnly() Method
530(1)
Handling of getRollbackOnly() Method
531(1)
Handling of getUserTransaction() Method
531(1)
javax.ejb.SessionSynchronization Callbacks
531(1)
Handling of Methods That Run with "an Unspecified Transaction Context"
532(1)
Access from Multiple Clients in the Same Transaction Context
533(6)
Transaction "Diamond" Scenario with an Entity Object
533(1)
Container Provider's Responsibilities
534(2)
Bean Provider's Responsibilities
536(1)
Application Assembler and Deployer's Responsibilities
536(1)
Transaction Diamonds Involving Session Objects
537(2)
Exception Handling
539(16)
Overview and Concepts
539(1)
Application Exceptions
539(1)
Goals for Exception Handling
540(1)
Bean Provider's Responsibilities
540(3)
Application Exceptions
540(1)
System Exceptions
541(1)
javax.ejb.NoSuchEntityException
542(1)
Container Provider Responsibilities
543(6)
Exceptions from an Enterprise Bean's Business Methods
543(3)
Exceptions from Container-Invoked Callbacks
546(1)
javax.ejb.NoSuchEntityException
547(1)
Non-Existing Session Object
547(1)
Exceptions from the Management of Container-Managed Transactions
547(1)
Release of Resources
548(1)
Support for Deprecated Use of java.rmi.RemoteException
548(1)
Client's View of Exceptions
549(3)
Application Exception
549(1)
java.rmi.RemoteException
550(1)
javax.transaction.Transaction RolledbackException
551(1)
javax.transaction.Transaction RequiredException
552(1)
java.rmi.NoSuchObjectException
552(1)
System Administrator's Responsibilities
552(1)
Differences from EJB 1.0
552(3)
Support for Distribution
555(2)
Overview
555(1)
Client-Side Objects in Distributed Environment
555(1)
Standard Distribution Protocol
556(1)
Enterprise Bean Environment
557(22)
Overview
557(1)
Bean Environment as JNDI API Naming Context
558(5)
Bean Provider's Responsibilities
559(1)
Access to Enterprise Bean's Environment
559(1)
Declaration of Environment Entries
560(2)
Application Assembler's Responsibility
562(1)
Deployer's Responsibility
562(1)
Container Provider Responsibility
562(1)
EJB References
563(5)
Bean Provider's Responsibilities
563(1)
EJB Reference Programming Interfaces
563(1)
Declaration of EJB References in Deployment Descriptor
564(2)
Application Assembler's Responsibilities
566(1)
Deployer's Responsibility
567(1)
Container Provider's Responsibility
568(1)
Resource Manager Connection Factory References
568(6)
Bean Provider's Responsibilities
568(1)
Programming Interfaces for Resource Manager Connection Factory References
569(1)
Declaration of Resource Manager Connection Factory References in Deployment Descriptor
570(2)
Standard Resource Manager Connection Factory Types
572(1)
Deployer's Responsibility
572(1)
Container Provider Responsibility
573(1)
System Administrator's Responsibility
574(1)
Deprecated EJBContext.getEnvironment() Method
574(2)
UserTransaction Interface
576(3)
Security Management
579(24)
Overview
579(1)
Bean Provider's Responsibilities
580(7)
Invocation of Other Enterprise Beans
580(1)
Resource Access
581(1)
Access of Underlying OS Resources
581(1)
Programming Style Recommendations
581(1)
Programmatic Access to Caller's Security Context
582(1)
Use of getCallerPrincipal()
583(2)
Use of isCallerInRole(String roleName)
585(1)
Declaration of Security Roles Referenced from the Bean's Code
586(1)
Application Assembler's Responsibilities
587(7)
Security Roles
588(2)
Method Permissions
590(3)
Linking Security Role References to Security Roles
593(1)
Deployer's Responsibilities
594(2)
Security Domain and Principal Realm Assignment
594(1)
Assignment of Security Roles
594(1)
Principal Delegation
595(1)
Security Management of Resource Access
595(1)
General Notes on Deployment Descriptor Processing
595(1)
EJB Architecture Client Responsibilities
596(1)
EJB Container Provider's Responsibilities
596(4)
Deployment Tools
596(1)
Security Domain(s)
597(1)
Security Mechanisms
597(1)
Passing Principals on EJB Architecture Calls
598(1)
Security Methods in javax.ejbEJBContext
598(1)
Secure Access to Resource Managers
598(1)
Principal Mapping
598(1)
System Principal
599(1)
Runtime Security Enforcement
599(1)
Audit Trail
600(1)
System Administrator's Responsibilities
600(3)
Security Domain Administration
600(1)
Principal Mapping
601(1)
Audit Trail Review
601(2)
Deployment Descriptor
603(34)
Overview
603(1)
Bean Provider's Responsibilities
604(2)
Application Assembler's Responsibility
606(1)
Container Provider's Responsibilities
607(1)
Deployment Descriptor DTD
608(21)
Deployment Descriptor Example
629(8)
EJB JAR File
637(4)
Overview
637(1)
Deployment Descriptor
637(1)
Class Files
638(1)
ejb-client JAR File
638(1)
Deprecated in EJB 1.1
639(2)
EJB JAR Manifest
639(1)
Serialized Deployment Descriptor JavaBeans™ Components
639(2)
Runtime Environment
641(10)
Bean Provider's Responsibilities
641(4)
APIs Provided by Container
641(1)
Programming Restrictions
642(3)
Container Provider's Responsibility
645(6)
Java 2 Platform-Based Container
645(1)
Java 2 APIs requirements
645(1)
EJB 1.1 Requirements
646(1)
JNDI 1.2 Requirements
647(1)
JTA 1.0.1 Requirements
647(1)
JDBC™ 2.0 Extension Requirements
647(1)
JDK™ 1.1 Based Container
648(1)
JDK 1.1 APIs Requirements
648(1)
EJB 1.1 Requirements
649(1)
JNDI 1.2 Requirements
649(1)
JTA 1.0.1 Requirements
650(1)
JDBC 2.0 Extension Requirements
650(1)
Argument Passing Semantics
650(1)
Responsibilities of EJB Architecture Roles
651(2)
Bean Provider's Responsibilities
651(1)
API Requirements
651(1)
Packaging Requirements
651(1)
Application Assembler's Responsibilities
652(1)
EJB Container Provider's Responsibilities
652(1)
Deployer's Responsibilities
652(1)
System Administrator's Responsibilities
652(1)
Client Programmer's Responsibilities
652(1)
Enterprise JavaBeans™ API Reference
653(2)
Package javax.ejb
653(1)
Package javax.ejb.deployment
654(1)
Related Documents
655(2)
Features Deferred to Future Releases
657(2)
Frequently Asked Questions
659(6)
Client-Demarcated Transactions
659(1)
Inheritance
660(1)
Entities and Relationships
660(1)
Finder Methods for Entities with Container-Managed Persistence
661(1)
JDK 1.1 or Java 2
661(1)
javax.transaction.UserTransaction Versus javax.jts.UserTransaction
661(1)
How to Obtain Database Connections
661(1)
Session Beans and Primary Key
662(1)
Copying of Parameters Required for EJB Calls Within the Same JVM
662(3)
Revision History
665(12)
Changes Since Release 0.8
665(1)
Changes Since Release 0.9
666(1)
Changes Since Release 0.95
667(1)
Changes Since 1.0
667(1)
Changes Since EJB 1.1 Draft 1
668(1)
Changes Since EJB 1.1 Draft 2
669(2)
Changes Since EJB 1.1 Draft 3
671(1)
Changes Since EJB 1.1 Public Draft
671(2)
Changes Since EJB 1.1 Public Draft 2
673(1)
Changes Since EJB 1.1 Public Draft 3
674(1)
Changes Since EJB 1.1 Public Release
674(1)
Changes Since EJB 1.1 Public Release
675(2)
Glossary 677(18)
Index 695

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews