J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases...

104
1405 : (colon), in XML markup, 43, 47 . (period) JSP operator, 491–492 in XML markup, 43 & (ampersand) entity for, 49 SAX processing, 127 && (ampersands), JSP operator, 494 ' (apostrophe), entity for, 49 * (asterisk) DTD qualifier, 53 JSP operator, 494 XPath operator, 253 XPath wildcard, 252 @* (at sign, asterisk), XPath wildcard, 252 = (equal sign), XPath operator, 253 == (equal signs), JSP operator, 494 ! (exclamation point), JSP operator, 494 != (exclamation point, equal sign) JSP operator, 494 XPath operator, 253 > (greater than) entity for, 49 JSP operator, 494 XPath operator, 253 >= (greater than, equal) JSP operator, 494 XPath operator, 253 # (hash mark), in character references, 50 - (hyphen), in XML markup, 43 < (less than) entity for, 49 JSP operator, 494 SAX processing, 127 XPath operator, 253 <= (less than, equal) JSP operator, 494 XPath operator, 253 <!...> (less than, exclamation point), in DTDs, 53 <?...?> (less than, question mark), in XML markup, 34–35 <...> (less than...greater than), in XML markup, 31 - (minus sign) JSP operator, 494 XPath operator, 253 % (percent sign) in entity names, 67 JSP operator, 494 + (plus sign) DTD qualifier, 53 JSP operator, 494 XPath operator, 253 ? (question mark), DTD qualifier, 53 " (quote), entity for, 49 / (slash), JSP operator, 494 _ (underscore) Java localization classes, 819 in XML markup, 43 | (vertical line) in DTDs, 54 XPath operator, 253 || (vertical lines), JSP operator, 494 [ ] (square brackets) JSP operators, 491–492 XPath pattern matching, 250 Index J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AM

Transcript of J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases...

Page 1: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1405

: (colon), in XML markup, 43, 47. (period)

JSP operator, 491–492in XML markup, 43

& (ampersand)entity for, 49SAX processing, 127

&& (ampersands), JSP operator, 494' (apostrophe), entity for, 49* (asterisk)

DTD qualifier, 53JSP operator, 494XPath operator, 253XPath wildcard, 252

@* (at sign, asterisk), XPath wildcard, 252

= (equal sign), XPath operator, 253== (equal signs), JSP operator, 494! (exclamation point), JSP operator, 494!= (exclamation point, equal sign)

JSP operator, 494XPath operator, 253

> (greater than)entity for, 49JSP operator, 494XPath operator, 253

>= (greater than, equal)JSP operator, 494XPath operator, 253

# (hash mark), in character references, 50- (hyphen), in XML markup, 43< (less than)

entity for, 49JSP operator, 494

SAX processing, 127XPath operator, 253

<= (less than, equal)JSP operator, 494XPath operator, 253

<!...> (less than, exclamation point), in DTDs, 53

<?...?> (less than, question mark), in XML markup, 34–35

<...> (less than...greater than), in XML markup, 31

- (minus sign)JSP operator, 494XPath operator, 253

% (percent sign)in entity names, 67JSP operator, 494

+ (plus sign)DTD qualifier, 53JSP operator, 494XPath operator, 253

? (question mark), DTD qualifier, 53" (quote), entity for, 49/ (slash), JSP operator, 494_ (underscore)

Java localization classes, 819in XML markup, 43

| (vertical line)in DTDs, 54XPath operator, 253

|| (vertical lines), JSP operator, 494[ ] (square brackets)

JSP operators, 491–492XPath pattern matching, 250

Index

J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AM

Page 2: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1406 INDEX

AAbstract document model, 248Abstract schemas, 835

container-managed persistence, 835–836defined, 1016definition, 1016, 1365deeployment descriptors, 835deploytool, 978EJB QL, 1015hidden from clients, 840name, 1001, 1365names, 1016naming conventions, 847type, 1016types, 1016

Access control. See also SOAP.anonymous access, 1088, 1365CMP example, 942–943databases, 21, 100–104, 446–447definition, 1365entity beans, 844–845JavaServer Faces components, 815–816JTree child nodes, 217security

unauthenticated access, 1145unrestricted access, allowing, 1094

session beans, 844–845Web-tier security, 1094XML registry, 394–395

Access methodsexamples, 949, 976local interfaces, 947persistent fields, 836, 943primary keys, 983relationship fields, 836, 943

ACID, 1365acknowledge method, 1194Action events, 652–653, 655, 657, 686, 711,

747ActionEvent class, 685–686, 712, 747,

749, 757, 768, 775, 789actionListener attribute, 657, 685,

711, 719–721, 749, 763, 768, 775, 789

ActionListener class, 668, 711, 747

ActionListener implementation, 749actionListener tag, 678, 710–712, 763ActionSource interface, 721processAction(ActionEvent)

method, 749referencing methods that handle action

events, 721, 757writing a backing-bean method to handle

action events, 757ActionEvent, 721, 749, 757ActionListener, registering, 711–712ActionListener class, 749–750ActionSource interface, 646Activation, 1365. See also passivation.AdapterNode class, 195–200Adapters, 195addChildElement method, 349addClassifications method, 406addExternalLink method, 413Address book, exporting, 265Addressing XPath, 249–250, 251, 252addServiceBindings method, 407addServices method, 407addTextNode method, 349Admin Console, 26. See also Application

Server.debugging, enabling, 29definition, 26deploying Web modules, 90, 91log viewer, opening, 29server log, viewing, 29starting, 27target server, changing, 1112users, adding to Application Server, 1089

Administered objects, 1163creating, 1007–1008, 1178–1180definition, 1158in J2EE applications, 1213J2EE applications and, 1213for multiple systems, 1188–1189programming model, 1158, 1163removing, 1009synchronous message receives,

1178–1180Administration servers, 25

J2EETutorial.book Page 1406 Thursday, June 3, 2004 10:26 AM

Page 3: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1407

Advertising a service, 1259–1263afterBegin method, 1052afterCompletion method, 1052–1053Aggregate functions, 1042–1043Aliases, Web components, 96–97&amp, ampersand entity, 49Ampersand (&)

entity for, 49SAX processing, 127

Ampersands (&&), JSP operator, 494and, XPath operator, 253Anonymous access, 1088, 1365Ant tool. See asant tool.ANY keyword, 55APIs (application programming interfaces)

See also DOMSee also JAXRSee also JAX-RPCSee also JMSSee also SAXSee also SOAPSee also XSLTby container type, 16–17ContentHandler, 108DefaultHandler, 108DTDHandler, 109EntityResolver, 109ErrorHandler, 108Java Logging APIs, documentation, 28JavaMail API, 18–19JAXP (Java API for XML Processing)

definition, 1379libraries, 106, 113overview, 19

JDBCaccessing databases from Web applica-

tions, 100–101data sources, 1329definition, 1381overview, 21resource connections, 1077resource manager, 1076resources, 1077transactions, 1058–1061, 1069

JTA (Java Transaction API)definition, 1379overview, 18transactions, 1063–1064, 1069

overview, 16–23SAAJ (SOAP with Attachments API for

Java). See also SOAP.connections, 344–345definition, 1394overview, 20, 340SOAPConnection objects, 344–345uses for, 339

SAXParser, 107SAXParserFactory, 107SAXReader, 107StAX (Streaming API for XML), 1345

&apos, apostrophe entity, 49appclient tool, 26Applet containers, 10, 1365Applets, 4, 6. See also applet containers;

applications.definition, 1365JSP pages, 508–510overview, 4

Application architects, JavaServer Faces technology, 635

Application assemblers, 15–16, 1365Application client containers, 10

definition, 1365overview, 10tools, 26

Application client modules, 13, 1366Application clients, 5, 858

coding, 859compiling, 861creating, 858–863definition, 1365deployment descriptors, 13developer role, 15Duke’s Bank, 1310, 1312, 1317

classes, 1311running, 1338

enterprise bean reference, specifying, 862–863

J2EETutorial.book Page 1407 Thursday, June 3, 2004 10:26 AM

Page 4: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1408 INDEX

Application clients (Continued)enterprise bean references, examples,

1055–1056, 1062, 1067examples, 333, 860, 1004. See also book-

store example; Coffee Break example; online banking example.

JAR files, 858locating local Web services, 333–336overview, 3–5packaging, 334, 861–862running, 869thin versus thick, choosing, 5

Application configuration resource filesdescription, 792making available, 792–793specifying path to, 814–815

Application Deployment Tool. See deploy-tool.

Application development role, 14–16, 634–635

Application exceptions, 901–902Application processing instructions, 35–36,

46–47Application programming interfaces (APIs).

See APIs.Application Server. See also Admin Con-

sole.Admin Console, starting, 27asadmin utility, starting/stopping, 25, 27authorized users, adding, 1089. See also

security.connection factories, JNDI subcontexts,

1076creating data sources, 102, 1079creating mail sessions, 1082debugging applications, 28–29default domain, 25deployment descriptor for, 12–13deploytool utility, starting, 27digital certificates, 1115, 1119–1120enabling debugging, 29help, where to find, 25JavaServer Faces, 24–25JSTL, overview, 24

overview, 23–29password, specifying, 25PointBase database server, starting/stop-

ping, 28port number, 25server log, 25, 28–29server logs, 28starting, 25starting/stopping, 25stopping, 27technologies, overview, 24–25tools, 25–26tools, overview, 25–29user interface technologies, 24user name, specifying, 25--verbose flag, 28

Applications. See also applets.client-tier security, 1145–1146component providers, 15, 1366components

component-managed sign-on, 1148container-managed sign-on, 1147EIS-tier security, 1147–1149resource adapter security, configuring,

1148–1149configuration resource files. See also Jav-

aServer Faces.definition, 1366description, 792making available, 792–793specifying path to, 814–815

data flow, managing. See JavaBeans com-ponents.

deployer and administrator role, 16JavaServer Faces technology

backing beans, 642–644buttons, 639commandButton tag, 639creating pages, 638–640data validation, 640definition, 633–634development process, 635–637displaying error messages, 640form tag, 639

J2EETutorial.book Page 1408 Thursday, June 3, 2004 10:26 AM

Page 5: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1409

input forms, 639inputText tag, 639managed bean declarations, 643–644message tag, 640page navigation, 640–641text fields, 639validateLongRange tag, 640

overviewAdmin Console, 27APIs, 16–23Application Server, 23–29components, 3–8containers, 8–10debugging, 28–29development roles, 14–16distributed, 2–3installing, 16managing, 27packaging, 12–14Web services, 10–12

applicationScope object, 493Application-specific objects, 488apply-templates instruction, 284Architecture. See also J2EE Connector

architecture.JAXR (Java API for XML Registries),

391–393JMS (Java Message Service) API,

1158–1161Archiving, 40–41, 1366Arithmetic functions, 256Arithmetic operators, 494Array properties, initializing, 799Arrays, 325, 557<article> document type, 279asadmin, 26asadmin start-domain --verbose

domain1, 25asadmin stop-domain domain1, 27asadmin utility

definition, 26deploying WAR files, 92deploying Web modules, 90–91starting/stopping, 25, 27

asant, 26examples, 856

asant tool, 26, 1366Assembly process, 8–9. See also containers.Asterisk (*)

DTD qualifier, 53JSP operator, 494XPath operator, 253XPath wildcard, 252

Asynchronous message consumption, 1161compiling, 1185JMS client example, 1183JMS provider, starting, 1185message listener, 1184–1185overview, 1183packaging, 1185–1186receiving program, 1184running, 1186–1187sending program, 1183–1184writing the programs, 1183–1185

Asynchronous message processing, 838–840

Asynchronous messages, 1155, 1161At sign asterisk (@*), XPath wildcard, 252AttachmentPart class, 343, 358

creating objects, 358headers, 359

AttachmentPart object, 358–360accessing, 360–361adding content, 358–360creating, 358–361

Attachments, 342adding, 358SAAJ example, 385

Attachments, SAAJ messages, 341–342, 342–344, 385–387

Attachments.java, 385–387ATTLIST tag, 58attribute directive, 579, 580attribute element, 571–572, 595–596Attribute node, 248Attribute nodes, 207Attribute specification parameters, 60Attribute value template, 298

J2EETutorial.book Page 1409 Thursday, June 3, 2004 10:26 AM

Page 6: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1410 INDEX

Attributes, 33, 43, 222adding to elements, 3creating, 236defining, 57–60defining in DTD, 57definition, 1366description, 33DOM, creating, 236encoding, 35JSP custom tags

defining in XML element body, 571–572

dynamic, 570–571, 588–589fragment, 569–570, 584–588jsp:attribute element, 571–572simple, 569, 585–586, 586–588

namespaces, 71SAAJ messages

actor attributes, 363–365header attributes, 362–363mustUnderstand attribute, 365–366overview, 361–362

SOAP envelope, 351standalone, 35tag, declaring, 579transactions

definition, 1046–1047list of, 1050setting, 1049–1050

types of, 59validation, 600–602version, 35vs. elements, 75–76in XML tags, 33

Attributes referencing backing bean meth-ods, 719

action attribute, 639, 657, 668, 719–720actionListener attribute, 657, 719–721validator attribute, 719–720, 722valueChangeListener attribute,

719–720, 722-723Attribute-specification parameters, 59Authentication, 1088, 1114, 1361. See also

JAX-RPC; security.

application clients, configuring, 1151basic, 1100, 1128

configuring, 1097–1098example, 1126–1133overview, 1100–1101protecting passwords, 1113–1114

client, 1123client, configuring, 1151client-certificate

adding using deploytool, 1141client certificate, creating, 1120–1121enabling, 1137–1138example, 1133–1142overview, 1102–1103

configuring, 1093, 1095, 1105definition, 1088, 1114, 1366digest, 1105entities, 1125form-based

configuring, 1097–1098example, 1105overview, 1101–1102protecting passwords, 1113–1114and SSL support, 1113–1114

form-based, example, 1105–1114mutual, 1103–1105, 1123–1124,

1133–1142example, 1133

overview, 20, 22, 1088–1089, 1100–1105Web resources

configuring, 1105Duke’s Bank, 1326form-based, 1101HTTP basic, 1100, 1105, 1126SSL protection, 1114

XML registries, 404for XML registries, 404

Authorization, 1088, 1361constraints, 1366definition, 1088, 1366overview, 20, 22

Authorized users, 8–9. See also containers; security.

AUTO_ACKNOWLEDGE mode, 1193

J2EETutorial.book Page 1410 Thursday, June 3, 2004 10:26 AM

Page 7: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1411

B<B> (bold) tag, 280B2B (Business-to-business), 1366Backing bean methods, 642, 720, 755, 775,

784ActionEvent, 749, 757attributes referencing. See attributes refer-

encing backing bean methods.navigation, 755–757overview, 755referencing, 719–722. See also referenc-

ing backing bean methods.validation, 757–758ValueChangeEvent, 748, 758–759writing. See writing backing bean meth-

ods.Backing bean properties, 642, 657–658, 706,

730, 775, 784bound to component instances, 739-740properties for UISelectItems composed

of SelectItem instances, 737–738

UIData properties, 732UIInput and UIOutput properties, 731UISelectBoolean properties, 734UISelectItems properties, 737UISelectMany properties, 734UISelectOne properties, 735

Backing beans, 634, 642, 651, 653, 656-659, 755, 763

See also enterprise beansSee also entity beansSee also message-driven beansSee also session beansbinding component values and instances,

657–659configuring

array properties, initializing, 799custom converters, registering,

804–805custom validators, registering, 803–804graph (tree) of beans, 799–801implicit objects, referencing, 796–797initialization parameters, referencing,

796–797

initializing properties, 795–796instances of List, 795instances of Map, 795list properties, initializing, 799list-entries element, 795lists, initializing, 801–802managed bean declarations, 643–644managed bean properties, initializing,

799–801managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796map properties, initializing, 797–798map-entries element, 795, 797–798maps, initializing, 801–802messages, registering, 802–803overview, 793

creating, 659, 793–795definition, 634, 1366–1367developing, 642–643instantiating, 793–802managed bean declarations, 643–644managing, 656–659method binding. See method binding.method-binding, 657methods. See backing bean methods.properties. See backing bean properties.properties, binding to component

instances, 718–719storing, 659value binding. See value binding.value-binding, 657values, binding to component instances,

683Backus-Naur Form (BNF), 1016,

1023–1026Bank account example. See BMP examples;

online banking example.BankBean example. See examples, con-

tainer-managed transactions; online banking example.

Base64 encoding, 1101Basic authentication, 1367Basic logic, 183

J2EETutorial.book Page 1411 Thursday, June 3, 2004 10:26 AM

Page 8: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1412 INDEX

Bean instances, locating, 912–913Bean-managed persistence (BMP). See

BMP.Bean-managed transactions, 1217. See also

transactions, bean-managed.Beans

See backing beansSee enterprise beansSee entity beansSee message-driven beansSee session beans

Behavioral interfaces, JavaServer Faces technology, 646–647

BETWEEN expressions, 1035Bidirectional relationships, 837–838BigDecimal data types, 1044BigInteger data types, 1044Binary entities. See unparsed entities.Binding, 40

backing beans to component values and instances, 657–659

component instances tobean properties, 718–719bean values, 683

component values toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716

data to objects, 686–689JavaServer Faces technology, 1367XML, 40, 1367

binding attribute, 683Binding templates

adding to an organization with JAXR, 407finding with JAXR, 403

Blanks. See whitespace.BLOB databases, 991BMP (bean-managed persistence). See also

CMP.defined, 834definition, 1367entity beans, 834examples, 903, 924, 932isolation levels, 1071

relationships, 834vs. container-managed, 941

BMP examplesbean instances, locating, 912–913business methods, 910–913, 916–917creating, 903–904data source, defining, 917database calls, 913–914database table, creating, 917–918deploying the application, 918deploytools utility, 937entity bean class, 904entity beans

deleting, 907finder methods, creating, 914–916finder methods, description, 908–910locating, 908–910, 912

entity state, inserting in database, 905–906

home interface, 914–916home methods, creating, 914–916home methods, description, 912–913instance variables, 905–908mapping table relationships

child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922

primary key, returning, 905–906primary key class, 934–935primary keys, 935–936remote interface, 916–917running, 917–918session beans, creating and packaging,

937BNF (Backus-Naur Form), 1016,

1023–1026Bodies, JSP custom tags, 572body-content attribute, 579body-content element, 595BodyTag interface, 623BodyTagSupport class, 623

J2EETutorial.book Page 1412 Thursday, June 3, 2004 10:26 AM

Page 9: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1413

Bookstore exampleapplet, 509common classes and database schema,

100database, 100–104image map, 765–770iteration tags, 608–610JavaServer Faces, 659–662, 672–675JavaServer Faces technology version,

659, 672-675JSP custom tags

bookstore examples, 564–568dynamic attributes, 588–589fragment attributes, 586–588simple attributes, 585–586, 586–588variables, 572–573

JSP documents, 516–521JSP documents in, 516JSP pages, 476–482JSP tag files, variable synchronization,

582–584JSP with basic JSTL version, 476JSP with example custom tags, 564JSP with JSTL SQL tags, 538JSP with JSTL XML tags, 551JSTL (JavaServer Pages Standard Tag

Library), 538–541MVC architecture, 477populating the database, 101programming tag handlers, 608–616scripting, 618–619servlet version, 436servlets, 436–441tag files, variable synchronization,

582–584template tag library, 610–613use of JSTL tags, 478user interface, 659–662variable synchronization, tag files,

582–584Boolean, 252

functions, 256boolean components, defining, 697boolean function, 256

Boolean functions, 256Boundaries, transactions, 1046, 1073BufferedReader class, 449Buffering, 485Build files, 1367bundle tag, 554–555Business components, 3, 6–7. See also enter-

prise beans.Business logic, 830, 912

in applications. See enterprise beans.definition, 1367overview, 3, 6–7

Business methods, 841, 860, 863client calls, 877CMP example, 945defining, 916–917definition, 1367description, 910–911examples, 910, 945exceptions, 878invoking, 860, 877–878, 912–913local interfaces, 947message-driven beans, 1005requirements, 878signature, 878transactions, 1049, 1052, 1068, 1071

Business objects, 833, 903Business tier, 2–3, 5–7. See also enterprise

beans.Businesses

contacts, 405creating with JAXR, 404finding

by name with JAXR, 400, 421using WSDL documents with JAXR,

424finding by classification with JAXR, 401,

421keys, 405, 411publishing with JAXR, 408removing with JAXR, 411, 421saving with JAXR, 420, 422, 424

BusinessLifeCycleManager interface, 392, 399, 404

J2EETutorial.book Page 1413 Thursday, June 3, 2004 10:26 AM

Page 10: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1414 INDEX

BusinessQueryManager interface, 392, 399

Business-to-business (B2B), 1366Buttons, user interface, 639, 685BytesMessage interface, 1171

Ccall method, 344–345, 353Call object, 330Callback methods, 1367Caller principals, 1367Calling procedures remotely, 19. See also

JAX-RPC.Canceling timers, 893–894Capability levels, JAXR, 390capture-schema, 26capture-schema tool, 26Cascade deletes, 977, 991, 1368Cascading style sheet (CSS), 1370Case sensitivity, XML, 43Case studies. See examples.catch tag, 544, 549CCI. See J2EE Connector architecture, CCI.CCI (Common Client Interface), 1362–1363CDATA, 212, 222

versus PCDATA, 54CDATA node, 211CDATA sections

definition, 1368DOM, 222JSP documents, 528nodes, converting to Text nodes, 212in SAX, 147–149, 164. See also lexical

events.text with XML-style syntax, 51–52

ceiling function, 256Certificate authority, 1102, 1368certificate realm, 1088–1089Certificates. See digital certificates.Chained filters, 307Character encoding, 824–825Character encodings, 824, 1341

ISO 8859, 824

ISO-8859-1, 1341US-ASCII, 1341UTF-8, 824, 1341UTF-16, 1342

Character events, 125–127Character references, 50Character sets, 823–824

IANA registry, 1342Unicode, 824US-ASCII, 824

characters method, 119Checkboxes, 697–698, 703–704Child access, controlling, 217choose tag, 544, 546, 550Class files, modifying, 870–871Classes

custom UI components, 778–786including in JavaServer Faces applica-

tions, 817Java localization, 819–820JavaServer Faces technology, 645–646

Classic tags, 623tag handlers, 623

with bodies, 626defining variables, 629–630how invoked, 625life cycle, 625methods, 624shared objects, 627, 629variable availability, 629

Classic tags, scripting, 623Classification schemes, 421–423

finding with JAXR, 406ISO 3166, 400NAICS, 400, 421postal address, 412, 421publishing with JAXR, 412, 421removing with JAXR, 423UNSPSC, 400user-defined, 412

Classifications, creating with JAXR, 406Classifications (taxonomies)

adding, 406defining, 412–414

J2EETutorial.book Page 1414 Thursday, June 3, 2004 10:26 AM

Page 11: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1415

finding organizations by, 401–403postal addresses, specifying, 414–416

Classifications (XML registries), 406Client applications

access, entity and session beans, 840–845invoking. See appclient tool.

Client applications, JMS, 1173packaging, 1181, 1185running, 1182, 1186running on multiple systems, 1187

Client authentication, 20, 1151. See also JAX-RPC.

Client certificates, 1120–1121. See also dig-ital certificates.

Client ID, for durable subscriptions, 1200Client machines, 2–3Client requests, 11. See also SOAP.Client state

accessing sessions, 464associating objects with sessions, 465notifying session objects, 465session management, 466session tracking, 466–467

Client tier, 2–6CLIENT_ACKNOWLEDGE mode, 1194Client-certificate authentication

adding using deploytool, 1141client certificate, creating, 1120–1121definition, 1368enabling, 1137–1138example, 1133–1142overview, 1102–1103

Clients, authenticating, 1102, 1123, 1133Clients, JAXR, 391

examples, 417implementing, 393

Clients, Web servicesapplication, 333–336creating, 314–324DII (dynamic invocation interface),

329–333dynamic proxy, 326–329static stub, 321–324unknown until runtime, 329–333

CLOB databases, 991close method, 354CMP (container-managed persistence), 835.

See also BMP.cascade deletes, 991definition, 1369EJB QL, 835, 990, 1015EJB QL (Enterprise JavaBeans Query

Language), 1044entity beans, 834, 835–838examples, 939isolation levels, 1071one-to-many, 987one-to-one, 986overriding, 17, 21persistent fields, 943primary keys, 987

compound, 988primitive types, 987unknown, 987

relationship fields, 943relationships, 834table mapping, 989vs. bean-managed, 941

CMP examplesabstract schema name, selecting, 1001database tables, creating, 1002deploytool utility, 1000–1002finder methods, defining EJB QL queries,

1001inventory and ordering

bean relationships, 985–987BLOB databases, 991building, 992–1000CLOB databases, 991configuring entity bean relationships,

995–996creating modules, 993–995databases, 989, 992deploying, 999entity beans, 989, 991, 995–996finder methods, 990finder queues, 996–997finding orders, 990, 996–997

J2EETutorial.book Page 1415 Thursday, June 3, 2004 10:26 AM

Page 12: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1416 INDEX

CMP (Continued)foreign keys, 987home methods, 990one-to-many relationships, 987one-to-one relationships, 986packaging, 993–999primary keys, 987–989running, 992–1000selecting methods, 990selecting orders, 990, 996–997selector queues, 996–997self-referential relationships, 985–986setting enterprise bean references, 999setting transaction attributes, 997structure, 984unidirectional relationships, 987

persistent fields, selecting, 1001relationships, defining, 1002select methods, defining EJB QL queries,

1001CMP examples, team roster

access methods, 942–943building, 958–969business methods, 945container-managed vs. bean-managed,

941–942create methods, defining, 946–947data source, creating, 959database tables, creating, 958–959EJB QL queries, adding, 964–966enterprise application

creating, 960deploying, 971packaging, 960, 970–971running, 971–972

enterprise beanscreating, 960establishing relationships, 966–967field mappings, 968packaging, 961–969references, setting, 968–971relationship mappings, 968

entity bean class, 941entity bean methods, 945–946

finder methods, defining, 946–947finder methods, description, 944home methods, defining, 946–947JAR file, viewing settings, 974–980local home interface, 946–947local interface, 947objects, getting, 944overview, 939–940packaging, 961–964persistent fields, 943players

adding to a team, 949–950adding to teams, 949–950copying a team roster, 953–955creating, 948–949dropping from a team, 950–951finding by position, 955–956getting a team roster, 952–953getting sports of, 956–958removing, 950, 950

primary key class, 982primary key values, generating, 983–984primary keys, 980–984relationship fields, 943rosters

copying, 954–955getting, 952–955viewing, 974

running, 958–969select methods, 944settings, viewing, 972–980state information, getting, 944table schema, capturing, 959–960transaction attributes, setting, 968

CMR. See container-managed relationships.Coding

application client, 859enterprise bean class, 855–856enterprise beans, 854home interface, 855remote interface, 855Web client, 863–864

Coffee Breakbuilding shared classes, 1292

J2EETutorial.book Page 1416 Thursday, June 3, 2004 10:26 AM

Page 13: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1417

JavaServer Faces server, 1284, 1290beans, 1288–1289building, packaging, and deploying,

1297JSP pages, 1285, 1287resource configuration, 1289

JAX-RPC service, 1257, 1265building, packaging, and deploying,

1292, 1294deleting from registry, 1263, 1265implementation, 1258interface, 1257publishing in registry, 1259, 1263

removing, 1300running the client, 1298SAAJ clients, 1266SAAJ service, 1265, 1280

building, packaging, and deploying, 1294

XML messages, 1266server, 1280, 1284

beans, 1282, 1284building, packaging, and deploying,

1295–1296JSP pages, 1281

server interaction, 1255setting service port numbers, 1291setting up the registry server, 1291shared files, 1256source code, 1290

Coffee Break examplebacking beans, 1289billing information, collecting, 1281,

1286–1287checking out, 1288–1289client application, running, 1299–1300Coffee Break server

building, 1295–1296deploying, 1295–1296JavaBeans components, 1282–1284JSP pages, 1281packaging, 1295–1296running, 1295–1296

common classes, 1292

common code, 1256–1257delivery information, collecting, 1281,

1286–1287JavaBeans components, 1282JavaServer Faces version, 1284–1290,

1297–1298JAX-RPC service, 1257–1265, 1282,

1292–1294JSP pages, 1286–1287order confirmation

checking completeness, 1281, 1282–1284, 1287, 1288–1289

delivery and billing information, 1281, 1286–1287

displaying suborders, 1281, 1282–1284, 1287

listing objects, 1282retrieving, 1273returning, 1279–1280

ordering coffee, 1270–1273orders, creating, 1270–1273price list

extracting, 1268–1270reloading, 1284returning, 1274–1279

Registry Server, setting up, 1291removing the application, 1300SAAJ service

building, 1294–1295deploying, 1294–1295message types, 1265–1266overview, 1265–1266packaging, 1294–1295request, sending, 1267–1268request-response message, 1265–1266running, 1294–1295SAAJ client, 1266–1273SAAJ service, 1274–1280

server, 1282–1284setting the port, 1291shopping cart, 1281–1282, 1285–1286WARs, 1292

Collaboration, JSTL tags, 542–543Collection member expressions, 1037

J2EETutorial.book Page 1417 Thursday, June 3, 2004 10:26 AM

Page 14: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1418 INDEX

Colon (:), in XML markup, 43, 47Combo boxes, 699–700, 703–704Command line, argument processing, 119commandButton tag, 639, 685Command-line administration utility. See

Admin Console.Command-line tools, list of, 26commandLink tag, 686Commands, digital certificates, 1121Comment, 42, 212, 222

echoing, 167node, 248

comment method, 164Comment nodes, 206Comments

definition, 1368DOM, 222DOM, ignoring, 212echoing, 164, 167–168EJB QL (Enterprise JavaBeans Query

Language), 1044HTML. See <NOTE> element.transforming XML to HTML, 295XML, 34, 42

Commerce XML (cxml), 1354Commit, 1368commit, 1057–1058, 1063, 1069commit method (JMS), 1204Commit transactions, 1046, 1068Commits. See transactions, commits.Common Client Interface (CCI), 1362–1363Common Object Request Broker Architec-

ture (CORBA), 1370Common Secure Interoperability version 2

(CSIv2), 1143Compatibility test suite (CTS), 1370Compiling, 128

application clients, 861, 898BankBean example, 1053enterprise bean source files, 856JSP pages, 483–484online banking example, 1330SAX, 128–135TellerBean example, 1064

WarehouseBean example, 1059Web client, 865

Component, renderer, tag combinations, 764–765

Component binding, 658, 714, 718, 730advantages of, 658binding attribute, 642, 658, 683, 714,

718Component contracts, 1368Component properties

bound to component instances, 739–740bound to component values, 730–739FacesMessage, 743–744localization, 741–744message factory, 743overview, 730resource bundles, 741, 743–744UIData, 732–733UIInput, 731–732UIOutput, 731–732UISelectBoolean, 734UISelectItem, 736UISelectItems, 737–739UISelectMany, 734–735UISelectOne, 735–736user input, selecting from a list, 734–739value binding, 783–784

Component rendering model, 645, 647-651, 647–651

custom renderers. See custom renderers.decode method, 666, 712, 745, 783, 788decoding, 763, 778delegated implementation, 763direct implementation, 763encode method, 746encodeBegin method, 781encodeChildren method, 780–781encodeEnd method, 781, 786encoding, 763, 778HTML render kit, 777, 808render kit, 647, 808renderer, 761Renderer class, 647, 712, 808Renderer implementation, 809

J2EETutorial.book Page 1418 Thursday, June 3, 2004 10:26 AM

Page 15: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1419

RenderKit class, 647RenderKit implementation, 809

Component values, binding toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716

Component writers, 635Component-managed sign-on, 1148, 1368Components. See also JavaServer Faces,

custom UI components.assembly, 8–9. See also containers.custom, 726–727identification, 681instances, binding to

bean properties, 718–719bean values, 683

interfaces. See containers.J2EE components

definition, 1377overview, 3–8versus standard Java classes, 3–4

JavaServer Faces UI components, 1380overview, 3–8reusing, 12versus standard Java classes, 3–4user interface component model. See also

JavaServer Faces.action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, description,

651–652custom components. See JavaServer

Faces, custom UI components.data validation, 654data-model events, 653event and listener model, description,

652–653mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645

UICommand class, tags, 648validation model, 654value-change events, 653

Component-specific services. See containers.Compound primary keys, 988–989Compression, 229com.sun.xml.registry.http.proxy-

Host connection property, 398com.sun.xml.registry.http.proxy-

Port connection property, 398com.sun.xml.registry.https.proxy-

Host connection property, 398com.sun.xml.registry.https.proxy-

Password connection property, 398

com.sun.xml.registry.https.proxy-Port connection property, 398

com.sun.xml.registry.https.proxy-UserName connection property, 398

com.sun.xml.registry.useCache con-nection property, 398

com.sun.xml.registry.userTaxonomy-Filenames connection property, 398, 414

concat function, 255Concepts

publishing with JAXR, 408, 423removing with JAXR, 424in user-defined classification schemes,

412using to create classifications with JAXR,

406Concurrent access, 1045Conditional expressions, 1033Conditional operators, 494Conditional sections, 66, 68Conditionalized DTDs, 78Confidentiality, 1114Configuration resource files. See application

configuration resource files.Configuring beans, 793-802

managed bean creation facility. See man-aged bean creation facility.

J2EETutorial.book Page 1419 Thursday, June 3, 2004 10:26 AM

Page 16: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1420 INDEX

Configuring JavaServer Faces applications, 635

Application class, 793, 802application configuration resource files,

634, 643, 655, 659, 685, 706–707, 715–716, 721, 750, 792, 805, 809, 811

Application instance, 742–743, 752, 775

attribute element, 804attribute-class element, 804attribute-name element, 804configuring beans. See configuring beans.configuring navigation rules. See config-

uring navigation rules.faces-config.xml files, 806including the classes, pages, and other

resources, 817including the required JAR files, 816javax.faces.applica-

tion.CONFIG_FILES context parameter, 792, 814

javax.faces.STATE_SAVING_METHOD context parameter, 815

registering custom converters. See regis-tering custom converters.

registering custom renderers. See register-ing custom renderers.

registering custom UI components. See registering custom UI compo-nents.

registering custom validators. See regis-tering custom validators.

registering messages. See registering mes-sages.

restricting access to JavaServer Faces components, 815

specifying a path to an application config-uration resource file, 814

specifying where UI component state is saved, 815

turning on validation of XML files, 816validateXML context parameter, 816verifying custom objects, 816

Configuring navigation rules, 805action methods, 807example navigation rule, 806from-action element, 807–808from-outcome value, 808from-view-id element, 807navigation-case element, 806, 808navigation-rule element, 806–807to-view-id element, 807–808

ConfirmerBean example, 1082–1083Connection, 1057–1058, 1069, 1073Connection class, 1362Connection factories

creating, 395deleting, 1191description, 1163–1164JNDI subcontexts, 1076looking up, 395resource manager connection factory,

1390Connection factories, JAXR, 395Connection factories, JMS

creating, 1007, 1178introduction, 1163looking up, 1004, 1163specifying for message-driven beans,

1228specifying for remote servers, 1188

Connection interface, 392Connection interface (JAXR), 392, 395Connection interface (JMS), 1165Connection interface methods, 1058–1059,

1069, 1073Connection management contract, 1361Connection pooling, 1077Connection pools, 1077Connection properties, JAXR, 396

examples, 395ConnectionFactory class (JAXR), 395ConnectionFactory interface (JMS), 1163Connections. See also resource connections.

JAXRconnection factory, 395creating, 395–396

J2EETutorial.book Page 1420 Thursday, June 3, 2004 10:26 AM

Page 17: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1421

organizations, finding by classification, 401–403

organizations, finding by name, 400–401

overview, 393–394properties, 396–399registries, accessing, 394–395registries, querying, 399–400registry access, 394–395RegistryService object, 399service bindings, 403services, finding, 403

SAAJ (SOAP with Attachments API for Java), 344–345

secure, 1114service bindings, JAXR, 403

Connections, database, 1078Connections, JAXR

creating, 395setting properties, 395

Connections, JMSintroduction, 1165managing in J2EE applications, 1213

Connections, mail sessions, 1081Connections, SAAJ, 344

closing, 354point-to-point, 353

Connections, URL, 1083Connector architecture. See J2EE Connector

architecture; resource adapter modules.

Connector resource manager, 1076Connectors, 1369. See also J2EE Connector

architecture.Container trust relationships, 1151Container-managed persistence (CMP). See

CMP.Container-managed relationships, 985

bidirection, 940bidirectional, 837–838definition, 834deploytool, 975direction, 837–838, 842, 977

EJB QL, 838entity and session beans, 842examples, 940local access, 841many-to-many, 837many-to-one, 837multiplicity, 837, 940, 977one-to-many, 837, 1017one-to-one, 837, 1030self-referential, 985unidirectional, 837–838, 987

Container-managed sign-on, 1147, 1369Container-managed transactions. See trans-

actions, container-managed.Containers, 8

See also applet containersSee also application client containersSee also EJB containersSee also securitySee also Web containersAPIs, overview, 16–17configurable services, 9definition, 1369non-configurable services, 9overview, 8–10, 16–17services, 8services, overview, 8–9types, overview, 9–10vs. contents, 76

contains function, 255Content, 1369. See also Web components.Content (inline) elements, 296–302Content events, 123ContentHandler API, 108, 119–120ContentHandler interface, 119Contents vs. containers, 76Context, 249Context attributes, 1369Context interface, 859, 1076Context objects, 1076Context roots, 89–92, 868, 1369Contexts, 249Conversational state, 832, 1370Conversion functions, 256

J2EETutorial.book Page 1421 Thursday, June 3, 2004 10:26 AM

Page 18: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1422 INDEX

Conversion model, 645, 651-652, 731converter attribute, 690, 706–707,

723–724Converter implementations, 652, 705,

724, 745Converter interface, 744–746converter tag, 724converter tags. See converter tags.converterId attribute, 706–707, 724converters. See converters.converting data between model and pre-

sentation, 651javax.faces.convert package, 706model view, 745presentation view, 745

Conversion model, description, 651–652Conversions, immediate processing,

681–682convertDateTime tag, 707–709converter attribute, 690, 705Converter implementation classesBigDecimalConverter class, 706BigIntegerConverter class, 706BooleanConverter class, 706ByteConverter class, 706CharacterConverter class, 706DateTimeConverter, 706DateTimeConverter class, 706, 707-708DoubleConverter class, 706FloatConverter class, 706IntegerConverter class, 706LongConverter class, 706NumberConverter class, 706–707, 709-

710ShortConverter class, 706

converter tag, 705Converter tagsconvertDateTime tag, 707convertDateTime tag attributes, 708converter tag, 706–707, 723–724convertNumber tag, 707, 709convertNumber tag attributes, 709parseLocale attribute, 708

ConverterClient program source code, 860–861

Converters, 632, 634, 645, 658, 664–665, 705–710, 724, 744–747

custom converters, 652, 723–724standard converters. See standard

converters.Converting data. See conversion model;

XPath; XSLT.cookie object, 493Cooperating tags, 606–608, 627–629&copyr, copyright entity, 61CORBA (Common Object Request Broker

Architecture), 1370Core library, 541–549Core tagsconvertNumber tag, 709JavaServer Faces, 678–680XML, 551–552

count function, 254Country codes, ISO, 3166 400Cover, Robin, 40create method, 946–947, 1049, 1370

bean-managed persistence, 905compared to ejbCreate method, 878examples, 860, 876, 925life cycles, 847, 850requirements, 879, 915, 946

createClassification method, 406, 413createClassificationScheme method,

413createExternalLink method, 413createOrganization method, 405createPostalAddress method, 416createService method, 407createServiceBinding method, 407createTimer method, 893createValidator method, 754Credentials, 1370Cross-platform standard for data, 11CSIv2 (Common Secure Interoperability

version 2), 1143CSS (cascading style sheet), 1370CSS styles, specifying, 683

J2EETutorial.book Page 1422 Thursday, June 3, 2004 10:26 AM

Page 19: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1423

CTS (compatibility test suite), 1370Custom

components, registering, 810–811converters, registering, 804–805objects. See also JSP, custom tags.

components, 726–727converters, 724overview, 723–724user interface components. See Java-

Server Faces, custom UI compo-nents.

validators, 725–726verifying, 816

renderer, registering, 808–810validators, registering, 803–804

Custom converters, 652, 723Converter implementation, 804creating, 744-747getAsObject method, 745getAsObject(FacesContext, UICom-

ponent, String) method, 745getAsString method, 746getAsString(FacesContext, UICom-

ponent, Object) method, 745registering. See registering custom

converters.using, 724

Custom objectscustom converters, 723–724. See also

custom converters.custom renderers. See custom renderers.custom tags. See custom tags.custom UI components. See custom UI

components.custom validators, 725. See also custom

validators.using, 723-727using custom converters, renderers and

tags together, 764Custom renderers, 761–762, 764, 808

creating the Renderer class, 786-788determining necessity of, 763getName(FacesContext.UICompo-

nent) method, 782

javax.faces.render.Renderer class, 771

performing decoding, 783performing encoding, 780registering. See registering custom

renderers.ResponseWriter class, 782, 787startElement method, 782writeAttribute method, 782

Custom tags, 563–564, 654, 762, 764. See also classic tags; simple tags.

attributes, validation, 600cooperating, 573createValidator method, 754creating, 753-755creating tag handler, 772creating using JSP syntax, 573Duke’s Bank, 1320getComponentType method, 771, 774getRendererType method, 771, 776, 788identifying the renderer type, 786release method, 776and scripting elements, 623setProperties method, 771, 775tag handler class, 753–754, 770–772tag library descriptor, 754, 771, 777tag library descriptors. See tag library

descriptors.template tag library, 565UIComponentTag class, 771, 774UIComponentTag.release method, 776ValidatorTag class, 753–754writing the tag library descriptor, 754

Custom UI components, 653, 723, 761–762, 764, 788

creating component classes, 778-000delegating rendering, 771, 786-788determining necessity of, 762getId method, 782handling events emitted by, 788queueEvent method, 783registering. See registering custom UI

components.

J2EETutorial.book Page 1423 Thursday, June 3, 2004 10:26 AM

Page 20: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1424 INDEX

Custom UI components (Continued)restoreState(FacesContext,

Object) method, 785saveState(FacesContext) method,

785saving state, 771, 785setValueBinding method, 775specifying where state is saved, 815steps for creating, 771using, 726

Custom validators, 725, 751createValidator method, 754custom validator tags, 753-755implementing a backing-bean method to

perform validation, 750implementing the Validator interface,

751registering. See registering custom valida-

tors.using, 725validate method, 751, 758Validator implementation, 654, 751,

753–755, 803Validator interface, 750validator tag, 750, 753ValidatorTag class, 753–754

Cxml (Commerce XML), 1354

DData, 176

binding to objects, 686–689columns, 684definition, 1370element, 57encrypting, 1133encryption, 20, 1102. See also JAX-RPC.flow management. See JavaBeans compo-

nents.granularity, entity and session beans,

844–845normalizing, 77processing, 39structure, arbitrary, 264tables, 694–696

transformations. See XPath; XSLT.types, 252–253CDATA, 222element, 221entity reference, 222text, 222

validation. See validating.visibility, 76

Data integrity, 1045Data model, 248Data persistence. See also BMP; CMP.

and entity beans, 7overriding, 9, 17, 21

Data processing with XML, 39Data sources, 1077

connecting to from J2EE components, 1078

creating, 102–103, 959, 1079defining, 917definition, 1077getting a connection, 101looking up with JNDI, 101mapping to resource references, 104

Data structure design (XML)attributes vs. elements, 75–76conditionalized DTDs, 78containers vs. contents, 76data visibility, 76factoring out DTDs, 78modularizing DTDs, 78normalizing data, 77–78normalizing DTDs, 78online resources, 74stylistic choices, 76–77using existing schemas, 74

Database schema, 992Database server. See PointBase database

server.Databases. See also persistence.

accessing. See also transactions.multiple databases, 1071–1072servlets, 446–447updating multiple databases,

1071–1072from Web applications, 100–104

J2EETutorial.book Page 1424 Thursday, June 3, 2004 10:26 AM

Page 21: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1425

bean-managed persistence, 903, 913BLOB, 991BLOBs, 991business methods, 910calls, 913–914capturing schema, 992child tables, 923–929clients, 830, 840CLOB, 991CLOBs, 991connecting to from J2EE components,

1078connections, 103–104, 848, 878, 901,

1068, 1078–1080connectivity, 21. See also JDBC.creating tables, 903, 917, 958, 980, 992data recovery, 1045data sources, 102–104DataSource objects, 101deleting rows, 907Duke’s Bank tables, 1308EIS tier, 2entity beans, 833exceptions, 901foreign keys, 836, 919inserting rows, 905isolation levels, 1070mapping entity beans to multiple tables,

989message-driven beans and, 839multiple, 1063, 1071online banking example

creating, 1329reading data from, 1315–1317servers, setting up, 1328–1329tables, 1308–1309validating updates, 1315–1317

persistent fields, 835populating, 101–102portable beans, 835primary keys, 919, 933read-only data, 833referential constraints, 920relationships for bean-managed persis-

tence, 919

resource references, 103–104synchronizing with entity beans, 907table creation, 992table relationships

many-to-many, 930one-to-many, 922one-to-one, 919

tables, creating, 917–918, 958–959, 1002transactions. See transactions.

Data-model events, 653DataSource interface, 101, 1077DataSource objects, 101, 1077Date and time

conversion, 707–709EJB QL (Enterprise JavaBeans Query

Language), 1044localization formats, 823

Date tags, 556dateParam tag, 557–558DateTime converter, 707–709DDP (document-driven programming),

39–40, 1370Deactivation, JSP pages, 490, 511–512Debugging

See also error handlingSee also errorsSee also exceptionswith debuggers, 29enabling, 29JPDA (Java Platform Debugger Architec-

ture), 29overview, 28–29with server log, 28–29socket port, default, 29

Declaration, 34, 42Declarations

definition, 1370JSP documents, 530scripting, 620–621XML, 42. See also DTD.

Declarative security, 1087, 1370Decoding custom UI components, 783<DEF> (definition) tag, 280DefaultHandler API, 108DefaultHandler method, overriding, 145

J2EETutorial.book Page 1425 Thursday, June 3, 2004 10:26 AM

Page 22: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1426 INDEX

Defining text, 54Delegation, 1371deleteOrganizations method, 411Deleting

cascading deletes, 991, 1368concepts, 424–425connection factories, 1191entity beans, 907JAXR classification schemes, 423JAX-RPC service from the registry,

1263–1265registry entries, 1263–1265

Delivering applications. See packaging.Delivery modes, JMS, 1197JMSDeliveryMode message header field,

1170DeliveryMode interface, 1197Demarcating transactions, 1046, 1073Deployed Web modules, listing, 92Deployer, 1371Deployer roles, 16Deployment. See also deploytool utility;

packaging; undeploying.BMP examples, 918CMP examples, 971, 999definition, 1371J2EE applications, 868–869, 872JAXR clients, in J2EE applications, 432JAX-RPC (Java API for XML-based

RPC), 320–321message-driven beans, 1010–1014overview, 12–14session beans, examples, 883–884, 888,

899–900shopping cart example, 883–884timer service example, 899–900WAR files, 92Web modules, 89–92, 91Web services, 320–321, 888

Deployment descriptor files, 845–846Deployment descriptors, 12. See also

packaging.abstract schema, 835container-managed persistence, 942

creating, 845, 1092–1100definition, 1371EJB QL, 1015enterprise beans, 845, 847example, 1131generating. See deploytool utility.overview, 12–14portable, 12primary key class, 933resource adapter, 13–14runtime, 12tools, 26transaction attributes, 1049validating. See verifier tool.viewing, 1092, 1112Web application, 83, 86–87, 811

runtime, 87deploytool utility, 26. See also deploy-

ment.authentication method, configuring, 1105basic authentication, 1131–1132bean-managed persistence, 937client-certificate authentication, 1141components that send messages, 1011for components that send messages,

1011–1014configuring JavaServer Faces applica-

tions, 812–816container-managed persistence, 972–980,

1000–1002creating J2EE applications, 430deploying Web modules, 91deployment descriptors, creating,

1092–1100Edit Relationship dialog box, 976–978EJB Ref’s tab, 974–975Entity tab, 978Finder/Select Methods dialog box,

978–980General tab, 973–975, 978JAR File tab, 974JNDI names, specifying, 1013–1014JNDI Names tab, 973–974message-driven beans, 1010, 1227

J2EETutorial.book Page 1426 Thursday, June 3, 2004 10:26 AM

Page 23: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1427

for message-driven beans, 1010–1011method permissions, declaring, 1143overview, 27redeploy operation, 870Relationships tab, 975–978resource adapter security, configuring,

1148–1149resource references, setting, 1012security elements, setting, 1092–1100security pane, 1093–1100security roles, 1090–1092starting, 27Sun-specific CMP Settings dialog box,

980Design Patterns, Elements of Reusable

Object-Oriented Software, 457Destination interface, 1164Destinations

See also JMSSee also point-to-point messaging systemSee also publish/subscribe messaging sys-

temdefinition, 1371JMS programming model, 1164message destination references, setting,

1012–1013message destinations, setting, 1013temporary, 1198–1199

Destinations, JMScreating, 1007, 1178introduction, 1164JMSDestination message header field,

1170looking up, 1004, 1164temporary, 1199, 1233, 1248

destroy method, 467detachNode method, 348Detail interface, 369Detail object, 368DetailEntry interface, 369Development roles, 14–16

application assemblers, 15application client developers, 15application deployers and administrators,

16

enterprise bean developers, 15J2EE product providers, 14tool providers, 14Web component developers, 15

Development team, 634–635Digest authentication, 1105, 1371Digital certificates. See also client certificates.

for Application Server, 1115, 1119–1120client certificate, creating, 1120–1121commands for, 1121importing, 428–429keytool, 1116, 1121mutual authentication, 1120–1121and mutual authentication, 1120–1121overview, 1115–1116principal name, 1089server certificate, creating, 1116–1118signing, 1118–1119

Digital signatures, 1116DII (dynamic invocation interface) clients,

329–333Directives, JSP documents, 525–527Directives, tag files

attributesattribute, 579, 580body-content, 579list of, 577–578tag attributes, declaring, 579

tag variables, declaring, 579, 586–588tags, declaring, 576uses for, 576variable, 580–581variable synchronization, 580–584

Directory operations, 21–22. See also JNDI.Directory services, 21–22Disabling scripting, 620Discovering JAX-RPC service, 1282DISTINCT keyword, 1042Distributed applications, 2–8, 1371Distributed communication, 18. See also

JMS.div

JSP operator, 494XPath operator, 253

DNS, 22

J2EETutorial.book Page 1427 Thursday, June 3, 2004 10:26 AM

Page 24: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1428 INDEX

DNS services and JNDI, 22. See also JNDI.doAfterBody method, 627DocType node, 208, 222DOCTYPE tag, 56Document class, 184Document events, 123–124Document locator, 136–137Document Object Model (DOM). See DOM.Document root, 86, 1372Document type definition (DTD). See DTD.Documentation, module type, 13DocumentBuilderFactory, 212, 238

configuring, 238Document-Driven Programming. See DDP.Document-driven programming (DDP),

39–40, 1370Documents, 176

See also dataSee also JSP, documentsSee also JSP pagesSee also XML documentsdefinition, 1371element, 57events, 123fragment, 222node, 222type, 279vs. data, DOM, 176

doEndTag method, 624doFilter method, 454–455, 460doGet method, 448doInitBody method, 626DOM (Document Object Model), 117, 1345.

See also JAXP; SAX.applications, extending, 218, 227attributes, creating, 236CDATA nodes, converting to Text nodes,

212choosing a model, 181–182comments, ignoring, 212constructing, 182creating

configuring the factory, 187declaring the DOM, 184

element nodes, creating, 230–231error handling, 184–185from the factory, 228–229getting a parser, 186importing classes, 183–184instantiating the factory, 185modifying code, 229–230parsing a file, 186running the program, 186skeleton program, 182–183text nodes, creating, 230–231validation errors, 187–188

definition, 1371displaying a hierarchy, 189displaying a JTree, 195displaying in a JTreeAdapterNode class, 195–200adapting TreeModel to JTree,

195–204adding import statements, 189–190attribute data, 222CDATA, 222comments, 222complex tree, 207–211compressing the tree view, 213converting DomEcho to a GUI, 189creating adapters, 195data types, 221–223display components, 192–194displaying the tree, 223document fragments, 222documents, 222element content, defining, 220–223element data, 221entity data, 222entity reference data, 222GUI framework, 190–191lexical controls, 212modifications, 228notations, 222processing instructions, 222running the application, 225–227simple tree, 205–207text data, 222

J2EETutorial.book Page 1428 Thursday, June 3, 2004 10:26 AM

Page 25: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1429

TreeModel adapter, 200–204wiring the JTree to the JEditorPane,

223–224displaying in a JTree, nodes

changing, 236child access, 217DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223traversing, 234types, identifying, 219–220visibility, 216

documents vs. data, 176element nodes, 175entity reference nodes, expanding, 212interfaces, 111library, 106mixed-content model, 177nodes, 177

changing, 236DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223text, 175traversing, 234types, identifying, 219–220types of, 175, 177–181visibility, 216

normalizing, 231–233overview, 19, 110–111packages, 111reading XML data, 182–188, 258–259SAAJ and, 344, 358, 381SAAJ messages, 344, 381–385in SAAJ messages, 357, 381–385

versus SAX, 115structure, 180transforming data, 247tree structure, 175uses for, 106, 176validating

configuring the DocumentBuilder fac-tory, 238

with multiple namespaces, 239–240overview, 237schemas, associating with documents,

238–239schemas, declaring, 241–243with XML schema, 237–243

whitespace, ignoring, 212writing as an XML file, 257–264writing out a subtree, 263writing out as an XML file, 257XML standard, 1345

Dom4j, 117, 178, 1345–1346Domains, 25

Application Server default, 25asadmin start-domain --verbose

domain1, 25asadmin stop-domain domain1, 27definition, 25EJB QL queries, 1027–1030JMS (Java Message Service) API,

1159–1161messaging, 1159–1161overview, 25, 27security policy, 1392security technology, 1392start-domain command, 25–27

DomEcho, converting to a GUI, 189DOMExample.java, 381–385DOMSrcExample.java, 381–385doPost method, 448doStartTag method, 624doTag method, 599Drawing Meta Language (DrawML), 1353DrawML, 1353DrawML (Drawing Meta Language), 1353Drop-down lists, 699–700, 703–704

J2EETutorial.book Page 1429 Thursday, June 3, 2004 10:26 AM

Page 26: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1430 INDEX

DTD (document type definition), 35, 1346, 1348. See also XML.

ANY keyword, 55ATTLIST tag, 58attribute specification parameters, 60attribute types, 59attributes, defining, 57–60basic definitions, 52–53conditionalized DTDs, 78data elements, 57defining attributes, 57defining entities, 60defining namespaces, 72definition, 1372DOCTYPE tag, 56document elements, 57document type, specifying, 56documents vs. data, 57duplicate definitions, 55EMPTY keyword, 55entities

binary content, 63, 64–65conditional sections, 66defining, 60–63external, 62–63general, 63image files, 64–65internal, 60–61, 63MIME data types, 64–65multimedia data files, 64–65parameter, 66–68parsed, 63unparsed, 63, 64–65XML content, 63

entities, referencingbinary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66

ENTITY tag, 60–61external subset of document, 56factoring out, 78

hyphenation hierarchies, 70IGNORE keyword, 69INCLUDE keyword, 69industry-standard, 74JSP documents, 531–532, 533–535limitations, 54–55local subset of document, 56mixed-content model, 54modularizing, 78namespaces

and attributes, 71defining, 72defining prefixes, 73–74purpose of, 71referencing, 72–73

naming conflicts, 70–71. See also namespaces.

nested elements, 54normalizing, 78NOTATION keyword, 64parameterized, parsing in SAX, 162–163parsing the parameterized, 162PCDATA (parsed character data), 54PUBLIC keyword, 62–63referencing, 56–57in SAX, 171–172SAX warnings, 163special element values, 55SYSTEM keyword, 62–63text definitions, 54warnings, 163whitespace, 52XML standard, 1346

DTDHandler API, 109, 171Duke’s Bank example. See online banking

example.Duke’s Bookstore. See bookstore example.DUPS_OK_ACKNOWLEDGE mode, 1194Durable subscriptions, 1160, 1200–1204,

1372Durable subscriptions, JMS, 1200

examples, 1202, 1222Dynamic attributes, 570–571, 588–589,

601–602

J2EETutorial.book Page 1430 Thursday, June 3, 2004 10:26 AM

Page 27: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1431

Dynamic content. See also JSP; servlets.JSP documents, 527–530JSP pages, 487–489overview, 6, 18

Dynamic invocation interface. See DII.Dynamic invocation interface (DII) clients,

329–333Dynamic proxies, 326Dynamic proxy clients, 326–329

examples, 326Dynamic reloading, 93–95DynamicAttributes interface, 601

EEAI (enterprise application integration),

20–21.ear file extension, 12EAR (Enterprise Archive) files, 12–13,

1372. See also packaging.EbXML (Electronic Business XML), 12, 20,

1354. See also JAXR.definition, 1372overview, 12, 20registries, 390–391XML standard, 1354

EbXML Registry and Repository standard, 390

Echoingcomments, 164, 167–168entity references, 153–154external entity, 153–154lexical information, 168–171XML files

application skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119output, 121–123overview, 117parser, setting up, 120–121

XML files, event handling, 123–127E-commerce, XML standard, 1353–1354

EditableValueHolder interface, 646Editors, XML, 40EIS (enterprise information systems), 1357,

1362J2EE interaction. See J2EE Connector

architecture.EIS tier, 8

overview, 2–3, 8security

component-managed sign-on, 1148container-managed sign-on, 1147overview, 1147resource adapter security, configuring,

1148–1149EJB, timer service, 892EJB (Enterprise JavaBeans). See also enter-

prise beans.container providers, 1372containers, 10, 1372. See also enterprise

beans; transactions, container-managed.

context, 1373definition, 3, 1374home objects, 1373JAR files, 13, 1373modules, 13, 1373objects, 1373overview, 17server providers, 1373servers, 1373

EJB containers, 10bean-managed persistence. See BMP.container-managed persistence, 834container-managed transactions, 1046generating primary keys, 983instance contexts, 892instantiating enterprise beans, 847, 876message-driven beans, 1214onMessage method, invoking, 1005persistence, 939persistent fields, 943relationships, 834, 939services, 829–830

J2EETutorial.book Page 1431 Thursday, June 3, 2004 10:26 AM

Page 28: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1432 INDEX

EJB JAR files, 845container-managed relationships, 842EJB QL, 1015, 1028portability, 845

EJB QL (Enterprise JavaBeans Query Lan-guage), 1015

abstract schema, 1016abstract schema name, 1016abstract schema type, 1016abstract schemas, 1016, 1029, 1041arithmetic functions, 1037BigDecimal data types, 1044BigInteger data types, 1044BNF (Backus-Naur Form), 1016boolean logic, 1038case sensitivity, 1027cmp_field element, 1030cmr_field element, 1030collection member declarations, 1029collections, 1029, 1037comments, 1044compared to SQL, 1015, 1019, 1028conditional expressions, 1032–1033container-managed persistence, 1044date and time values, 1044definition, 1374delimiters, 1030deployment descriptors, 835deploytool, 978, 1001domain of query, 1015, 1027–1028EJB containers, 835examples, 996, 1017, 1019–1021, 1032finder methods, 835, 956identification variables, 1017, 1027–1028inheritance, 1044input parameters, 1033multiple declarations, 1028navigation, 1016, 1019, 1029, 1032navigation operator, 1019, 1030null values, 1036, 1038operators, 1034parameters, 1018path expressions, 1016, 1030

definition, 1016

examples, 1032expression types, 1031navigation, 1032syntax, full, 1030–1032

persistent fields, 1016queries

adding, 964–966conditional expressions, 1032–1040defining, 1001defining the query domain, 1027–1030identification variables, declaring,

1027–1030return types, defining, 1040–1043sorting results, 1027–1030

range variables, 1029relationship direction, 838relationship fields, 1016restrictions, 1044scope, 1015select methods, 944string functions, 1037syntax, full

aggregate functions, 1042–1043BNF grammar, 1023–1026BNF symbols, 1023FROM clause, 1027–1030collection member expressions, 1037conditional expressions, 1033DISTINCT keyword, 1042empty collection comparison expres-

sions, 1037equality semantics, 1039–1040BETWEEN expressions, 1035IN expressions, 1035functional expressions, 1037–1038LIKE expressions, 1036literals, 1032–1033NULL comparison expressions, 1036NULL values, 1038–1039OBJECT keyword, 1042operator precedence, 1033ORDER BY clause, 1027–1030path expressions, 1030–1032SELECT clause, 1040–1043

J2EETutorial.book Page 1432 Thursday, June 3, 2004 10:26 AM

Page 29: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1433

WHERE clause, 1032–1040syntax, simplified, 1016–1017syntax diagram, 1023types, 1031, 1039–1040

ejbActivate method, 847, 850EJBContext, 1050, 1057, 1068–1069ejbCreate method

bean-managed persistence, 905compared to create method, 878container-managed persistence, 945examples, 876, 905, 925, 945, 948JMS administered object lookups, 1213life cycles, 847, 850–851message-driven beans, 1007, 1215primary keys, 850, 935, 983requirements, 877session beans using JMS, 1224

ejbFindByPrimaryKey method, 909, 935EJBHome interface, 878ejbLoad, 1051ejbLoad method, 907, 928, 931, 946EJBObject interface, 879ejbPassivate method, 847, 850ejbPostCreate method, 850, 906, 945ejbRemove method

bean-managed persistence, 907, 932container-managed persistence, 946examples, 907life cycles, 848, 850–851message-driven beans, 1007, 1215

ejbStore method, 907, 946EJB-tier security

IOR security, configuring, 1143–1145method permissions, declaring, 1143overview, 1142and programmatic security, 1145users unauthenticated, 1145

ejbTimeout method, 892–893Electronic Business XML (ebXML). See

ebXML (Electronic Business XML).

Element events, 124–125Element nodes, 175

Elements, 43, 221, 230adding attributes, 43content, 220definition, 1373empty, 45, 153events, 124nested, 44nesting, 44node, 248qualifiers, 53root, 42root, defining, 42–43special values, 55vs. attributes, 75–76

Eliminating redundancies, 77email

Internet mail, 18–19JavaMail API

connecting to from enterprise beans, 1080–1083

definition, 1379overview, 18–19resource manager, 1076

mail session connections, 1080–1083notifications, 18–19. See also JavaMail.sending from enterprise beans,

1080–1083EMPTY, 55empty, JSP operator, 494Empty collection comparison expressions,

1037Empty elements, 153EMPTY keyword, 55Empty tags, 33–34, 1373Encoding, 35Encoding custom UI components, 780–782endDocument method, 119endElement method, 119Enterprise application integration (EAI),

20–21Enterprise Archive (EAR) files, 12–13,

1372. See also packaging.Enterprise bean class, coding, 855–856

J2EETutorial.book Page 1433 Thursday, June 3, 2004 10:26 AM

Page 30: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1434 INDEX

Enterprise bean classes files, 845–846Enterprise bean JAR files, examples, 857Enterprise beans, 6, 17, 855

See also backing beansSee also enterprise beansSee also entity beansSee also J2EE componentsSee also message-driven beansSee also session beansSee also transactionsabstract schema, 835–836accessing, 840API, 6–7application client

coding, 859compiling, 861creating, 858–863enterprise bean reference, specifying,

862–863packaging, 861–862running, 869

application exceptions, 901–902asynchronous message processing,

838–840bean-managed persistence, 834benefits of, 830boundaries, determining, 1046business methods. See business methods.business methods, invoking, 860coding

application client, 859enterprise bean class, 855–856enterprise beans, 854home interface, 855remote interface, 855Web client, 863–864

comparing, 891compiling, 856

application client, 861enterprise bean source files, 856Web client, 865

container-managed persistence, 834, 835–838. See also CMP.

container-managed relationships

bidirectional, 837–838definition, 834direction, 837–838many-to-many, 837many-to-one, 837multiplicity, 837one-to-many, 837one-to-one, 837unidirectional, 837–838

containers, 10contents, 845–846conversational state, 832ConverterClient program source code,

860–861creating, 854–858, 960and database interactions, 17databases, connecting to, 1078–1080definition, 3, 829, 1374deployment, 845deployment descriptor files, 845–846development roles, 15distribution, 843Duke’s Bank, 1309email, sending from, 1080–1083enterprise bean class, coding, 855–856enterprise bean classes files, 845–846entity beans. See entity beans.environment entries, 890establishing relationships, 966–967exception handling, 901–902exceptions, 901field mappings, 968helper classes files, 845–846home interface, coding, 855home interface, locating, 859–860home interfaces. See home interfaces.home methods, 990implementor of business logic, 6instances, creating, 860interfaces, 840, 845interfaces files, 845–846intranet security, 1143–1145IOR security, configuring, 1143–1145J2EE applications

J2EETutorial.book Page 1434 Thursday, June 3, 2004 10:26 AM

Page 31: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1435

class files, modifying, 870–871creating, 854deploying, 868–869deployment settings, modifying, 872JAR, adding files to, 871modifying, 870–872WAR, adding files to, 871

JAR files, 13JavaBeans architecture, 5JavaMail, connecting to, 1080–1083and JDBC API, 21life cycle

entity beans, 848–850message-driven beans, 850–851stateful session beans, 847–848stateless session beans, 848

life cycles, 841, 847local access, 841local home interfaces. See local home

interfaces.local interfaces. See local interfaces.lookups, 859mail sessions, connecting to, 1080–1083mapping references to JNDI names, 866message-driven beans

life cycle, 850–851vs. entity beans, 838–840vs. session beans, 838–840

method permissions. See method permis-sions.

method permissions, declaring, 1143modules, 13naming conventions, 846–847overview, 6–7, 17packaging, 857–858, 881passivation, 847performance, 842–843, 845persistence, 833–834persistent fields, 835–836PointBase database, connecting to,

1078–1080primary keys, 834propagating security identity, 1149–1151protecting, 1142

provider, 1374provider/developer role, 15reference, specifying, 883, 899references, 859, 862, 866, 998–999references, setting, 968–971references, specifying, 1055–1056, 1062,

1067relationship fields, 836relationship mappings, 968relationships, 834remote access, 840remote interface, coding, 855remote interfaces. See remote interfaces.representing a single client, 831–833representing business objects, 833–838required files, 845–846session beans. See session beans.shared access, 834source files, compiling, 856state, 836state management modes, 831–832stateful session beans, 832, 847–848stateless session beans, 831–832, 848system exceptions, 901–902transactions, 1069transactions, bean-managed, 1057–1068transactions, container-managed,

1046–1057types, 7, 830–832URLs, connecting to, 1083–1086user access, controlling. See EJB-tier

security.uses for, 830Web client

coding, 863–864compiling, 865context root, specifying, 868creating, 863–868enterprise bean reference, mapping,

867enterprise bean reference, specifying,

866packaging, 865running, 869–870

J2EETutorial.book Page 1435 Thursday, June 3, 2004 10:26 AM

Page 32: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1436 INDEX

Enterprise beans (Continued)Web service endpoint interfaces, 844Web services, 831–832, 840, 843, 884

Enterprise Information Systems. See EIS tier.

Enterprise information systems (EIS), J2EE interaction. See J2EE Connector architecture.

Enterprise JavaBeans (EJB). See EJB.Enterprise JavaBeans Query Language (EJB

QL). See EJB QL.EnterpriseBean interface, 876Entities, 35, 222

defining, 35, 49defining in DTD, 60definition, 1374external, 78external, echoing, 153–154general, 154identifying, 109included "in line," 37list of, 49parameter, 66, 155parsed, 63, 155predefined, 49public identifiers, 109reference, 77, 179, 222reference node, 211reference nodes, expanding, 212references, 66, 153–154, 212, 1375referencing binary, 64referencing external, 62resolution, SAX, 172–173state, inserting in database, 905–906summarizing, 154–155unparsed, 63, 155useful, 61in XML documents, 50–51

Entities, in DTDsbinary content, 63, 64–65conditional sections, 66defining, 60–63external, 62–63general, 63

image files, 64–65internal, 60–61, 63MIME data types, 64–65multimedia data files, 64–65parameter, 66–68parsed, 63referencing

binary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66

unparsed, 63, 64–65XML content, 63

Entity bean class, 941Entity bean methods, 945–946Entity beans, 7, 17, 833

See also backing beansSee also BMPSee also CMPSee also enterprise beansSee also message-driven beansSee also session beansaccess control, 844–845bean-managed persistence. See BMP.benefits of, 17cascading deletes, 991collections, 1029configuring relationships, 995–996container-managed persistence. See CMP.container-managed relationships, 842container-managed versus bean-managed,

941defining client access, 840–845definition, 1375deleting, 907description, 833–838Duke’s Bank, 1306equality, 891examples, 890–892finder methods, 841–842, 908–910,

914–916garbage collection, 850granularity of data, 844–845

J2EETutorial.book Page 1436 Thursday, June 3, 2004 10:26 AM

Page 33: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1437

home interface, 841home methods, 841isolation, 844isolation levels, 1071JMS example, 1231life cycle, 848–850local clients, 841–842local interfaces, 842locating, 908–910, 912mapping to multiple tables, 989messages. See JMS.overview, 7, 17persistent state, 838primary keys. See primary keys.querying. See EJB QL.remote access vs. local, 842–843remote clients, 840–841remote interface, 841transaction types allowed, 1069transactions, 1049, 1051, 1057, 1069vs. message-driven beans, 838–840vs. session beans, 833–834Web service clients, 843–844Web service endpoint interface, 844

ENTITY tag, 60–61EntityBean interface, 904EntityContext interface, 892, 906EntityResolver, 242

API, 172EntityResolver API, 109Environment entries, 890Environment naming context, locating, 22eq, JSP operator, 494Equal sign (=), XPath operator, 253Equal signs (==), JSP operator, 494Equality semantics, 1039–1040Error handling. See also debugging; excep-

tions.DOM, 184–185DTD warnings, 163error types, 139–140fatal errors, 140IOException, 144–145JSP pages, 485–486

nonfatal errors, 145–146ParserConfigurationException, 144SAX, 139–147, 158, 161SAX (Simple API for XML), 109SAXException, 141–143SAXParseException, 140–141, 143servlets, 443–444tags, 549warnings, 146–147XML, 48, 108

Error messages, JSP, 640, 698–699Error page, creating, 1107–1108ErrorHandler API, 108Errors. See also debugging.

definition, 48, 1375fatal, 48, 140, 1375generating, 286handling, 184

in the validating parser, 161handling XML Schema errors, 158mapping to error screens, 99nonfatal, 145types, SAX, 139–140validation, 159, 187warnings, 48, 146–147, 1397

escapeXML function, 561–562Event and listener model, 645, 652-653,

652–653action events. See action events.ActionEvent class, 691–692data model events, 653Event class, 652event handlers, 634, 665, 772event listeners, 632, 634, 664, 666–668,

710handling events of custom UI compo-

nents, 788implementing event listeners, 747-750Listener class, 652, 755queueEvent method, 783value-change events. See value-change

events.ValueChangeEvent class, 722

J2EETutorial.book Page 1437 Thursday, June 3, 2004 10:26 AM

Page 34: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1438 INDEX

Event handlingCDATA sections, 147–149. See also lexical

events.custom UI components, 789–790document locator, 136–137DTDs, 171–172entity resolution, 172–173error handlers, 139–147, 161lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171

processing instructions, 137–139special characters, 147–149XML files

character events, 125–127document events, 123–124element events, 124–125

Event listeners, 591, 710–712, 747–750Events. See also lexical events.

action, 652character, 125–127content, 123data-model, 653document, 123–124element, 124–125immediate processing, 681–682lexical, 164

ExamplesSee also bookstore exampleSee also Coffee BreakSee also online banking exampleSee also SAAJ messages, tutorialSee also session beans, examplesaccess methods, 949, 976application clients, 333, 860asant, 856authentication

basic, 1126–1133client-certificate, 1133–1142form-based, 1105–1114mutual, 1133–1142

bean-managed JDBC transactions, 1059–1063

bean-managed JTA transactions, 1064–1068

bean-managed persistence, 903, 924, 932. See also BMP examples.

business methods, 910, 945classpath, 856container-managed persistence, 939, 958,

984. See also CMP examples.container-managed relationships, 940container-managed transactions,

1053–1056create method, 860, 876, 925deployment descriptors, 1131DII clients, 329Duke’s Bank. See online banking exam-

ple.Duke’s Bookstore. See bookstore exam-

ple.durable subscriptions, 1202–1204dynamic proxy clients, 326EJB QL, 996, 1017, 1019–1021, 1032ejbCreate method, 876, 905, 925, 945,

948ejbRemove method, 907enterprise bean JAR files, 857entity beans, 890–892finder methods, 909, 920, 955, 1041guessNumber, 636, 662home interfaces, 879, 914image map, 765–770iteration tags, 608–610Java Servlet technology. See bookstore

example.Java Web services. See Coffee Break

example.JavaServer Faces, JSP pages, 672–675JavaServer Faces technology. See also

bookstore example.building, 1297–1298deploying, 1297–1298JavaBeans components, 1288–1289JSP pages, 1285–1287

J2EETutorial.book Page 1438 Thursday, June 3, 2004 10:26 AM

Page 35: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1439

overview, 1284–1285packaging, 1297–1298resource configuration, 1289–1290running, 1297–1298

JAXRJ2EE application, 425simple, 417

JAX-RPC serviceadvertising the service, 1259–1263building, 1292–1294deploying, 1292–1294discovering, 1282packaging, 1292–1294registry, deleting from, 1263–1265registry, publishing to, 1259–1263running, 1292–1294service implementation, 1258–1259service interface, 1257

JMSasynchronous message consumption,

1183durable subscriptions, 1202J2EE examples, 1222, 1231, 1239,

1246local transactions, 1206message acknowledgment, 1194synchronous message consumption,

1174JMS API local transactions, 1206–1211JSP (JavaServer Pages). See bookstore

example.JSP custom tags

bookstore examples, 564–568dynamic attributes, 588–589fragment attributes, 586–588simple attributes, 585–586, 586–588variables, 572–573

JSP documents, 516–521JSP expressions, 494–495JSP pages, 472–482, 494–495, 863JSP scripting elements, 618JSP simple tags, 608, 610JSP Standard Tag Library. See bookstore

example.JSP tag files, variable synchronization,

582–584JSTL (JavaServer Pages Standard Tag

Library), 538–541local interfaces, 946–947, 950location, xlmapping table relationships

child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922

message acknowledgment, 1194–1197message-driven beans. See message-

driven beans example.path expressions, 1032persistent fields, 943primary keys, 934, 982programming tag handlers, 608–616relationship fields, 943remote interfaces, 855, 879, 916required software, xlSAAJ

attachments, 385DOM, 381headers, 380request-response, 373SOAP faults, 387

scripting, 618–619security

basic authentication, 1126client-certificate authentication, 1133form-based authentication, 1105mutual authentication, 1133

servlets, 436–441session beans, 855, 873, 890simple JSP pages, 84simple servlets, 84synchronous messaging, 1174template tag library, 610–613timer service, 895transactions, 1051–1052, 1063variable synchronization, tag files,

582–584Web applications

J2EETutorial.book Page 1439 Thursday, June 3, 2004 10:26 AM

Page 36: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1440 INDEX

Examples (Continued)See Coffee Break exampleSee JAXR, client examplesSee JAX-RPC, exampleSee online banking example

Web clients, 863Web services, 314, 1255

ExceptionsSee also debuggingSee also error handlingSee also errorsapplication, 901–902business methods, 878create method, 879, 915ejbCreate method, 877, 906ejbFindByPrimaryKey method, 910ejbRemove method, 907enterprise beans, 901–902javax.ejb package, 902JMS, 1172–1173mapping to error screens, 99ParserConfigurationException, 144rolling back transactions, 901,

1050–1051, 1058, 1063SAXException, 141–143SAXParseException, 140–141, 143SQL, 1051system, 901–902transactions, 1048–1049

Exclamation point, equal sign (!=)JSP operator, 494XPath operator, 253

Exclamation point (!), JSP operator, 494Executing procedures remotely. See JAX-

RPC; RPCs.Expiration of JMS messages, 1198JMSExpiration message header field,

1170Explicit collaboration, 542–543Expression evaluation tags, 549Expression language, JSP pages

arithmetic operators, 494conditional operators, 494deactivation, 490, 511–512

examples, 494–495functions, 496–497implicit objects, 492–493literals, 493logical operators, 494null values, determining, 494operators, 493–494overview, 489–490relational operators, 494reserved words, 494using expressions, 490–491variables, 491–492

ExpressionsJSP documents, 530scripting, 622–623XPath, 247–248, 250–251

Extended document XML standards, 1353Extensible Markup Language (XML). See

XML.Extensible Stylesheet Language (XSL),

1347, 1400Extensible Stylesheet Language Transfor-

mations (XSLT). See XSLT.External data sources, binding to component

values, 683, 714–718External entities, 62–63, 153–154, 1375External subsets, 1375

FFaces request, 663–664Faces response, 663–664FacesMessage, 743–744FacesServlet, 813–814false function, 256Fatal errors, 48, 140, 1375Faults, SOAP. See SOAP faults.File extensions. See specific extensions.file realm, 1088–1089Filter chains, 303–310, 455, 460, 1375

as concatenated transformations, 303in XSLT, operation of, 307

Filter interface, 454–456Filter mappings, 458–460

J2EETutorial.book Page 1440 Thursday, June 3, 2004 10:26 AM

Page 37: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1441

FilterChain interface, 454–456FilterConfig interface, 454–456Filtering requests and responses, 454Filters, 454–456, 1375

defining, 454mapping to Web components, 458mapping to Web resources, 458–460overriding request methods, 457overriding response methods, 457response wrappers, 456

findAncestorWithClass method, 606findByPrimaryKey method, 929, 949, 952findClassificationSchemeByName

method, 406, 413findConcepts method, 402Finder methods, 990

bean-managed persistence, 908compared to select methods, 944container-managed persistence, 941, 990creating, 914–916defining, 946–947definition, 1376deploytool, 978description, 908–910, 944EJB QL, 1017entity and session beans, 841examples, 909, 920, 955, 1041home interfaces, 915local home interfaces, 946returning collections, 926transactions, 1049

findOrganization method, 400floor function, 256Flow control tags, 545–547, 552–553For-each loops, 301forEach tag

core library, 544, 547XML library, 550, 552–553

Foreign keys, 919–922, 987Foreign language support. See international-

ization; localization.form tag, 639formatDate tag, 554, 556formatNumber tag, 554, 556

Formatting Objects standard, 246Formatting tags, 556FormatValidatorTag class, 754Form-based authentication

configuring, 1097–1098definition, 1376example, 1105–1114overview, 1101–1102protecting passwords, 1113–1114and SSL support, 1113–1114

Forms, user input, 683–684forTokens tag, 544, 547forward method, 462Fragment attributes, 569–570, 584–588Fragments, JSP, 569–570Framework roles, 634–635Fraudulent transmission of information, 20.

See also JAX-RPC.FROM clause, 1027–1030Fully qualified names, 349Functional expressions, 1037–1038Functions. See also specific functions.

arithmetic (numeric), 256Boolean, 256boolean, 256ceiling, 256concat, 255contains, 255conversion, 256count, 254false, 256floor, 256JSP pages, 496–497lang, 256last, 254local-name, 257name, 257namespace, 257namespace-uri, 257node-set, 254normalize-space, 255not, 256number, 256numeric, 256

J2EETutorial.book Page 1441 Thursday, June 3, 2004 10:26 AM

Page 38: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1442 INDEX

Functions (Continued)position, 254positional, 254round, 256starts-with, 255string, 255string, 256string-length, 255substring, 255substring-after, 255substring-before, 255sum, 256translate, 255true, 256XPath, 253–257

Functions library, 541–542, 561–562

GGamma, Erich, 457Garbage collection, 850–851ge, JSP operator, 494General entities, 63, 154, 1376Generate-wsdl task, 317–318GenericServlet interface, 436getAttachments method, 360getBody method, 348getCallerPrincipal method, 1145getConnection method, 101, 1077getEJBObject method, 906getEnvelope method, 348getHeader method, 348getInfo method, 894getJspBody method, 602getJspContext method, 604getNextTimeout method, 894getObject method, 892getParameter method, 449getParent method, 606getParser method, 121getPrimaryKey method, 906, 936getRemoteUser method, 1098getRequestDispatcher method, 461getRollbackOnly method, 1218

getServletContext method, 463getSession method, 464getSOAPBody method, 348getSOAPHeader method, 348getSOAPPart method, 348Getters. See access methods.getTimeRemaining method, 894Getting, 81getUserPrincipal method, 1098getValue method, 354getVariableInfo method, 605GIF files, 13Granularity of data, 844–845Graph (tree) of beans, 799–801Greater than, equal (>=)

JSP operator, 494XPath operator, 253

Greater than (>)entity for, 49JSP operator, 494XPath operator, 253

Greater than entity, &gt, 49Groups, 1088

definition, 1088–1089, 1376overview, 1088–1089roles, mapping, 1090–1092

&gt, greater than entity, 49gt, JSP operator, 494GUI tools, list of, 26

HHandles, 1376Handling events. See event and listener

model.Hash mark (#), in character references, 50header object, 492HeaderExample.java, 380–381Headers, SAAJ messages, 355–356,

380–381headerValues object, 493Headings, XML to HTML, 285Helper classes, 845, 880, 923

Duke’s Bank, 1307

J2EETutorial.book Page 1442 Thursday, June 3, 2004 10:26 AM

Page 39: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1443

Helper classes files, 845–846Hexadecimal to decimal conversion, 50Hiding user input, 694Hierarchical nature of XML, 38Hierarchy, collapsed, 225Home handles, 1376Home interfaces, 878, 914

coding, 855defined, 841definition, 1376description, 878–879entity and session beans, 841examples, 855, 879, 914home methods, 913locating, 859–860, 863

Home methods, 912, 915container-managed persistence, 990creating, 914–916defining, 946–947description, 912–913entity and session beans, 841

HTML (Hypertext Markup Language), 31component tags, 680–681definition, 1376files, module type, 13pages. See also JSP pages; Web compo-

nents.overview, 6

transforming XML to. See XPath; XSLT.HTMLReaderBean example, 1085–1086HTML-style tags, 44–45HTTP (Hypertext Transfer Protocol),

313–314, 1133basic authentication. See basic authentica-

tion.definition, 1376digest authentication. See digest authenti-

cation.over SSL, 1102, 1133. See also client-cer-

tificate authentication.request-and-response model, 11. See also

SOAP.requests, 1356responses, 1356setting proxies, 398

HTTP protocol, 1355HTTP request URLs, 449

query strings, 450request paths, 449

HTTP requests, 449, 1356. See also requests.

methods, 1356HTTP responses, 451, 1356. See also

responses.status codes, 99, 1356

mapping to error screens, 99HTTPS, 1116, 1122, 1377HttpServlet interface, 436HttpServletRequest, 1098HttpServletRequest interface, 449, 1098HttpServletResponse interface, 451HttpSession interface, 464Hyperlinks, 686Hypertext Markup Language (HTML). See

HTML.Hypertext Transfer Protocol (HTTP). See

HTTP.Hyphen (-), in XML markup, 43Hyphenation hierarchies, DTDs, 70

I<I> (italics) tag, 280I18n. See internationalization.ICE (Information and Content Exchange),

1354id attribute, 681Identification, 1088Identity transform, 260IDL (Interface Definition Language), 1377if tag, 544, 545, 550ignorableWhitespace method, 151–152IGNORE keyword, 69Ignored, 145IIOP (Internet Inter-ORB Protocol), 1377Image file entities, 64–65Image map example

application classes, summary, 770configuring model data, 769–770JavaServer Faces technology for, 765–766

J2EETutorial.book Page 1443 Thursday, June 3, 2004 10:26 AM

Page 40: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1444 INDEX

Image map example (Continued)JSP page, 767–768rendered HTML, 766–767

Images, displaying, 690immediate attribute, 681–682Impersonation, 1377Implementation-specific parameters, 12–14Implicit collaboration, 542–543Implicit includes, 512–513Implicit objects, 717

binding to component values, 717–718JSP pages, 488, 492–493referencing, 796–797

import tag, 544, 548IN expressions, 1035Inbound contracts, 1361–1362include directive, 506INCLUDE keyword, 69include method, 461Indent options, XML to HTML, 290–291Independent software vendor (ISV), 1377indexOf function, 561–562Information and Content Exchange (ICE),

1354Information model, JAXR, 390, 392Inheritance, EJB QL, 1044init method, 447InitialContext interface, 22Initialization parameters

definition, 1377referencing, 796–797setting, 98–99

Initializingarray properties, 799instance variables, 905–906JSP pages, 620–621list properties, 799lists, 801–802managed bean properties, 799–801map properties, 797–798maps, 801–802properties, 795–796servlets, 447–453

Initializing properties with the managed-property element

initializing Array and List properties, 799

initializing managed-bean properties, 799initializing Map properties, 797initializing maps and lists, 801referencing an initialization parameter,

796initParam object, 493Inline (content) elements, 296–302Inline reusability, XML, 37Inline tags, 280, 296Input forms, user interface, 639inputSecret tag, 694inputText tag, 639, 691–692Installing applications, 16Instance variables

initializing, 905–906refreshing, 907–908storing, 907–908synchronizing, 1052–1053

Instructions, processing, 35, 46, 137Integrity, 1114Interface Definition Language (IDL), 1377Interface files, 845–846Internal entities, 60–61, 63Internationalization, 819. See also localiza-

tion.application clients, Duke’s Bank, 1327JavaServer Faces applicationsbasename, 704FacesContext.getLocale method,

708FacesMessage class, 742getMessage(FacesContext,

String, Object) method, 743, 753

loadBundle tag, 680, 704–705locale attribute, 677localizing messages, 742-744message factory pattern, 742MessageFactory class, 743, 752performing localization, 741-744queuing messages, 758using localized static data and mes-

sages, 703

J2EETutorial.book Page 1444 Thursday, June 3, 2004 10:26 AM

Page 41: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1445

using the FacesMessage class to create a message, 743

JSTL tag library, 554–556locale, establishing, 821localization context, 554online banking example, 1327–1328Web clients, Duke’s Bank, 1327

Internationalization library, 541–542, 554–556

Internet Inter-ORB Protocol (IIOP), 1377Internet mail, 18–19. See also JavaMail.Internet RPCs, 19. See also JAX-RPC.Interoperability, 11, 19. See also J2EE Con-

nector architecture.Intranet security, 1143–1145invalidate method, 466Inventory and ordering example. See CMP

examples, inventory and ordering.Invoke application phase, 668invoke method, 602IOException, 144–145IOR security, configuring, 1143–1145isCallerInRole method, 1145isIdentical method, 891ISO 3166, 1377ISO 3166 country codes, 400ISO-8859-1 encoding, 1341Isolation, entity and session beans, 844Isolation levels, 1070Isolation levels, transactions, 1070–1071isThreadSafe, 488isUserInRole method, 1098ISV (independent software vendor), 1377<ITEM> element, 281, 293Iterating over objects in the data source,

686–689Iteration tags, 547, 608–610IterationTag interface, 623

JJ2EE (Java 2 Platform, Enterprise Edition)

1.4 APIs, 16–17. See also APIs.1.4 platform implementation, 23–29. See

also Application Server.

applications. See also applications.class files, modifying, 870–871creating, 854definition, 1377deploying, 868–869deployment settings, modifying, 872JAR, adding files to, 871modifying, 870–872security roles, 1090–1092. See also

roles; security.WAR, adding files to, 871

clients, 4–5components

definition, 1377overview, 3–8versus standard Java classes, 3–4

definition, 1378EIS interaction. See J2EE Connector

architecture.groups, 1089modules, 1378Platform APIs. See APIs.product, 1378product provider, 1378product provider role, 14security model, 8. See also containers;

security.server

components that run on, 2as a container, 10definition, 1378

server communications, 5–6users, 1088

J2EE 1.4 platform, APIs, 16J2EE applications, 2. See also online bank-

ing example.debugging, 28–29deploying, 868, 883, 888, 899iterative development, 870JAXR example, 425JMS examples, 1222, 1231, 1239, 1246running on more than one system, 1239,

1246tiers, 2

J2EETutorial.book Page 1445 Thursday, June 3, 2004 10:26 AM

Page 42: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1446 INDEX

J2EE clients, 4application clients, 5. See also application

clients.Web clients, 4, 81. See also Web clients.Web clients versus application clients, 5

J2EE components, 3connecting to databases, 1078connecting to mail sessions, 1081connecting to URLs, 1083mapping resource references to data

sources, 1079mapping resource references to mail ses-

sions, 1082mapping resource references to URL con-

nections, 1085sending email, 1080specifying resource references, 1079,

1082, 1085types, 3

J2EE Connector architecture, 1357CCI, 1362CCI (Common Client Interface),

1362–1363connection management contract, 1361inbound contracts, 1361–1362life-cycle management contract,

1359–1360management contracts, 1359–1360messaging contract, 1361messaging contracts, 1361outbound contracts, 1360–1361purpose of, 1357RAR (Resource Adapter Archive) files,

1357resource adapter contracts, 1359–1362resource adapters. See resource adapters.security management contract, 1361thread management, 1360transaction inflow, 1362transaction management contract, 1361work management contract, 1359–1360

J2EE groups, 1089–1090J2EE modules, 12–13

application client modules, 13EJB modules, 13, 845

resource adapter modules, 13, 1357Web modules. See Web modules.

J2EE platform, 1–2JMS and, 1156

J2EE security model, 8J2EE servers, 10J2EE transaction model, 8J2ME (Java 2 Platform, Micro Edition),

1378J2SE (Java 2 Platform, Standard Edition),

324, 1378J2SE SDK, 324JAAS (Java Authentication and Authoriza-

tion Service), 22JACC (Java Authorization Contract for Con-

tainers), 1151JAF (JavaBeans Activation Framework), 19.jar file extension, 13JAR (Java archive) files. See also EJB JAR

files.adding files to, 871definition, 1378including, 816–817j2ee.jar, 856overview, 12–14viewing settings, 974–980

Javaencoding schemes, 1341–1342IDL, 1379interfaces, 13pluggability layer, 105processing XML data. See JAXP.

Java 2 Platform, Enterprise Edition (J2EE). See J2EE.

Java 2 Platform, Micro Edition (J2ME), 1378

Java 2 Platform, Standard Edition (J2SE), 324, 1378

Java API for XML Processing (JAXP). See JAXP.

Java API for XML Registries (JAXR). See JAXR.

Java API for XML-based RPC (JAX-RPC). See JAX-RPC.

Java archive (JAR) files. See JAR files.

J2EETutorial.book Page 1446 Thursday, June 3, 2004 10:26 AM

Page 43: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1447

Java Authentication and Authorization Ser-vice (JAAS), 22

Java Authorization Contract for Containers (JACC), 1151

Java beansSee backing beansSee enterprise beansSee entity beansSee message-driven beansSee session beans

Java classeslogging messages, 28Server Log, overview, 28System.out.println method, 28

Java Message Service (JMS). See JMS.Java Message Service (JMS) API. See mes-

sage-driven beans.Java Naming and Directory Interface

(JNDI). See JNDI.Java Platform Debugger Architecture

(JPDA), 29. See also debugging.Java Plugins. See applet containers; applets.Java Secure Socket Extension (JSSE), 1379Java servlet technology, 18. See also serv-

lets.Java servlets. See servlets.Java System Application Server. See Appli-

cation Server.Java Transaction API (JTA). See JTA.Java Transaction Service (JTS), 1379Java WSDP Registry Server, 390–391JavaBeans Activation Framework (JAF), 19JavaBeans components, 5, 326, 497

creating in JSP pages, 499definition, 1379design conventions, 497Duke’s Bank, 1319JAX-RPC, 325JSP pages

creating, 499custom tags, 502–506design conventions, 497–498properties, getting, 502properties, setting, 500–502

tag libraries, declaring, 503–505tag libraries, definition, 502–503tag libraries, including, 505–506using, 499

methods, 497overview, 5properties, 497–498

retrieving in JSP pages, 502setting in JSP pages, 500

using in JSP pages, 499in WAR files, 86

java:comp/env context, 22JavaMail, 18

connecting to from enterprise beans, 1080–1083

definition, 1379overview, 18–19resource manager, 1076

JavaMail resources. See mail sessions.JavaServer Faces, 24

application architects, 635application developers, 634–635backing beans

binding component values and instances, 657–659

configuring, 643–644creating, 659definition, 634developing, 642–643managing, 656–659method-binding, 657storing, 659value-binding, 657

benefits of, 633component relationships, 659–662component writers, 635data validation, 640, 654definition, 1380development team, 634–635example

building, 1297–1298deploying, 1297–1298JavaBeans components, 1288–1289JSP pages, 1285–1287

J2EETutorial.book Page 1447 Thursday, June 3, 2004 10:26 AM

Page 44: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1448 INDEX

JavaServer Faces (Continued)overview, 1284–1285packaging, 1297–1298resource configuration, 1289–1290running, 1297–1298

expression language, 1380framework roles, 634–635navigation model, 654–656, 1380overview, 24–25, 631–632page authors, 634–635page life cycle

faces request, 663–664faces response, 663–664invoke application phase, 668non-faces request, 663–664non-faces response, 663–664overview, 662process validations phase, 666–667render response phase, 668–669request processing, 663–665request values phase, 666update model values phase, 667–668view phase, 665–666views, 662

standard HTML render kit library, 648, 676, 808

html_basic TLD, 676UI component tags. See UI component

tags.standard HTML RenderKit library,

html_basic TLD, 777tools vendors, 635UI component class, 1380UI components, 1380user interface component model

action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, definition, 1380conversion model, description,

651–652data validation, 654data-model events, 653

event and listener model, definition, 1380

event and listener model, description, 652–653

mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645UICommand class, tags, 648validation model, 654value-change events, 653

validation model, 1380JavaServer Faces, application configuration

application configuration resource filesdescription, 792making available, 792–793specifying path to, 814–815

backing beans, configuringarray properties, initializing, 799custom converters, registering,

804–805custom validators, registering, 803–804graph (tree) of beans, 799–801implicit objects, referencing, 796–797initialization parameters, referencing,

796–797initializing properties, 795–796instances of List, 795instances of Map, 795list properties, initializing, 799list-entries element, 795lists, initializing, 801–802managed bean properties, initializing,

799–801managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796map properties, initializing, 797–798map-entries element, 795, 797–798maps, initializing, 801–802messages, registering, 802–803overview, 793

J2EETutorial.book Page 1448 Thursday, June 3, 2004 10:26 AM

Page 45: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1449

backing beans, creating, 793–802basic requirements, 811–817classes, including, 817component access, restricting, 815–816custom components, registering, 810–811custom objects, verifying, 816custom renderer, registering, 808–810deploytool utility, 812–816FacesServlet, 813–814JAR files, including, 816–817life cycle processing, 813–814managed bean creation facility, 793–802navigation rules, configuring, 805–808pages, including, 817state, specifying save location, 815WAR files, 811–812XML file validation, enabling, 816

JavaServer Faces, application developmentActionListener class, 749–750backing bean methodsActionEvent, 749, 757navigation, 755–757overview, 755validation, 757–758ValueChangeEvent, 748, 758–759

component propertiesbound to component instances,

739–740bound to component values, 730–739FacesMessage, 743–744localization, 741–744message factory, 743overview, 730resource bundles, 741, 743–744UIData, 732–733UIInput, 731–732UIOutput, 731–732UISelectBoolean, 734UISelectItem, 736UISelectItems, 737–739UISelectMany, 734–735UISelectOne, 735–736user input, selecting from a list,

734–739

converters, custom, 744–747createValidator method, 754event listeners, 747–750FormatValidatorTag class, 754overview, 729tag handlers, 753–754tags, custom, 753–755TLD (tag library descriptor), 754–755Validator interface, 750–753validators, custom, 750–753ValueChangeListener class, 748–749

JavaServer Faces, applicationsbacking beans, 642–644buttons, 639commandButton tag, 639creating pages, 638–640data validation, 640definition, 633–634development process, 635–637displaying error messages, 640form tag, 639input forms, 639inputText tag, 639managed bean declarations, 643–644message tag, 640page navigation, 640–641text fields, 639validateLongRange tag, 640

JavaServer Faces, custom UI componentsclasses, creating, 778–786component, renderer, tag combinations,

764–765component properties, value binding,

783–784components, creating, 771–772components, determining need for,

762–765custom component tag, defining, 777decoding, 783encoding, 780–782event handling, 789–790image map example

application classes, summary, 770configuring model data, 769–770

J2EETutorial.book Page 1449 Thursday, June 3, 2004 10:26 AM

Page 46: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1450 INDEX

JavaServer Faces, custom UI components (Continued)

JavaServer Faces technology for, 765–766

JSP page, 767–768rendered HTML, 766–767

overview, 761–762renderer class, 786–788renderer type, identifying, 788renderers, determining need for, 763–764rendering, delegating, 786–788state, saving and restoring, 785–786tag handlers, creating, 772–776TLD (tag library descriptor), 777

JavaServer Faces, expression language, 657method-binding expressions. See method

binding; method-binding expres-sions.

value-binding expressions. See value binding; value-binding expres-sions.

JavaServer Faces, JSP pagesaction processing, 684–686backing bean methods, referencing

navigation methods, 720–721overview, 719–720validation methods, 722

binding component instances tobean properties, 718–719bean values, 683

binding component values toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716

binding data to objects, 686–689component identification, 681conversions, immediate processing,

681–682converters, 705–710core tags, 678–680CSS styles, specifying, 683custom objects

components, 726–727converters, 724

overview, 723–724validators, 725–726

data columns, 684data tables, 694–696data validation, 714date conversion, 707–709error messages, 698–699event listeners, 710–712events, immediate processing, 681–682example, 672–675HTML component tags, 680–681hyperlinks, 686images, displaying, 690iterating over objects in the data source,

686–689localized messages, 703–705number conversions, 709–710registering listeners on components,

710–712rendering components, 682requiring values, 712–714setting up, 676–678tables, data, 694–696text labels, 690–694time conversion, 707–709UI component tag attributes, 681–683user input

buttons, 685checkboxes, 697–698, 703–704combo boxes, 699–700, 703–704drop-down lists, 699–700, 703–704forms, 683–684hiding, 694list boxes, 697–698, 703–704menus, 697–698, 699–700, 703–704requiring values, 712–714text fields, 690–694validation, 714

user output, 690–694validations, immediate processing,

681–682validators, 712–714

JavaServer Faces, standard UI components, 761

J2EETutorial.book Page 1450 Thursday, June 3, 2004 10:26 AM

Page 47: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1451

UIColumn component, 684, 686UICommand component, 684–685, 711UIComponent component, 746UIData component, 684, 686, 688–689,

733UIData components, 732UIForm component, 683UIGraphic component, 690UIInput component, 690–691, 711, 713,

719, 723, 731, 733, 747, 751UIMessage component, 698UIMessages component, 698UIOutput component, 679, 683, 690–691UIPanel component, 694UISelectBoolean component, 734UISelectItem component, 735–736UISelectItems component, 700, 735,

737UISelectMany component, 679, 700,

734, 736–737UISelectOne component, 679, 700,

736–737UISelectOne properties, 735UIViewRoot component, 765

JavaServer Faces application development roles

application architects, 635, 721, 744, 750, 772, 791

application developers, 634, 647, 729, 732component writers, 635page authors, 634, 647, 671, 710–711,

723–724, 729, 744, 750tools vendors, 635

JavaServer Faces core tag library, 654, 676action attribute, 685actionListener tag, 678, 710–712, 763attribute tag, 678convertDateTime tag, 678, 707convertDateTime tag attributes, 708converter tag, 678, 706–707, 723–724converterId attribute, 706–707, 724convertNumber tag, 678, 707, 709convertNumber tag attributes, 709facet, 688

facet tag, 678, 680, 688, 696id attribute, 725jsf_core TLD, 676, 680loadBundle tag, 679–680, 704maximum attribute, 714minimum attribute, 714param tag, 679–680, 693, 717parseLocale attribute, 708selectItem tag, 650, 680, 698, 700-703selectitem tag, 679, 700selectItems tag, 650, 680, 698, 700-703selectitems tag, 679, 700subview tag, 677, 679–680type attribute, 711–712validateDoubleRange tag, 679, 712validateLength tag, 679, 712validateLongRange tag, 640, 679, 712,

714validator tag, 654, 679, 723, 725, 750,

753validator tags. See validator tags.valueChangeListener tag, 678,

710–711verbatim tag, 679–680, 693view tag, 676–677, 679–680

JavaServer Faces tag libraries, 634JavaServer Faces core tag library, 678-680JavaServer Faces standard HTML render

kit tag library. See JavaServer Faces, standard HTML render kit library.

taglib directives, 676, 724JavaServer Faces technology, 631

advantages of, 633backing beans. See backing beans.component rendering model. See compo-

nent rendering model.configuring applications. See configuring

JavaServer Faces applications.conversion model. See conversion model.event and listener model. See event and

listener model.FacesContext class, 663, 665–667, 669,

727, 743, 745–746, 751, 753, 758, 765, 767, 781

J2EETutorial.book Page 1451 Thursday, June 3, 2004 10:26 AM

Page 48: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1452 INDEX

JavaServer Faces technology (Continued)FacesServlet class, 637, 663–664,

812–814jsf-api.jar file, 816jsf-impl.jar file, 816life cycle. See life cycle, JavaServer Faces

pages.navigation model. See navigation model.roles. See JavaServer Faces application

development roles.tag libraries. See JavaServer Faces tag

libraries.UI component behavioral interfaces. See

UI component behavioral inter-faces.

UI component classes. See UI component classes.

UI component tags. See UI component tags.

UI components. See JavaServer Faces, standard UI components.

validation model. See validation model.JavaServer Pages (JSP). See JSP.JavaServer Pages Standard Tag Library. See

JSTL.JavaServer Pages Standard Tag Library

(JSTL). See JSTL.JavaServer Pages technology, 471. See also

JSP pages.JavaServer Pages (JSP) technology, 18. See

also JSP pages.javax.activation.DataHandler class,

359–360javax.naming.InitialContext objects,

22javax.servlet package, 435javax.servlet.http package, 435javax.servlet.jsp.tagext, 598javax.servlet.jsp.tagext package,

623–624javax.xml.registry package, 392javax.xml.registry.infomodel

package, 392javax.xml.registry.lifeCycleMan-

agerURL connection property, 397

javax.xml.registry.postalAddressS-cheme connection property, 397, 415

javax.xml.registry.queryManagerURL connection property, 397

javax.xml.registry.secu-rity.authenticationMethod connection property, 397

javax.xml.registry.semanticEquiva-lences connection property, 397, 415

javax.xml.registry.uddi.maxRows connection property, 397

javax.xml.soap package, 339javax.xml.transform.Source interface,

356JAXM specification, 340JAXP (Java API for XML Processing), 19

definition, 1379libraries, 106, 113overview, 19transformation packages, 246–247

JAXP 1.2, 176JAXR (Java API for XML Registries), 20,

389adding

classifications, 406service bindings, 407services, 407

architecture, 391–393capability levels, 390client examples

classification schemes, 421–423compiling, 420deleting concepts, 424–425overview, 417–418postal addresses, 422–423pre-compile requirements, 418–420publishing, 421–424registry objects, listing, 424–425running, 420–425

clients, 391, 393clients, definition, 391, 1381

J2EETutorial.book Page 1452 Thursday, June 3, 2004 10:26 AM

Page 49: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1453

clients, implementingclassifications (taxonomies), 401–403,

406, 412–416connections, 393–403organizations, 400–408registries, 394–395, 399–400, 404–411service bindings, 403, 407–410

clients, in J2EE applicationsapplication client, 426–427, 430,

432–433application server, starting, 429certificates, importing, 428–429JAXR resources, creating, 429–430JNDI names, checking, 432–433MyAppClient.java class, 426–427overview, 425–426packaging the session bean, 431PubQuery session bean, coding, 427source files, compiling, 427–428

creating connections, 395defining taxonomies, 412definition, 390, 1379establishing security credentials, 404finding classification schemes, 406information model, 390interfaces, 392J2EE application example, 425organizations

creating, 404publishing, 408removing, 411

overview, 20, 389–393packages, 392provider, 391, 1381provider, definition, 391publishing

specification concepts, 408WSDL documents, 408

querying a registry, 399resource adapter, JNDI subcontexts for,

1076resources, creating, 429–430specification, 390specifying postal addresses, 414submitting data to a registry, 404

JAX-RPC (Java API for XML-based RPC), 19. See also examples, authentica-tion.

arrays, 325clients, 326

application, 333–336creating, 314–324DII (dynamic invocation interface),

329–333dynamic proxy, 326–329generating stubs, 323unknown until runtime, 329–333WSDL configuration files, 323

clients, invoking stubs, 321compile-service task, 317creating the WSDL, 317–318defined, 313definition, 1379deploying, 320–321example

advertising the service, 1259–1263building, 1292–1294deploying, 1292–1294discovering, 1282packaging, 1292–1294registry, deleting from, 1263–1265registry, publishing to, 1259–1263running, 1292–1294service implementation, 1258–1259service interface, 1257

generate-wsdl task, 317–318J2SE SDK classes, 324Java types supported, 324–326JavaBeans components, 325–326mapping files, 317overview, 19–20packaging, 318–320primitives, 325SEI (service element endpoint), 315,

316–318service endpoint interface, interface con-

figuration files, 318service endpoint interfaces, 315

conformance rules, 316setting the port, 314

J2EETutorial.book Page 1453 Thursday, June 3, 2004 10:26 AM

Page 50: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1454 INDEX

JAX-RPC (Continued)SOAP interoperability, 337specification, 337specifying the endpoint address, 320static stub client, 321–324supported types, 324value types, 325Web services, 314–324, 337WSDL files, 317, 323WS-I (Web services interoperability), 337

JDBC, 21, 100, 1077accessing databases from Web applica-

tions, 100–101data sources, 1329definition, 1381overview, 21resource connections, 1077resource manager, 1076resources, 1077. See data sources.transactions, 1058–1061, 1069. See trans-

actions,JDBC.JDOM, 117, 178, 1345–1346JEditorPane class, 190JEditPane class, 193JMS (Java Message Service) API, 18

achieving reliability and performance, 1191

administered objectscreating, 1007–1008, 1178–1180in J2EE applications, 1213for multiple systems, 1188–1189programming model, 1158, 1163removing, 1009synchronous message receives,

1178–1180applications, 1381architecture, 1158–1161asynchronous message consumption

compiling, 1185JMS provider, starting, 1185message listener, 1184–1185overview, 1183packaging, 1185–1186receiving program, 1184

running, 1186–1187sending program, 1183–1184writing the programs, 1183–1185

asynchronous messages, 1155, 1161basic concepts, 1157client applications, 1173

asynchronous message consumption, 1183–1187

connection factory, deleting, 1191JMS administered objects, for multiple

systems, 1188–1189overview, 1173running, 1187–1191server, stopping, 1191synchronous message receives,

1174–1183client applications, robustness

durable subscriptions, 1200–1204local transactions, 1204–1211message acknowledgment, 1193–1197message expiration, 1198–1199message persistence, 1197message priority levels, 1198overview, 1191–1192reliability mechanisms, advanced,

1200–1211reliability mechanisms, basic,

1193–1199clients, definition, 1158, 1381common programming interfaces,

1160–1161definition, 1154–1155, 1379durable subscriptions, 1160introduction, 1154in J2EE applications

application clients, 1219JMS administered objects, 1213message-driven beans, 1214–1216messages, 1212–1213resource management, 1213transactions, 1213, 1216–1219Web components, 1219

in J2EE applications, examplesconsuming messages, 1239–1245

J2EETutorial.book Page 1454 Thursday, June 3, 2004 10:26 AM

Page 51: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1455

deploying a message-driven bean, 1245–1254

messages from entity beans, 1231–1239

messages from session beans, 1222–1230

J2EE examples, 1003, 1221–1222, 1231, 1239, 1246

J2EE platform, 1156, 1212and the J2EE platform, 1156–1157message consumption, 1161message listener, 7. See also message-

driven beans.messages, definition, 1158messaging, definition, 1154messaging domains, 1159–1161overview, 18, 1154–1157point-to-point messaging domain,

1159–1160programming model, 1162

administered objects, 1158, 1163, 1381connection factories, 1163–1164connections, 1165exception handling, 1172–1173message bodies, 1171–1172message consumers, 1167–1168message headers, 1170message listeners, 1168–1169message producers, 1166–1167message properties, 1171message selectors, 1168–1169messages, 1169–1170overview, 1162sessions, 1165–1166

providersasynchronous message consumption,

1185connections, 1165definition, 1158, 1381starting, 1177synchronous message receives, 1177

publishing/subscribe messaging domain, 1160

reliability, 1155

resource manager, 1076sessions, 1381synchronous message receives

compiling, 1177in J2EE applications, 1212–1213JMS administered objects, creating,

1178–1180JMS providers, starting, 1177overview, 1174packaging, 1181receiving program, 1176–1177running, 1182–1183sending program, 1174–1176synchronous messaging, 1174writing the programs, 1174–1177

synchronous messages, 1161uses for, 1155–1156

JMSCorrelationID message header field, 1170

JMSDeliveryMode message header field, 1170

JMSDestination message header field, 1170

JMSException class, 1172JMSExpiration message header field, 1170JMSMessageID message header field, 1170JMSPriority message header field, 1170JMSRedelivered message header field,

1170JMSReplyTo message header field, 1170,

1250JMSTimestamp message header field, 1170JMSType message header field, 1170JNDI (Java Naming and Directory Inter-

face), 21, 859, 1075–1076connection factory subcontexts, 1076data source naming subcontexts, 22definition, 1379deploytool, 867, 973enterprise bean naming subcontexts, 22environment naming contexts, 22looking up JMS administered objects,

1163lookup method, 859, 1075–1076

J2EETutorial.book Page 1455 Thursday, June 3, 2004 10:26 AM

Page 52: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1456 INDEX

JNDI (Continued)lookup services, 8names

checking, 432–433reviewing, 973–974, 1335–1338specifying, 1013–1014

names, Duke’s Bank, 1335, 1338namespace collisions, avoiding, 1076naming and directory services, 22naming context, 859, 1076naming contexts, 21naming conventions, 1076naming environments, 21naming subcontexts, 22, 1164, 1213overview, 8, 21–22, 1075–1076subcontexts, 1076tutorial, 22

JNDI Tutorial, 22join function, 561–562JPanel class, 190JPDA (Java Platform Debugger Architec-

ture), 29. See also debugging.JScrollPane class, 192jsf_core tags, 678–680JSP (JavaServer Pages). See also servlets.

actions, definition, 1381containers, 10, 1382custom actions, definition, 1382custom tags. See also JSP, tag handlers.

bodies, 572communication between, 573defining variables, 572–573definition, 564, 1382encapsulating reusable content. See

JSP, tag files.examples, 564–568jsp:body element, 572simple tags, 568tags with no body, 569TLD (tag library descriptor), 589–598

custom tags, attributesdefining in XML element body,

571–572dynamic, 570–571, 588–589

fragment, 569–570, 584–588jsp:attribute element, 571–572simple, 569, 585–586, 586–588

database access, 21declarations, definition, 1382definition, 1380developer roles, 15directives, definition, 1382documents. See also JSP pages; XML

documents.definition, 1382example, 516–521identifying to the container, 535overview, 515–516

documents, in XML syntaxCDATA sections, 528declarations, 530declaring tag libraries, 523–525DTD (document type definition),

531–532, 533–535dynamic content, 527–530expressions, 530including directives, 525–527root element, 530–531scripting elements, 520–530scriptlets, 530standard syntax vs. XML, 521–523static content, 527–530well formedness, 521, 528XML declaration, 531–533

elements, 1382expression language, definition, 1382expressions, definition, 1382fragments, 569–570JDBC, 21JSTL, 24modules, 13overview, 3, 6, 18packaging, 13scripting elements, 1383scriptlets, 1383standard actions, 1383tag files. See also JSP, custom tags.

custom tags, 563

J2EETutorial.book Page 1456 Thursday, June 3, 2004 10:26 AM

Page 53: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1457

declaring, 591–593definition, 1383fragments, 584–585location, 576overview, 573–576packaged, 593unpackaged, 591–593

tag files, directive attributesattribute, 579, 580body-content, 579list of, 577–578tag attributes, declaring, 579

tag files, directivestag variables, declaring, 579, 586–588tags, declaring, 576uses for, 576variable, 580–581variable synchronization, 580–584

tag handlers. See also JSP, custom tags.classic, 563custom tags, 563declaring, 594–595declaring attributes for, 595–596declaring variables for, 596–598definition, 1383invoking, 599simple, 563

tag handlers, programmingattribute validation, 600–602for basic tags, 599cooperating tags, 606–608dynamic attributes, 601–602examples, 608–616iteration tags, 608–610overview, 598scope of objects, 605TagExtraInfo class, 604–606for tags that define variables, 603–606for tags with attributes, 600–602for tags with bodies, 602–603template tag library, 610–613in Web applications, 599

tag libraries. See also JSTL.custom tags, 563

declaring, JSP documents, 523–525declaring, JSP pages, 503–505definition, 502–503, 1383including, 505–506

tags, scriptingwith bodies, 626–627body content, 623classic tags, 623cooperating, 627–629defining variables, 629–630doAfterBody method, 627doInitBody method, 626object sharing, 627–629release method, 627TDL elements, 623

tags, standard set, 24user interface. See JavaServer Faces.in XML syntax. See JSP, documents.

JSP declarations, 620JSP documents, 515

alternative syntax for EL operators, 529creating dynamic content, 528creating static content, 527

preserving whitespace, 527declaring namespaces, 524declaring tag libraries, 523, 525generating a DTD, 533, 535generating tags, 529generating XML declarations, 532–533identifying to the Web container, 535including directives, 525including JSP pages in standard syntax,

527scoping namespaces, 525scripting elements, 529validating, 531

JSP expression language, 489deactivating expression evaluation, 490expression examples, 494expression syntax, 489functions, 496

defining, 496–497using, 496

implicit objects, 492–493

J2EETutorial.book Page 1457 Thursday, June 3, 2004 10:26 AM

Page 54: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1458 INDEX

JSP expression language (Continued)literals, 493operators, 493reserved words, 494type conversion during expression evalua-

tion, 491JSP expressions, 622JSP fragments, 569JSP pages, 471. See also JSP, documents.

adding security to, 1097applets, including, 508–510application-specific objects, 488buffering, 485compilation, 483–484compilation errors, 484compilation into servlets, 483compiling, 865controlling translation and execution, 483converting to JSP documents, 522–523creating and using objects, 488creating dynamic content, 487creating static content, 486deactivating EL expression, 511declarations. See JSP declarations.default mode for EL expression evalua-

tion, 511defining preludes and codas, 512definition, 1382disabling scripting, 620Duke’s Bank, 1318dynamic content, 487–489error handling, 485–486error pages

forwarding to, 485precedence over Web application error

page, 486specifying, 485

examples, 84, 472–482, 537–538, 564, 863

execution, 484expression language

arithmetic operators, 494conditional operators, 494deactivation, 490, 511–512

examples, 494–495functions, 496–497implicit objects, 492–493literals, 493logical operators, 494null values, determining, 494operators, 493–494overview, 489–490relational operators, 494reserved words, 494using expressions, 490–491variables, 491–492

expressions. See JSP expressions.finalizing, 621form-based authentication example,

1105–1114forwarding to other Web components, 507implicit includes, 512–513implicit objects, 488importing classes and packages, 619importing tag libraries, 503including applets or JavaBeans compo-

nents, 508including JSP documents, 527initial response encoding, 826initializing, 620JavaBeans components

creating, 499custom tags, 502–506design conventions, 497–498properties, getting, 502properties, setting, 500–502retrieving properties, 502setting properties, 500–501tag libraries, declaring, 503–505tag libraries, definition, 502–503tag libraries, including, 505–506using, 499

JavaServer Faces. See JavaServer Faces, JSP pages.

life cycle, 482–486page directives, 484, 486

objects, 488–489overview, 471–472

J2EETutorial.book Page 1458 Thursday, June 3, 2004 10:26 AM

Page 55: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1459

page encoding, 487, 512, 825preludes and codas, 507properties

getting, 502setting, groups of pages, 510–513setting, individual pages, 500–502

response encoding, 487reusing content, 506–507reusing other Web resources, 506scripting, 620–621scripting elements. See JSP scripting ele-

ments.scriptlets. See JSP scriptlets.setting buffer size, 485setting page encoding, 487setting page encoding for group of, 512setting properties for groups of, 510setting response encoding, 487setting the request encoding, 825shared objects, 488–489specifying scripting language, 619standard syntax, 472static content, 486–487transferring control, 507–508transitioning to JSP documents, 515translation, 483–484

enforcing constraints for custom tag attributes, 600

translation errors, 484translation of page components, 483URLs for running, 869user interface. See JavaServer Faces.using custom tags, 503XML syntax, 472

JSP property groups, 511JSP scripting elements, 617

creating and using objects in, 617example, 618

JSP scriptlets, 621jsp:attribute element, 571–572jsp:body element, 572JspContext interface, 598, 624jsp:declaration element, 530jspDestroy method, 621jsp:directive.include element, 526

jsp:directive.page element, 525jsp:doBody element, 584jsp:element element, 529jsp:expression element, 530jsp:fallback element, 509jsp:forward element, 507jsp:getProperty element, 502jsp:include element, 507jspInit method, 620jsp:invoke element, 584JSplitPane class, 190, 193jsp:output element, 531–532jsp:param element, 508–509jsp:plugin element, 508jsp:root element, 530–531jsp:scriptlet element, 530jsp:setProperty element, 500jsp:text element, 527–528JSSE (Java Secure Socket Extension), 1379JSTL (JavaServer Pages Standard Tag

Library), 24, 537. See also JSP, tag libraries.

core library, 541–549core tags, 543catch tag, 549choose tag, 546conditional, 545flow control, 545forEach tag, 547if tag, 545import tag, 548otherwise tag, 546out tag, 549param tag, 548redirect tag, 549remove tag, 544set tag, 543url tag, 548variable support, 543when tag, 546

definition, 1380example, 538–541functions, 561length function, 561

functions library, 541–542, 561–562

J2EETutorial.book Page 1459 Thursday, June 3, 2004 10:26 AM

Page 56: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1460 INDEX

JSTL (Continued)internationalization library, 541–542,

554–556internationalization tags, 554bundle tag, 555formatDate tag, 556formatNumber tag, 556localization context, 554message tag, 555outputting localized strings, 555param tag, 555parseDate tag, 556parseNumber tag, 556parsing and formatting, 556requestEncoding tag, 555setBundle tag, 555setLocale tag, 555

overview, 24, 537, 541–542SQL library, 541–542, 556–560SQL tags, 556query tag, 557setDataSource tag, 556update tag, 557

XML library, 541–542, 550–554XML tags, 550

core, 551flow control, 552forEach tag, 552out tag, 551param tag, 554parse tag, 551set tag, 551transform tag, 553transformation, 553

JSTL tags. See also JSP, custom tags; script-ing, tags; XML tags.

bundle, 554–555catch, 544, 549choose, 544, 546, 550collaboration, 542–543core XML, 551–552date, 556dateParam, 557–558error handling, 549

escapeXML function, 561–562explicit collaboration, 542–543expression evaluation, 549flow control, 545–547, 552–553forEach, 544, 547, 550, 552–553formatDate, 554, 556formatNumber, 554, 556formatting, 556forTokens, 544, 547functions library, 561–562if, 544, 545, 550implicit collaboration, 542–543import tag, 544, 548indexOf function, 561–562internationalization library, 554–556iterators, 557join function, 561–562message tag, 554–555messaging, 555number formats, 556otherwise, 544, 546, 550out, 544, 550, 551–552parse, 550, 551–552parseDate, 554, 556parseNumber, 554, 556query tag, 557–558redirect tag, 544, 548remove, 544replace function, 561–562requestEncoding, 554Result interface, 559–560set, 543–544, 550, 551–552setBundle, 554–555setDataSource, 556–558setLocale, 554–555setTimeZone, 554setting the locale, 555split function, 561–562SQL library, 556–560substring function, 561–562substringAfter function, 561–562substringBefore function, 561–562time, 556timeZone, 554, 556

J2EETutorial.book Page 1460 Thursday, June 3, 2004 10:26 AM

Page 57: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1461

toLowerCase function, 561–562toUpperCase function, 561–562transaction, 557–558transform tag, 550, 553–554transformation, 553–554transformation tag, 554trim function, 561–562update tag, 557–558URL, 548–549url, 544url tag, 544, 548variable support, 543–544when, 544, 546XML library, 550–554

JTA (Java Transaction API), 18. See also transactions,JTA.

definition, 1379overview, 18transactions, 1063–1064, 1069

JTree, displaying content, 223JTree, displaying DOMAdapterNode class, 195–200adapting TreeModel to JTree, 195–204adding import statements, 189–190attribute data, 222CDATA, 222child access, 217comments, 222complex tree, 207–211compressing the tree view, 213converting DomEcho to a GUI, 189creating adapters, 195data types, 221–223display components, 192–194displaying the tree, 223document fragments, 222documents, 222element content, defining, 220–223element data, 221entity data, 222entity reference data, 222GUI framework, 190–191lexical controls, 212modifications, 228

notations, 222processing instructions, 222running the application, 225–227simple tree, 205–207text data, 222TreeModel adapter, 200–204wiring the JTree to the JEditorPane,

223–224JTree, nodes

changing, 236child access, 217DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223traversing, 234types, identifying, 219–220visibility, 216

JTree class, 189JTree classJEditorPane class, 223JTreeModel class, 189JTS (Java Transaction Service), 1379JTS API, 1063

KKey pairs, 1116Keystores, 1116

client certificates, creating, 1120–1121commands, 1121contents, checking, 1121definition, 1116, 1383mutual authentication example, 1135server certificates, creating, 1116–1117

keytool, 1116–1121Knowledge representation XML standards,

1351–1352Knowledge standards

RDF, 1351RDF schema, 1352XTM, 1352

J2EETutorial.book Page 1461 Thursday, June 3, 2004 10:26 AM

Page 58: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1462 INDEX

LLabels, in foreign languages. See interna-

tionalization; localization.lang function, 256last function, 254LDAP services, 22&ldquo, left double quote entity, 61le, JSP operator, 494Left double quote entity, &ldquo, 61Legacy information systems. See EIS tier.Less than, equal (<=)

JSP operator, 494XPath operator, 253

Less than, exclamation point (<!...>), in DTDs, 53

Less than, question mark (<?...?>), in XML markup, 34–35

Less than (<)entity for, 49JSP operator, 494SAX processing, 127XPath operator, 253

Less than entity, &lt, 49Less than...greater than (<...>), in XML

markup, 31Lexical controls, 212Lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171SAXcomment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171

Lexical information, echoing, 168–171LexicalHandler, 164–171Libraries

DOM (Document Object Model), 106JAXP (Java API for XML Processing),

106, 113

SAX (Simple API for XML), 106XSLT (Extensible Stylesheet Language

Transformations), 106Life cycle

entity beans, 848–850J2EE component, 1383–1384JavaServer Faces, 1384JavaServer Faces applications, 813–814JavaServer Faces pages, 662-669

apply request values phase, 653-666, 667, 669, 745, 768, 783

Faces request, 663faces request, 663–664Faces response, 663faces response, 663–664invoke application phase, 653, 668, 768non-Faces request, 663non-faces request, 663–664non-Faces response, 663non-faces response, 663–664overview, 662process validations phase, 653, 666-

667, 666–667, 669render response phase, 666–667, 668-

669, 668–669, 746, 752, 772, 780, 785, 788

renderResponse method, 663, 666–667

request processing, 663–665request values phase, 666responseComplete method, 663,

666–668restore view phase, 665-666, 669, 785,

788standard request processing lifecycle,

664update model values phase, 658-668,

667–669updateModels method, 667view phase, 665–666views, 662, 665–666

JSP pages, 482–486message-driven beans, 850–851servlets, 441–444

J2EETutorial.book Page 1462 Thursday, June 3, 2004 10:26 AM

Page 59: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1463

session beans, 848–850stateful session beans, 847–848stateless session beans, 848Web applications, 84–86

Life-cycle management contract, 1359–1360

LIKE expressions, 1036Line breaks, XML to HTML, 280<LINK> element, 280–281Linkability, XML, 38Linking, XML standards, 1350–1351List boxes, 697–698, 703–704<LIST> element, 281, 293List properties, initializing, 799Listener class, 442–443Listener classes, 441

defining, 442examples, 442

listener element, 591Listener interfaces, 442Listeners, registering on components,

710–712list-entries element, 795Lists, initializing, 801–802Lists and list items, XML to HTML, 293Literals, EJB QL, 1032–1033Literals, JSP pages, 493Local access vs. remote, 842–843Local clients, 841–842Local home interface, 946–947Local home interfaces, 946

defined, 842Local interfaces, 842, 947

defined, 842examples, 946–947, 950requirements, 917

Local JMS transactions, 1204–1211Local names, 351–352Local subsets, 1384Local transactions, JMS, 1204Localization. See also internationalization.

component properties, 741–744context, internationalization, 554dynamic data, 741–742

locale, establishing, 821messages, JSP pages, 703–705, 742–744Web applications

character encoding, 824–825character sets, 824date formats, 823Java localization classes, 819–820labels, 820–823locale, establishing, 821messages, 820–823number formats, 823page encoding, 826request encoding, 825–826resource bundle, setting, 822response encoding, 826–827retrieving localized messages, 822–823UTF-8 encoding, 825

local-name function, 257Locator, 136Locator object, 142Log viewer, 29Logical operators, 494Login authentication, 1100–1105. See also

authentication.Login form, creating, 1107–1108LongRangeValidator, 714lookup method, 1075–1076, 1081lt, JSP operator, 494&lt, less than entity, 49

MMail session connections, 1080–1083Mail sessions, 1080

connecting to from J2EE components, 1081

creating, 1082Mainframe transaction processing. See EIS

tier.Managed bean creation facility, 659, 769,

793–802, 1384initializing properties with managed-

property elements, 795-802managed bean declarations. See managed

bean declarations.

J2EETutorial.book Page 1463 Thursday, June 3, 2004 10:26 AM

Page 60: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1464 INDEX

Managed bean declarations, 643–644, 769key-class element, 798list-entries element, 795managed-bean element, 793, 800managed-bean-name element, 644, 794managed-bean-scope element, 794managed-property element, 644, 795-

802map-entries element, 795, 797map-entry element, 797message-bean-name element, 715null-value elements, 795property-name element, 644, 715value element, 795values element, 799

Managed bean properties, initializing, 799–801

managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796Management contracts, 1359–1360Mandatory attribute, 1048Many-to-many relationships, 837, 930–933Many-to-one relationships, 837Map properties, initializing, 797–798map-entries element, 795, 797–798MapMessage interface, 1171Mapping

errors to error screens, 99JavaServer Faces classes to tags, 647–651resource references to data sources, 104roles, 1390servlets, 1393table relationship example

child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922

URLs to Web components, 96–97Maps, initializing, 801–802Markup, XML, 31

Mathematical Markup Language (MathML), 1353

MathML (Mathematical Markup Language), 1353

Menus, 697–698, 699–700, 703–704Message acknowledgment, JMS

bean-managed transactions, 1219introduction, 1193message-driven beans, 1214

Message bodies, JMS, 1171Message consumers, 1167–1168, 1384Message consumption, 1161Message consumption, JMS

asynchronous, 1161, 1183introduction, 1161synchronous, 1161, 1174

Message factories, 743Message headers, JMS, 1170Message IDs, JMSMessageID message

header field, 1170Message interface, 1171Message listeners, JMS, 838, 1168–1169

examples, 1184, 1233, 1248introduction, 1168

Message producers, 1166–1167, 1385Message producers, JMS, 1166Message properties, JMS, 1171Message selectors, 1168–1169Message selectors, JMS

introduction, 1169specifying for message-driven beans,

1228message tag, 554–555, 640Message transport protocols, 10–12MessageConsumer interface, 1167Message-driven bean class, 1005–1007Message-driven beans, 7, 17, 838

See also backing beansSee also enterprise beansSee also entity beansSee also session beansaccessing, 838coding, 1005, 1224, 1234, 1248consuming messages, 1239–1245

J2EETutorial.book Page 1464 Thursday, June 3, 2004 10:26 AM

Page 61: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1465

defined, 838definition, 1384deploying, 1245–1254deployment descriptor elements, 1220description, 838–840examples, 1003, 1222, 1231, 1239, 1246garbage collection, 851introduction, 1214life cycle, 850–851messages from entity beans, 1231–1239messages from session beans, 1222–1230onMessage method, 839, 1005overview, 7, 17requirements, 1005sending messages to. See JMS.transaction types allowed, 1069transactions, 1046, 1049, 1057–1058,

1069uses for, 840vs. entity beans, 838–840vs. session beans, 838–840

Message-driven beans exampleadministered objects, 1007–1009application client, 1004–1005bean characteristics, setting, 1010–1011bean type, specifying, 1010components that send messages,

1011–1014deploying, 1007–1014deploytool

for components that send messages, 1011–1014

JNDI names, specifying, 1013–1014for message-driven beans, 1010–1011resource references, setting, 1012

JNDI names, specifying, 1013–1014message-driven bean class, 1005–1007overview, 1004parsing messages, 1005–1006performing business logic, 1005–1006resource references, setting, 1012running, 1007–1009

MessageDrivenContext interface, 1215MessageFactory class, 347

MessageListener interface, 1168MessageProducer interface, 1166Messages. See also JMS; SAAJ.

acknowledgment, 1193–1197asynchronous processing, 838–840bodies, 1171–1172consuming, 1239–1245creating messages with the MessageFac-

tory class, 743definition, 1158, 1384entity beans, 1231–1239expiration, 1198–1199FacesMessage class, 742in foreign languages. See internationaliza-

tion; localization.getMessage(FacesContext, String,

Object), 753getMessage(FacesContext, String,

Object) method, 743headers, 1170integrity, 1102, 1133localization, 820–823localizing messages, 742-744message factory pattern, 742to message-driven beans. See JMS.MessageFactory class, 743, 752–753MessageFormat pattern, 679, 693outputFormat tag, 693overview, 1169–1170param tag, 693parameter substitution tags. See JavaServer

Faces core tag library; param tag.parsing, 1005–1006performing business logic, 1005–1006persistence, 1197priority levels, 1198producing, 1212–1213properties, 1171queuing messages, 758, 802registering, 802–803session beans, 1222–1230synchronous receiving, 1212–1213using the FacesMessage class to create a

message, 743

J2EETutorial.book Page 1465 Thursday, June 3, 2004 10:26 AM

Page 62: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1466 INDEX

Messages, JMSbody formats, 1171definition, 1158delivery modes, 1197expiration, 1198headers, 1170introduction, 1169persistence, 1197priority levels, 1198properties, 1171

Messages, SAAJaccessing elements, 347adding body content, 348attachments, 342creating, 347getting the content, 354overview, 340

MessagingSee also JMSSee also SAAJSee also SOAPcontracts, 1361definition, 1154domains, 1159–1161standard, 18

Messaging domains, JMS, 1159common interfaces, 1160point-to-point, 1159publish/subscribe, 1160

Messaging tags, 555Method binding, 691MethodBinding class, 775, 784method-binding expressions, 641, 653,

657, 691, 720–721, 749, 808Method permissions, 1143, 1385

specifying, 1143Method-binding backing beans, 657Method-binding expressions, 775, 1385MethodBinding class, 775

Methodscomment, 164create, 1370ignorableWhitespace, 151–152long-running, shutting down, 470

prohibited in transactions, 1057, 1068remove, 1389setCoalescing, 212setExpandingEntityReferences, 212setIgnoringComments, 212setIgnoringElement, 212startCDATA, 165startDTD, 165startEntity, 165

MIMEdata, 64headers, 344

MIME data types, 64–65Minus sign (-)

JSP operator, 494XPath operator, 253

Mixed-content DTD model, 54Mixed-content models, 1385mod, JSP operator, 494mod, XPath operator, 253Mode-based templates, 301Modes

content, 177Text, 206

Modularizing DTDs, 78Modules, 13–14Multimedia data file entities, 64–65Multiplicity, in relationships, 837Multitiered applications, 2–8Mutual authentication, 1123

certificates, creating, 1116–1118, 1120–1121

definition, 1385enabling, 1123–1124example, 1133, 1135–1142overview, 1103–1105SSL support, 1123–1124verifying, 1124

MVC architecture, 477MyAppClient.java class, 426–427MyUddiPing.java, 373–380

J2EETutorial.book Page 1466 Thursday, June 3, 2004 10:26 AM

Page 63: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1467

NNAICS (North American Industry Classifi-

cation System), 400, 1386using to find organizations, 401, 421

name function, 257Name interface, 348Names

fully qualified, 349, 352local, 351–352

Namespace functions, 257Namespace prefixes, 73–74Namespaces, 349, 1347. See also JAXP.

and attributes, 71collisions, avoiding, 1076defining, 72defining a prefix, 73defining in DTD, 72defining prefixes, 73–74definition, 1385functions, 257node, 248overview, 19prefix, 350purpose of, 71referencing, 72–73specification, 71target, 242using, 71validating with multiple, 239XML standard, 1347

namespace-uri function, 257namespace-url function, 257Name-to-object bindings, 1076Naming and directory functionality, 21–22Naming conflicts, 70–71Naming context

definition, 1385JNDI, 1076location of, 22overview, 21–22

Naming conventions, 846–847, 1076Naming environment, 21–22, 1385NamingContainer interface, 646Navigation

backing bean methods, 755–757backing bean methods, referencing,

720–721EJB QL (Enterprise JavaBeans Query

Language), 1016JavaServer Faces model, 654–656JavaServer Faces pages, 640–641path expressions, 1032rules, configuring, 805–808

Navigation model, 640, 654-656action attribute, 639, 657, 668, 685,

719–720, 768, 775action method, 805action methods, 655, 755, 805, 807ActionEvent class, 721example navigation rules, 806logical outcome, 685, 720–721, 755–756,

805, 807navigation case, 655navigation rules, 640, 655, 685, 721,

805–806NavigationHandler class, 655–656,

668, 685, 756referencing methods that perform naviga-

tion, 720, 755writing a backing bean method to perform

navigation processing, 755NDS services, 22ne, JSP operator, 494Nested elements, 54Nesting

DTD elements, 54tags, 33, 46

.NET interoperability, 19Network security requirements, 1093,

1096–1097Network services, 12. See also WSDL.Never attribute, 1049NIS services, 22node function, XPath wildcard, 252Nodes, 177

attribute, 222, 248Attribute, 207CDATA, 211

J2EETutorial.book Page 1467 Thursday, June 3, 2004 10:26 AM

Page 64: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1468 INDEX

Nodes (Continued)changing, 236comment, 222, 248Comment, 206constants, 219content, 235controlling visibility, 216DocType, 208, 222document, 222document fragment, 222element, 230, 248entity, 222entity reference, 211inserting, 237namespace, 248navigating to, 180notation, 222processing instruction, 209, 222, 248removing, 236root, 230, 248SAAJ and, 341searching, 234text, 230, 233, 248traversing, 234types, 196, 248value, 177

Nodes, DOMchanging, 236DocType, 222element nodes, creating, 230–231getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223text, 175traversing, 234types, identifying, 219–220types of, 175, 177–181visibility, 216

Node-set functions, 254Nonconfigurable services, 9. See also

containers.

Non-faces request, 663–664Non-faces response, 663–664Nonfatal errors, 145–146Non-Java-based platforms, 19–20. See also

JAX-RPC.NON_PERSISTENT delivery mode, 1197Nonvalidating parser, 139Nonvalidating parsers, SAX

DTD’s effect on, 149–151error handling, 139–147

Non-XSL tags, 284Normalization, 77–78, 1386normalize-space function, 255Normalizing

data, 77DTDs, 78

Normalizing DOM, 231–233North American Industry Classification Sys-

tem (NAICS), 1386not, JSP operator, 494not clause, 300not function, 256NOTATION keyword, 64Notation nodes, 222notationDecl method, 172Notations, 222, 1386<NOTE> element, 281, 291–292, 294–295NotSupported attribute, 1048NULL comparison expressions, 1036NULL values, 1038–1039Null values, determining, 494Number format tags, 556number function, 256NumberConverter, 709–710NumberConverter converter, 709–710Numbers

conversion, 709–710formatting, 301generating, 301localization formats, 823

Numeric functions, 256

J2EETutorial.book Page 1468 Thursday, June 3, 2004 10:26 AM

Page 65: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1469

OOASIS (Organization for the Advancement

of Structured Information Stan-dards), 74, 1386

OBJECT keyword, 1042Object Management Group (OMG), 1386Object request broker (ORB), 1386Object Transaction Service (OTS), 1386ObjectMessage interface, 1171Objects

binding to data, 686–689getting, 944JSP pages, 488–489Locator, 142Parser, 121references, passing, 891–892scripting, 617sharing in scripts, 627–629

Objects, administered (JMS), 1163OMG (Object Management Group), 1386One-to-many relationships

bean-managed persistence, 922–930container-managed persistence, 987container-managed relationships, 837example, 987primary keys, 987

One-to-one relationshipsbean-managed persistence, 919–922container-managed persistence, 986container-managed relationships, 837example, 986

One-way messaging, 1386Online banking example

account informationchanging, 1305–1306creating, 1317customer access, 1318–1319getting, 1304–1305

account-customer relationship manage-ment, 1304

adding groups and users to the default realm, 1329

application, packaging and deploying, 1334–1335

application client, 1310, 1312–1317class methods, 1313classes, 1311classes and their relationships,

1311–1312compiling, 1330methods, 1316overview, 1310–1311packaging, 1332running, 1338

authentication, 1326building and deploying, 1328compiling, 1330component interaction, 1301creating the data source, 1329custom tags, 1320customer information, creating, 1317database

creating, 1329reading data from, 1315–1317servers, setting up, 1328–1329tables, 1308–1309validating updates, 1315–1317

database tables, 1308deploying, 1334–1335enterprise beans, 1309

compiling, 1330helper classes, 1307method permissions, 1309packaging, 1330–1332protecting, 1309session beans, 1303–1306tables representing business entities,

1308tables that hold the next primary key,

1309entity beans, 1303–1304, 1306groups, adding, 1329helper classes, 1307internationalization, 1327–1328internationalizing clients, 1327JavaBeans components, 1319JDBC data source, 1329JNDI names, 1335, 1338

J2EETutorial.book Page 1469 Thursday, June 3, 2004 10:26 AM

Page 66: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1470 INDEX

Online banking example (Continued)JNDI names, reviewing, 1335–1338JSP pages, 1318overview, 1301packaging, 1334–1335packaging and deploying, 1330populating the database, 1329presentation, 1319–1320security roles, 1309servlet, 1323session beans, 1303, 1306user interface

creating, 1313getting data from, 1315–1317updating, 1313

users, adding, 1329Web client, 1318, 1328

client components, 1320–1323compiling, 1330component interaction, 1325design strategies, 1319–1320overview, 1318–1319packaging, 1333–1334packaging and deploying, 1333–1334protecting resources, 1325–1326request processing, 1323–1325running, 1339

Web resources, protecting, 1326onMessage method

introduction, 1168message-driven beans, 839, 1005, 1214

Operator precedenceEJB QL, 1033XPath, 252

OperatorsJSP pages, 493–494XPath, 252–253

orJSP operator, 494XPath operator, 253

ORB (object request broker), 1386ORDER BY clause, 1027–1030OrderApp. See CMP examples, inventory

and ordering.

Organization for the Advancement of Struc-tured Information Standards (OASIS), 74, 1386

Organization interface, 405Organizations

creating with JAXR, 404finding

by classification, 401, 421by name, 400, 421using WSDL documents, 424

keys, 405, 411primary contacts, 405publishing with JAXR, 408, 420, 422, 424removing with JAXR, 411, 421

Organizations, JAXRcreating, 404–406finding by classification, 401–403finding by name, 400–401publishing, 408service bindings, 407services, adding, 407

OS principal, 1386otherwise tag, 544, 546, 550OTS (Object Transaction Service), 1386out tag, 544, 550, 551–552Outbound contracts, 1360–1361outputFormat tag, 693–694outputLabel tag, 692outputLink tag, 692–693outputText tag, 691–692

Ppackage-appclient tool, 26Packaged tag files, 591–593Packaging

application clients, 861–862applications, 12–14asynchronous message consumption,

1185–1186bean-managed transactions, 1061CMP example, 961–964Coffee Break server, 1295–1296container-managed transactions,

1053–1055

J2EETutorial.book Page 1470 Thursday, June 3, 2004 10:26 AM

Page 67: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1471

enterprise application, 960, 970–971enterprise beans, 857–858, 881form-based authentication example, 1110inventory and ordering example, 993–999J2EE application clients, 432JavaServer Faces technology, 1297–1298JAX-RPC, 318–320, 1292–1294JAX-RPC service, 1292–1294JDBC transactions, 1059JSP (JavaServer Pages), 13JTA transactions, 1065–1066message-driven beans, 1227–1228online banking example, 1330–1335overview, 12–14SAAJ service, 1294–1295session beans, 431, 937, 1226–1227shopping cart example, 881–882synchronous message receives, 1181timer service example, 897–898Web clients, 865, 1333–1334Web modules, 88–89Web services, 318–320, 887–888

Page authors, 634–635page directive, 619Page encoding, 487, 512, 826Page navigation. See navigation model.PageContext interface, 624pageContext object, 492Pages. See JSP.pageScope object, 493PAM (Pluggable Authentication Module)

framework. See JAAS.<PARA> element, 281, 292–293Paragraphs, transforming XML to HTML,

292param object, 492param tagimport tag, 544, 548message tag, 554–555query tag, 557–558redirect tag, 544transform tag, 550transformation tag, 554update tag, 557–558

url tag, 544, 548Parameter entities, 66–68, 155, 1386Parameter entity, 66Parameterized DTDs, parsing in SAX,

162–163paramValues object, 492parse method, 271parse tag, 550, 551–552Parsed

character data, 54entity, 63, 155

Parsed character data (PCDATA), 54Parsed entities, 63, 155, 1387parseDate tag, 554, 556parseNumber tag, 554, 556Parser

implementation, 155modifying to generate SAX events, 269nonvalidating, 139using as a SAXSource, 275validating, 155

error handling, 161Parser object, 121ParserConfigurationException, 144Parsers

definition, 1387SAX

choosing, 155nonvalidating, 139–147, 149–151pull parser, 116validating, 155–161

XSLTcreating, 267–269generating SAX events, 269–275modifying, 269–275as a SAXSource, 275–277

Parsing parameterized DTDs, 162–163Passivation, 847, 1387. See also activation.Passwords, 1127Passwords, protecting, 1097–1098,

1113–1114Path expressions

definition, 1016examples, 1032

J2EETutorial.book Page 1471 Thursday, June 3, 2004 10:26 AM

Page 68: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1472 INDEX

Path expressions (Continued)expression types, 1031navigation, 1032syntax, full, 1030–1032

Pattern, 247PCDATA (parsed character data), 54PCDATA versus CDATA, 54Percent sign (%)

in entity names, 67JSP operator, 494

Period (.)JSP operator, 491–492in XML markup, 43

Persistence, 833–834, 1387. See also BMP; CMP.

bean-managed. See BMP.container-managed. See CMP.entity beans, 833JMS messages, 1197session beans, 831types, 834

Persistent dataand entity beans, 7overriding, 9, 17, 21

PERSISTENT delivery mode, 1197Persistent fields, 835

container-managed persistence, 835–836definition, 1016, 1387deploytool, 978EJB QL, 1016, 1030example, 943examples, 943

Physical schemas, 835Pinging UDDI, 373–380Platform APIs, 16–17. See also APIs.Platform services

See JMSSee resource connectionsSee securitySee transactions

PlayerBean. See CMP examples.Pluggability layer, 105Pluggable Authentication Module (PAM)

framework. See JAAS.

Plus sign (+)DTD qualifier, 53JSP operator, 494XPath operator, 253

POA (Portable Object Adapter), 1387PointBase database, 26, 101, 1078–1080.

See also resource connections.starting, 28stopping, 28

PointBase database serverdefinition, 26overview, 28starting/stopping, 28startserver script, 28stopserver script, 28Windows commands, 28

Point-to-point connection, SAAJ, 353Point-to-point messaging domain,

1159–1160Point-to-point messaging system, 1387Populating databases, 101–102Port numbers, 25Portable deployment descriptors, 12. See

also deployment descriptors.Portable Object Adapter (POA), 1387position function, 254Positional functions, 254Positional functions, XPath, 254Postal addresses

retrieving with JAXR, 416, 422specifying with JAXR, 414, 422

Postal addresses, JAXR classifications, 422–423

Prerequisites, xxxviiPresentation, 1319–1320, 1350–1351Presentation-oriented Web applications, 81Primary key class, 934–935, 982Primary keys, 987. See also ejbFindByPri-

maryKey method.automatically generating, 983bean-managed persistence, 933CMP example, 980–984composite, 933, 980compound, 988–989

J2EETutorial.book Page 1472 Thursday, June 3, 2004 10:26 AM

Page 69: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1473

container-managed persistence, 980defined, 834definition, 1387in the entity bean class, 935–936entity beans, 834example, 987examples, 934, 982generating, 983–984getting, 936methods for setting, 850one-to-many relationships, 987primitive, 987–988primitive types, 987returned by create method, 905returning, 905–906unknown, 987

Primitive primary keys, 987–988Primitives, JAX-RPC, 325Principal name, 1089Principals, 1098, 1387PrintWriter class, 451Priority levels, for messages, 1198JMSPriority message header field, 1170

Privileges, 1387Procedures, executing remotely. See JAX-

RPC; RPCs.Process validations phase, 666–667Processing

command line argument, 119data, 39instruction nodes, 209, 222, 248instructions, 35, 46, 137, 179

Processing instructionsdefinition, 1387displaying in a JTree, 222SAX, 137–139XML, 35–36, 46–47

processingInstruction, 135, 138processingInstruction handler,

137–139Product provider role, 14Programmatic security

definition, 1087, 1387EJB tier, 1145

Web tier, 1098–1100Programming model, JMS, 1162Programs

See application clientsSee applicationsSee scriptingSee servlets

Prohibited methods in transactions, 1057, 1068

Prologs, 34–35, 1388Propagating security identity, 1149–1151Properties

binding to component values, 715–716initializing, 795–796JAXR connections, 396–399JSP pages

getting, 502setting, groups of pages, 510–513setting, individual pages, 500–502

list, initializing, 799managed bean, initializing, 799–801map, initializing, 797–798

Protecting passwords, 1097–1098, 1113–1114

Protecting Web resources, 1094Providers

JAXR, 391JMS, 1158

Proxies, 313, 321HTTP, setting, 398

Public identifiers, 109Public key certificates, 1102, 1133, 1388Public key cryptography, 1116PUBLIC keyword, 62–63Publishing

business information on the Internet, 12. See also ebXML; UDDI.

classification schemes, 421–422organizations, JAXR, 408organizations, WSDL documents, 424WSDL document concepts, 423

Publish/subscribe messaging domain, 1160durable subscriptions, 1200introduction, 1160

J2EETutorial.book Page 1473 Thursday, June 3, 2004 10:26 AM

Page 70: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1474 INDEX

Publish/subscribe messaging system, 1388PubQuery session bean, coding, 427Pull parser, 116

QQName object, 327Query strings, 1388query tag, 557–558Querying entity beans. See EJB QL.Querying XML registries, 399–400Question mark (?), DTD qualifier, 53Queue interface, 1164Queues. See also point-to-point messaging

system.creating, 1164, 1178introduction, 1164looking up, 1004, 1164temporary, 1199, 1233

&quot, quote entity, 49Quote ("), entity for, 49

R.rar file extension, 14RAR (Resource Adapter Archive) files,

1357, 1388RDF (Resource Description Framework)

definition, 1388schema, 1352, 1388XML standard, 1351–1352

&rdquo, right double quote entity, 61Reading XML files

DOM (Document Object Model), 182–188, 258–259

Xalan, 258–259XSLT, 258–259

Realms, 1088–1089, 1388. See also security, policy domains.

recover method, 1194Redelivery of messages, 1193–1194JMSRedelivered message header field,

1170redirect tag, 544, 548Reentrant entity beans, 1389

References. See entities, references.Referencing

DTDs, 56–57entities

binary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66

namespaces, 72–73Referencing backing bean methods, 719-723

for handling action events, 721, 757, 763, 775

for handling value-change events, 657, 722

for performing navigation, 720, 755, 775for performing validation, 722, 758

Refreshing instance variables, 907–908Registered trademark entity, &rtrade, 61RegisteringActionListener, 711–712listeners on components, 710–712messages, 802–803ValueChangeListener, 711

Registering custom converters, 804converter element, 804converter-class element, 804converter-id element, 804

Registering custom renderers, 771, 786, 808renderer element, 809renderer-class element, 809renderer-type element, 809render-kit element, 809render-kit-id element, 809

Registering custom UI components, 772, 810

component element, 810component-class element, 810component-extension element, 810component-type element, 810property element, 810

Registering custom validators, 803validator element, 803validator-class element, 803

J2EETutorial.book Page 1474 Thursday, June 3, 2004 10:26 AM

Page 71: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1475

validator-id element, 803Registering messages, 802default-locale element, 803locale-config element, 803message-bundle element, 803supported-locale element, 803

Registries. See also XML registries.accessing over the Web, 20. See also

JAXR.definition, 389, 1389deleting from, 1263–1265ebXML, 390–391getting access to public UDDI registries,

394Java WSDP Registry Server, 390, 1291private, 390publishing to, 1259–1263querying with JAXR, 399submitting data with JAXR, 404UDDI, 390UDDI registries, 390–391using public and private, 418

Registry objects, 392retrieving with JAXR, 425

Registry providers, 1389Registry technologies, 20RegistryObject interface, 392RegistryService interface, 392, 399RegistryService object, 399Relational operators, 494Relationship fields

CMP example, 943defined, 836definition, 1016, 1389deploytool, 976direction, 837EJB QL, 1016, 1030enterprise beans, 836examples, 943modifying by local clients, 953

Relationshipsbean-managed persistence, 834container-managed. See container-man-

aged relationships.

multiplicities, 837Relationships, entity beans

configuring, 995–996defining, 1002many-to-many, 837, 930–933many-to-one relationships, 837one-to-many

BMP (bean-managed persistence), 922–930

CMP (container-managed persistence), 987

container-managed relationships, 837example, 987primary keys, 987

one-to-oneBMP (bean-managed persistence),

919–922CMP (container-managed persistence),

986container-managed relationships, 837example, 986

self-referential, 985–986unidirectional relationships, 837–838,

987RELAX NG, 1349release method, 627Reliability, JMS

advanced mechanisms, 1200basic mechanisms, 1193durable subscriptions, 1200local transactions, 1204message acknowledgment, 1193message expiration, 1198message persistence, 1197message priority levels, 1198temporary destinations, 1199

Reliability mechanisms, JMSadvanced, 1200–1211basic, 1193–1199

Remote access vs. local, 842–843Remote clients, 840–841Remote connectivity model, 9. See also con-

tainers; JAX-RPC.

J2EETutorial.book Page 1475 Thursday, June 3, 2004 10:26 AM

Page 72: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1476 INDEX

Remote interfacescoding, 855defined, 841definition, 1389description, 879–880entity and session beans, 841examples, 855, 879, 916requirements, 880

Remote Method Invocation (RMI), 1390and messaging, 1154

Remote procedure calls (RPCs), 19, 313. See also JAX-RPC.

remove, transactions, 1049remove method, 1389

bean-managed persistence, 907life cycles, 848, 850

remove tag, 544Render kit, 647, 1389Render response phase, 668–669rendered attribute, 682Renderer, component combinations,

764–765Renderer class, 786–788Renderer type, identifying, 788Renderers, 763–764, 1389Rendering, 682, 786–788Rendering UI components. See component

rendering model.replace function, 561–562Representing a single client, 831–833Representing business objects, 833–838Request encoding, 825–826request object, 492Request processing, 663–665Request URIs, protected, 1094Request values phase, 666Request-and-response model, 11. See also

SOAP.RequestDispatcher interface, 461requestEncoding tag, 554Request.java, 371–373Request/reply mechanismJMSCorrelationID message header

field, 1170

JMSReplyTo message header field, 1170temporary destinations and, 1199

Request-response messaging, 344, 1265–1266, 1389

Requests, 449. See also HTTP requests.appending parameters, 508customizing, 456–458filtering, 454getting information from, 449–450retrieving a locale, 821tracking, 468–469

requestScope object, 493Required attribute, 1047Required files, 845–846Required transaction attribute, 1218RequiresNew attribute, 1047–1048Requiring a value. See required attribute;

UI component tag attributes.Reserved words, JSP pages, 494Reserved words, XML, 36Resource adapter, JAXR, 394

creating resources, 429Resource Adapter Archive (RAR), 1388Resource Adapter Archive (RAR) files, 1357Resource adapter contracts, 1359–1362Resource adapter deployment descriptors,

13–14Resource adapter modules, 13–14, 1390Resource adapter security, configuring,

1148–1149Resource adapters, 20–21, 1357–1359,

1389–1390. See also J2EE Con-nector Architecture.

application contracts, 1359archive files. See RAR files.CCI, 1362connection management contract, 1361importing transactions, 1362JAXR, 429life-cycle management contract, 1359messaging contract, 1361security, 1148security management contract, 1361system contracts, 1359

J2EETutorial.book Page 1476 Thursday, June 3, 2004 10:26 AM

Page 73: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1477

transaction management contract, 1361work management contract, 1359

Resource bundles, 741, 743–744, 820, 822backing options, 820constructing, 820

Resource configuration, 1289–1290Resource connections. See also connections.

ConfirmerBean example, 1082–1083connection pools, 1077data source, definition, 1077database connections, 1078–1080DataSource objects, 1077HTMLReaderBean example, 1085–1086JDBC API, 1077JDBC resources, definition, 1077JNDI naming, 1075–1076mail session connections, 1080–1083overview, 1075URL connections, 1083–1086

Resource Description Framework (RDF). See RDF.

Resource manager connection factory, 1390Resource manager connections, 1390Resource managers, 1390Resource references

declaring, 99–100mapping to data sources, 104setting, 1012specifying, 103–104specifying in J2EE components, 1079,

1082, 1085specifying in Web applications, 103

ResourceBundles, referencing, 704–705Resources, 1075. See also data sources; mail

sessions; URL connections.JAXR, 429JMS, 1213

Response encoding, 487, 826–827response object, 492Responses, 451. See also HTTP responses.

buffering output, 451creating, 451–453customizing, 456–458filtering, 454

including other resources, 461–462setting headers, 448

Result interface tag, 559–560Reusing content, 506–507. See also JSP, tag

files.Right double quote entity, &rdquo, 61Rivest, Shamir, and Adelman (RSA), 1117RMI (Remote Method Invocation), 1390RMI-IIOP, 1390Role mapping, 1390Roles (development), 14–16, 1390Roles (security). See also security.

authorizing, 1093, 1097creating, 1090, 1097definition, 1088, 1090, 1391versus groups, 1090mapping, 1090–1092, 1098–1100method permissions, declaring, 1143overview, 1088–1089references, declaring, 1098–1100references, linking, 1098–1100

Rollback, 1046, 1050–1051, 1391rollback, 1046, 1057–1058, 1063,

1068–1069rollback method (JMS), 1204Rollbacks. See transactions, rollbacks.Root, 1391

element, 42node, 230, 248

Root element, 530–531Roster example. See CMP examples.RosterApp. See CMP examples.RosterBean. See CMP examples.RosterClient. See CMP examples.round function, 256RPCs (remote procedure calls), 19, 313. See

also JAX-RPC.RSA (Rivest, Shamir, and Adelman), 1117&rtrade, registered trademark entity, 61Running procedures remotely. See JAX-

RPC; RPCs.Runtime deployment descriptors, 12–13. See

also deployment descriptors.

J2EETutorial.book Page 1477 Thursday, June 3, 2004 10:26 AM

Page 74: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1478 INDEX

SSAAJ (SOAP with Attachments API for

Java), 20, 339. See also SOAP.connections, 344–345definition, 1394deploying, 1294–1295examples, 371messages, 340overview, 20, 340SOAPConnection objects, 344–345specification, 339tutorial, 345uses for, 339

SAAJ messageswith attachments, 342–344, 385–387contents, 341and DOM, 344request-response, 344without attachments, 341–342XML document structure, 340–341

SAAJ messages, tutorialaccessing message elements, 347actor attributes, 363–365adding DOM documents, 381–385AttachmentPart object, 358–361attachments, adding, 358–361Attachments.java, 385–387attributes, adding, 361–366code examples, 371–388content, addingAttachmentPart object, 358–360from DOM documents, 357, 381–385headers, 355–356, 380–381message body, 348–353, 357SOAPPart object, 353

content, getting, 354–355content, manipulating, 358creating messages, 346–347DOMExample.java, 381–385DOMSrcExample.java, 381–385header attributes, 362–363HeaderExample.java, 380–381message headers, 380–381message parts, 347

message with attachment, 385–387mustUnderstand attribute, 365–366MyUddiPing.java, 373–380overview, 361–362pinging UDDI, 373–380Request.java, 371–373retrieving fault information, 387–388sending messages, 353–354, 371–373SOAP faultsDetail object, 368fault actors, 368fault codes, 367fault strings, 368overview, 366–368retrieving fault information, 369–371,

387–388SOAPConnection object, 353SOAPFactory class, 349SOAPFault objects

creating, 368–369definition, 367populating, 368–369

SOAPFaultTest.java, 387–388traversing DOM documents, 381–385

saveConcepts method, 408saveOrganizations method, 408Saving timers, 893–894SavingsAccountBean class. See BMP

examples; online banking exam-ple.

SAX (Simple API for XML), 115, 1344. See also DOM.

APIs, 107–109compiling and running programs

documents and data, 135events, identifying, 129–131overview, 128whitespace, compressing, 132–133

compiling and running programs, outputchecking, 129compressing, 132–133inspecting, 134–135

converting data to XML, 116–117definition, 1391

J2EETutorial.book Page 1478 Thursday, June 3, 2004 10:26 AM

Page 75: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1479

documents, locating, 136–137versus DOM, 115echoing entity references, 153–154echoing external entity, 153–154echoing XML files

application skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119overview, 117parser, setting up, 120–121

echoing XML files, event handlingcharacter events, 125–127document events, 123–124element events, 124–125

echoing XML files, outputspacing, 122–123writing, 121–122

empty elements, 153entities

external, echoing, 153–154general, 154parameter, 155parsed, 155summarizing, 154–155unparsed, 155

entity references, echoing, 153–154error handling

DTD warnings, 163error types, 139–140exception classes for, 109fatal errors, 140IOException, 144–145nonfatal errors, 145–146ParserConfigurationException,

144SAXException, 141–143SAXParseException, 140–141, 143warnings, 146–147

event handlersCDATA sections, 147–149. See also lex-

ical events.document locator, 136–137DTDs, 171–172entity resolution, 172–173

error handlers, 139–147, 161processing instructions, 137–139special characters, 147–149

event handlers, lexical events. See also CDATA sections.

comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171startCDATA method, 165startDTD method, 165startEntity method, 165

events, 269extensions, 109external entities, echoing, 153–154general entities, 154helper classes, 109ignorableWhitespace method,

151–152interfaces, 109lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171startCDATA method, 165startDTD method, 165startEntity method, 165

library, 106output

checking, 129compressing, 132–133inspecting, 134–135spacing, 122–123writing, 121–122

overview, 19packages, 109parameter entities, 155parsed entities, 155parser, choosing, 155parser, nonvalidating

DTD’s effect on, 149–151error handling, 139–147

J2EETutorial.book Page 1479 Thursday, June 3, 2004 10:26 AM

Page 76: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1480 INDEX

SAX (Continued)parser, validating

documents, associating with schemas, 158–159

error handling, 161error handling, setting up, 158factory, configuring, 155–156overview, 155parser properties, setting, 157validation errors, 159–161XML schema, validating, 156–157

parsing parameterized DTDs, 162–163processing instructions, 137–139processingInstruction, 135processingInstruction handler,

137–139pull parser, 116setDocumentLocator, 135, 136–137state dependent processing, 115, 116state independent processing, 115, 116summarizing entities, 154–155transforming data, 247unparsed entities, 155uses for, 106, 116–117whitespace

compressing, 132–133ignorable, 151–152tracking, 151–152

XML, treating as text, 148–149. See also CDATA sections; lexical events.

XML standard, 1344–1345SAX parser, XML Schema properties, 157SAXException, 141–143SAXParseException, 140–141, 143

generating, 142SAXParser API, 107SAXParser class, 121SAXParserFactory API, 107SAXReader API, 107Scalable Vector Graphics (SVG), 1353Schema for Object-oriented XML (SOX),

1349Schemas. See also capture-schema tool.

associating a document with, 158, 238capturing, 992

declaringin the application, 241in XML data set, 241

default, 242definition, 1391definitions, 242

specifying, 239RDF Schema, 1352RELAX NG, 1349Schematron, 1350SOX, 1349SOX (Schema for Object-oriented XML),

1349standards, 1348using existing, 74XML, 1349XML Schema, 1349

Schematron, 1350Scope, transactions, 1046–1047, 1050Scope objects, 444–445Scope of objects, 605Scripting

creating and using objects, 617declarations, 620–621disabling, 620elements, 520–530examples, 618–619expressions, 622–623finalizing JSP pages, 620–621initializing JSP pages, 620–621languages supported, 619scriptlets, 621–622tag handlers, 623–625tags

with bodies, 626–627body content, 623classic tags, 623cooperating, 627–629defining variables, 629–630doAfterBody method, 627doInitBody method, 626object sharing, 627–629release method, 627TDL elements, 623

using, 619

J2EETutorial.book Page 1480 Thursday, June 3, 2004 10:26 AM

Page 77: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1481

variables, declaring, 620–621Scriptlets, 530, 621–622<SECT> element, 281Secure connection, specifying, 1097–1098Secure connections, 1114Secure Socket Layer (SSL). See SSL.Security

See also authenticationSee also containersSee also JAASSee also online banking exampleapplication client tier, 1145

callback handlers, 1146login modules, 1146

application client-tier security, 1145–1146

attributes, 1391certificate realm, 1088–1089component-managed sign-on, 1148constraints, 1094

configuring, 1093, 1095definition, 1094, 1391

container trust relationships, 1151container-managed sign-on, 1147context, 1392credentials for XML registries, 404declarative, 1087deployment descriptors

creating, 1092–1100example, 1131viewing, 1092, 1112

digital certificatesfor Application Server, 1115,

1119–1120client-side, creating, 1120–1121keytool, 1116, 1121mutual authentication, 1120–1121overview, 1115–1116principal name, 1089server-side, creating, 1116–1118signing, 1118–1119

EIS tier, 1147component-managed sign-on, 1148container-managed sign-on, 1147

sign-on, 1147EIS-tier, 1147–1149EJB tier, method permissions. See method

permissions.EJB-tier, 1142–1145elements, setting, 1092–1100examples

basic authentication, 1126–1133client-certificate authentication,

1133–1142form-based authentication, 1105–1114mutual authentication, 1133–1142

file realm, 1088–1089form-based authentication

configuring, 1097–1098example, 1105–1114overview, 1101–1102protecting passwords, 1113–1114

groups, 1088overview, 1088–1089roles, mapping, 1090–1092

identities, 1149–1151. See also roles, mapping.

client authentication, configuring, 1151configuring, 1150–1151propagating, 1149–1151trust between containers, 1151

intranet security, 1143–1145IOR security, configuring, 1143–1145J2EE versus operating system, 1088JACC, 1151JSP pages, adding security to, 1097keystores, 1116–1117, 1135login authentication

example, 1105–1114overview, 1100–1105

method permissions, declaring, 1143mutual authentication

certificates, creating, 1116–1118, 1120–1121

enabling, 1123–1124example, 1133–1142overview, 1103–1105verifying, 1124

J2EETutorial.book Page 1481 Thursday, June 3, 2004 10:26 AM

Page 78: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1482 INDEX

Security (Continued)network security requirements, 1093,

1096–1097overview, 8, 1087–1092passwords, protecting, 1097–1098,

1113–1114permission sets, 1392permissions, 1392policy domains, 1392programmatic, 1087, 1098, 1145programmatic security

EJB tier, 1145Web tier, 1098–1100

propagating security identity, 1149–1151protecting enterprise beans, 1309protecting passwords, 1097–1098,

1113–1114protecting Web client resources,

1325–1326protecting Web resources, 1094realms, 1088–1089request URIs, protected, 1094resource adapter security, 1148resource adapters, 1148roles, 1088

authorizing, 1093, 1097creating, 1090, 1097definition, 1088, 1090, 1391versus groups, 1090mapping, 1090–1092, 1098–1100method permissions, declaring, 1143overview, 1088–1089references, declaring, 1098–1100references, linking, 1098–1100

secure connection, specifying, 1097–1098servlets, adding security to, 1097session management, 1098SSL connector, 1122–1124SSL support

and basic authentication, 1113–1114components of, 1115confidentiality, 1114definition, 1114–1115digital certificates, 1115–1122

and form-based authentication, 1113–1114

integrity, 1114mutual authentication, enabling,

1123–1124mutual authentication, verifying, 1124overview, 1114–1115passwords, protecting, 1097–1098,

1113–1114protecting passwords, 1113–1114running, 1122–1123secure connection, specifying,

1097–1098session management, 1098SSL connector, 1122–1124verifying, 1122

technology domains, 1392transport-level security, 1125–1126trust-stores, 1117, 1135unauthenticated access, 1145unrestricted access, allowing, 1094URIs, protected, 1094users, 1088

adding to Application Server, 1089determining name, 1098determining role, 1098J2EE versus operating system, 1088managing, 1089overview, 1088–1089roles, mapping, 1090–1092

verifyingmutual authentication, 1124SSL support, 1122

views, 1392Web resource collections

defining, 1093, 1096editing content, 1096

Web services, 1133–1142Web services security

basic authentication, 1126–1133mutual authentication, 1133–1142overview, 1125–1126

Web tier, programmatic, 1098Web-tier, 1092–1100

J2EETutorial.book Page 1482 Thursday, June 3, 2004 10:26 AM

Page 79: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1483

X.509 certificatescommon name field, 1089definition, 1102–1103overview, 1089

XMLbasic authentication example,

1126–1133client-certificate authentication exam-

ple, 1133–1142mutual authentication example,

1133–1142overview, 1125–1126

Security constraints, 1094Security identity, 1149

caller identity, 1149propagating to enterprise beans, 1149specific identity, 1149

Security management contract, 1361Security role references, 1098

mapping to security roles, 1099Security roles, 1090

creating, 1090Duke’s Bank, 1309mapping to users and groups, 1091

SEI (service element endpoint), 315, 316–318

SELECT clause, 1040–1043Select methods, 944, 958, 978, 990

EJB QL, 1022, 1041Selection criteria, 250selectItem tag, 703selectItems tag, 701–703selectManyCheckbox tag, 698selectOneMenu tag, 699–700Selector methods. See select methods.Self-referential relationships, 985–986send method, 1166Serializers, generating. See wscompile tool.Server, authentication, 1102Server authentication, 20. See also JAX-

RPC.Server certificates, 1116–1118, 1392. See

also digital certificates.Server log, 25, 28–29

Server principals, 1392Servers

authenticating, 1133certificates, 1115

Servers, components that run on, 3Servers, J2EE

deploying on more than one, 1239, 1246running JMS clients on more than one,

1187Server-side utility classes, 6. See also Web

components.Service bindings

adding to an organization with JAXR, 407finding with JAXR, 403

Service bindings, JAXRconnections, 403organizations, 407specification concepts, 408–410

Service element endpoint (SEI), 315, 316–318

Service elements, 1392Service endpoint interfaces, 1392Service methods, 448Service-oriented Web applications, 81Services

adding, 407adding to an organization with JAXR, 407finding, 403finding with JAXR, 403

Servlet classes, 13, 18. See also servlets.Servlet containers, 1393Servlet containers, distributed, 1393Servlet context, 1393Servlet interface, 435Servlet mapping, 1393ServletContext interface, 463servletContext object, 492ServletInputStream class, 449ServletOutputStream class, 451ServletRequest interface, 449ServletResponse interface, 451Servlets, 435. See also JSP.

accessing Web context, 463–464adding security to, 1097

J2EETutorial.book Page 1483 Thursday, June 3, 2004 10:26 AM

Page 80: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1484 INDEX

Servlets (Continued)binary data

reading, 449writing, 451

character datareading, 449writing, 451

client stateaccessing sessions, 464associating objects with sessions, 465notifying session objects, 465session management, 466session tracking, 466–467

containers, 10database access, 21, 446–447definition, 1393Duke’s Bank, 1323error handling, 443–444examples, 84, 436–441Filter interface, 454–456filter mappings, 458–460FilterChain interface, 454–456FilterConfig interface, 454–456filtering requests and responses, 454filters, 454–456finalizing, 467–470initializing, 447–453life cycle, 441–444listener class, 442–443long-running methods, shutting down,

470overview, 3, 6, 435–436requests

customizing, 456–458filtering, 454getting information from, 449–450tracking, 468–469

responsescreating, 451–453customizing, 456–458filtering, 454including other resources, 461–462

scope objects, 444–445service methods, 448

notifying, 469programming long running, 470

shared resources, concurrent access, 445–446

sharing information, 444–447shutdown, 469tracking service requests, 468transferring control, 462–463

Session beans, 7, 17, 831See also backing beansSee also enterprise beansSee also entity beansSee also message-driven beansSee also transactions, container-managedaccess control, 844–845activation, 847clients, 831compared to entity beans, 833container-managed relationships, 842creating, 937database access, 17, 21databases, 1052defining client access, 840–845definition, 1393description, 831–838Duke’s Bank, 1303, 1306equality, 891examples, 855, 873, 890, 1222finder methods, 841granularity of data, 844–845home interface, 841home methods, 841instance variables, synchronizing,

1052–1053isolation, 844isolation levels, 1071life cycle, 848–850local clients, 841–842local interfaces, 842messages. See JMS.online banking example, 1303–1306overview, 7, 17, 21packaging, 937passivation, 847

J2EETutorial.book Page 1484 Thursday, June 3, 2004 10:26 AM

Page 81: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1485

remote access vs. local, 842–843remote clients, 840–841remote interface, 841requirements, 874stateful, 832stateless, 831, 833transaction types allowed, 1069transactions, 1049, 1051–1052, 1058,

1068–1069, 1073vs. entity beans, 833–834vs. message-driven beans, 838–840Web service clients, 843–844Web service endpoint interface, 844Web services, 844, 885

Session beans, examplesaccessing environment entities, 890–891application exceptions, 901–902comparing enterprise beans, 891enterprise beans

application exceptions, 901–902exception handling, 901–902system exceptions, 901–902

exception handling, 901object references, passing, 891–892shopping cart

building the example, 880business methods, invoking, 877–878business methods, signature, 878enterprise beans, packaging, 881helper classes, 880home interface, 878–879instantiating the beans, 876–877remote interface, 879–880

shopping cart, application clientcreating, 880–881deploying, 883–884enterprise bean reference, specifying,

883packaging, 882running, 884

system exceptions, 901–902timer service

application, creating, 896canceling, 893–894

creating, 893, 895–896enterprise beans, packaging, 897getting information about, 894overview, 892saving, 893–894transactions and, 894

timer service, application clientcompiling, 898deploying, 899–900enterprise bean reference, specifying,

899packaging, 898running, 900–901

Web serviceapplication, creating, 886application, deploying, 888enterprise beans, packaging, 887–888stateless session bean implementation

class, 885Web service client, 888–889Web service endpoint interface,

884–885Session interface, 1165Session management, 1098session object, 492SessionBean interface, 876SessionContext interface, 892Sessions, 464

accessing, 464associating attributes, 465associating objects with, 465associating with user, 466definition, 1393invalidating, 466JMS, 1165–1166managing, 466notifying objects, 465notifying objects associated with, 465tracking, 466–467

Sessions, JMSintroduction, 1165managing in J2EE applications, 1213

sessionScope object, 493set tag, 543–544, 550, 551–552

J2EETutorial.book Page 1485 Thursday, June 3, 2004 10:26 AM

Page 82: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1486 INDEX

setAttribute method, 604setBundle tag, 554–555setCoalescing method, 212setContent method, 356, 359setDataSource tag, 556–558setDocumentLocator, 135, 136–137setDynamicAttribute method, 601setEntityContext method, 848, 926, 928setExpandEntityReferences method,

212setExpandingEntityReferences

method, 212setIgnoringComments method, 212setIgnoringElement method, 212setIgoringElementContentWhitespace

method, 212setLocale tag, 554–555setMessageDrivenContext method, 851,

1215setPostalAddresses method, 416setRollbackOnly method, 1050–1051,

1218setSessionContext method, 847, 892Setters. See access methods.setTimeZone tag, 554Settings, viewing, 972–980SGML (Standard Generalized Markup Lan-

guage), 64, 1393SGML/XML Web page, 40Shared access, enterprise beans, 834Shared objects, JSP pages, 488–489Shared resources, concurrent access,

445–446Sharing information, 444–447Shopping cart example

application, creating, 880–881application client

deploying, 883–884enterprise bean reference, specifying,

883packaging, 882running, 884

building the example, 880business methods, invoking, 877–878

business methods, signature, 878enterprise beans, packaging, 881helper classes, 880home interface, 878–879instantiating the bean, 876–877instantiating the beans, 876–877overview, 873–874remote interface, 879–880session bean class, 874–875SessionBean interface, 876

Shutdown, servlet for, 469Signing digital certificates, 1118–1119Simple API for XML (SAX). See SAX.Simple attributes, 569, 585–586, 586–588Simple custom tags, 568Simple Object Access Protocol (SOAP). See

SOAP.Simple parser, creating, 267Simple tags. See also tag files.

attributesdynamic, 570fragment, 570simple, 569

with bodies, 572examples, 608, 610expression language variables, defining,

572shared objects, 606

example, 607–608named, 606private, 606

specifying body of, 572tag handlers, 598

with attributes, 600with bodies, 602defining scripting variables, 604how invoked, 599supporting dynamic attributes, 601

variables, providing information about, 597, 605–606

SimpleMessageApp. See message-driven beans example.

SimpleTag interface, 598SimpleTagSupport class, 598

J2EETutorial.book Page 1486 Thursday, June 3, 2004 10:26 AM

Page 83: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1487

SingleThreadModel interface, 445Slash (/), JSP operator, 494SMIL (Synchronized Multimedia Integra-

tion Language), 1353SOAP (Simple Object Access Protocol),

313–314, 337, 339. See also SAAJ.

body, 351adding content, 348Content-Type header, 359

definition, 1394envelope, 350headers

adding content, 355Content-Id, 359Content-Location, 359Content-Type, 359example, 380

interoperability, 337and JAX-RPC, 19overview, 11

SOAP faults, 366detail, 368Detail object, 368fault actor, 368fault actors, 368fault code, 367fault codes, 367fault string, 368fault strings, 368overview, 366–368retrieving fault information, 369–371,

387–388retrieving information, 369SAAJ example, 387

SOAP messages, 11. See also SAAJ mes-sages.

SOAP with Attachments API for Java. See SAAJ.

SOAP with Attachments API for Java (SAAJ). See SAAJ.

SOAPBody interface, 341, 351SOAPBodyElement interface, 348, 351, 377SOAPConnection class, 344

getting objects, 353

SOAPConnection object, 353SOAPConnection objects, 344–345SOAPElement interface, 349, 378SOAPEnvelope interface, 341, 348, 350SOAPFactory class, 349SOAPFault interface, 367

creating and populating objects, 368detail element, 368fault actor element, 368fault code element, 367fault string element, 368

SOAPFault objectscreating, 368–369definition, 367populating, 368–369

SOAPFaultTest.java, 387–388SOAPHeader interface, 341, 355SOAPHeaderElement interface, 349, 355SOAPMessage class, 341, 347SOAPPart class, 341, 344, 350

adding content, 356SOAPPart object, 353Sorting output, 301SOX (Schema for Object-oriented XML),

1349Special characters

character references, 50hexadecimal to decimal conversion, 50SAX, 147–149treating as text, 51Unicode values, 50

Specification concepts, 408–410publishing with JAXR, 408, 423removing with JAXR, 424

Specifications, 35split function, 561–562Sports team roster example. See CMP

examples.SQL (Structured Query Language), 17, 21,

835, 903, 905–908, 914, 980, 1019, 1028, 1051, 1058, 1394

SQL library, 541–542, 556–560SQL92, 1015, 1038SQL/J, 1394

J2EETutorial.book Page 1487 Thursday, June 3, 2004 10:26 AM

Page 84: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1488 INDEX

Square brackets ([ ])JSP operators, 491–492XPath pattern matching, 250

SSL (Secure Sockets Layer), 1101–1102, 1114, 1133

definition, 1102, 1391, 1394and JAX-RPC, 19–20verifying support, 1122

SSL connectorconfiguring, 1122–1124mutual authentication, enabling,

1123–1124mutual authentication, verifying, 1124running, 1122–1123tips, 1122–1123verifying SSL support, 1122

SSL supportand basic authentication, 1113–1114components of, 1115confidentiality, 1114definition, 1114–1115digital certificates, 1115–1122and form-based authentication,

1113–1114integrity, 1114mutual authentication, enabling,

1123–1124mutual authentication, verifying, 1124overview, 1114–1115passwords, protecting, 1097–1098,

1113–1114running, 1122–1123secure connection, specifying, 1097–1098session management, 1098SSL connector, 1122–1124verifying, 1122

Standalone, 35Stand-alone modules, 13–14Standard converters, 652Converter implementation classes, 706converter tags, 678, 680, 707NumberConverter class, 706three ways to register on a UI component,

706

using, 705-710Standard Generalized Markup Language

(SGML), 64, 1393Standard validators, 654

using, 712-714validator implementation classes. See val-

idator implementation classes.validator tags. See validator tags.

Standards, XML, 74startCDATA method, 165, 169startDocument method, 119, 123start-domain command, 25–27startDTD method, 165, 169startElement method, 119, 124, 126startEntity method, 165, 169starts-with function, 255State

dependent processing, 115, 116independent processing, 115, 116information, getting, 944management modes, 831–832saving and restoring, 785–786specifying save location, 815

Stateful session beansdefinition, 1394life cycle, 847–848overview, 832returning without committing, 1068

StateHolder interface, 646Stateless session beans

definition, 1394implementation class, 885life cycle, 848overview, 831–832

Static content. See also JSP.JSP documents, 527–530JSP pages, 486–487

Static stub clients, 321–324Static stubs, 321StAX (Streaming API for XML), 1345Storing

backing beans, 659instance variables, 907–908

Streaming API for XML (StAX), 1345

J2EETutorial.book Page 1488 Thursday, June 3, 2004 10:26 AM

Page 85: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1489

StreamMessage interface, 1171string function, 256String functions, 255, 561–562String values of elements, XPath, 253string-length function, 255String-value, 251, 253Structure elements, XML to HTML,

283–286, 291–296Structure tags, XML to HTML, 280Structured Query Language (SQL), 21, 1394Stubs, 321Stubs, generating. See wscompile tool.Stylability, XML, 37style attribute, 683styleClass attribute, 683Stylesheet, 37Stylesheets. See XML.Subcontexts, JNDI, 1076Subscription names, for durable subscribers,

1200Substitution parameters, defining. See mes-

sages; param tag.substring function, 255, 561–562substringAfter function, 561–562substring-after function, 255substringBefore function, 561–562substring-before function, 255Subtree

concatenation, 219writing, 263

sum function, 256Summarizing entities, 154–155Sun Java System Application Server Plat-

form Edition, 823. See also Appli-cation Server.

sun-moduleType.xml, 13Supports attribute, 1048SVG (Scalable Vector Graphics), 1353SXSLTC, 1400Synchronized Multimedia Integration Lan-

guage (SMIL), 1353Synchronous message consumption, 1161

JMS client example, 1174Synchronous message receives

compiling, 1177in J2EE applications, 1212–1213JMS administered objects, creating,

1178–1180JMS providers, starting, 1177overview, 1174packaging, 1181receiving program, 1176–1177running, 1182–1183sending program, 1174–1176synchronous messaging, 1174writing the programs, 1174–1177

Synchronous messages, 1161System administrators, 1394System exceptions, 901–902SYSTEM keyword, 62–63System.out.println method, 28Systems integration, 22–23

TTable schema, capturing, 959–960Tables, data, 694–696Tag, renderer component combinations,

764–765tag element, 594–595Tag files, 563, 573. See also JSP, tag files.attribute directive, 579bodies, evaluating, 584body-content attribute, 579customizing behavior, 579declaring expression language variable,

579declaring tag attributes, 579directives, 576dynamic attributes, example, 588fragment attributes

evaluating, 584example, 586storing evaluation result, 585

location, 576packaged, 593simple attributes, 585

example, 585

J2EETutorial.book Page 1489 Thursday, June 3, 2004 10:26 AM

Page 86: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1490 INDEX

Tag files (Continued)specifying body content type, 579tag directive, 576, 578unpackaged, 591

implicit TLD, 592variable directive, 579variable synchronization with calling

page, 580, 584variables, example, 586

Tag handlers, 563, 623–625, 753–754, 772–776. See also JSP, tag han-dlers.

classic, 563. See also classic tags, tag handlers.

making available to Web applications, 599simple. See simple tags, tag handlers.

Tag interface, 623Tag libraries. See also JSP, tag libraries;

JSTL.accessing implementation from Web

applications, 505referencing TLD directly, 504referencing TLD indirectly, 504referencing via absolute URI, 505

Tag library descriptor (TLD). See TLD.Tag library descriptors, 576, 589attribute element, 595body-content, 579body-content element, 595, 623filenames, 503listener element, 591mapping name to location, 505tag element, 594

subelements, 594tag-file element, 591taglib, subelements, 589taglib element, 589validator element, 590variable, 597

TagData class, 605TagExtraInfo, 600TagExtraInfo class, 604–606tag-file element, 591taglib directive, 503

Tags, 31, 33See also JSP, custom tagsSee also JSTL tagsSee also scripting, tagsSee also XML tagsclosing, 33content, 296custom, 753–755empty, 33JavaServer Faces, list of, 648–651nesting, 33standard set, 24structure, 296

TagSupport class, 623Target namespace, 242Target server, changing, 1112Taxonomies

finding with JAXR, 406ISO, 3166 400NAICS, 400, 421UNSPSC, 400user-defined, 412using to find organizations, 401

Taxonomies (classifications)adding, 406defining, 412–414finding organizations by, 401–403postal addresses, specifying, 414–416

TDL elements, scripting, 623Team roster example. See CMP examples.TeamBean. See CMP examples.tei-class element, 606TellerBean example. See examples, bean-

managed JTA transactions.Template tag library, 610–613Templates, 249, 283. See also JSP.

definition, 1394mode-based, 301named, 298ordering in a stylesheet, 294overview, 18in style sheets, 294transforming XML to HTML, 294XPath, 249

J2EETutorial.book Page 1490 Thursday, June 3, 2004 10:26 AM

Page 87: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1491

Temporary JMS destinations, 1199examples, 1233, 1248

terminate clause, 286Test document, creating, 281Text, 222, 230, 233

displaying in a JTree, 222DTD definitions, 54fields, user interface, 639, 690–694labels, 690–694node, 248nodes, 175, 230–231transforming XML to HTML, 280

text method, 178Text nodes, 206Text-based documents, 6, 18. See also JSP.TextMessage interface, 1171Thick clients, 5Thin clients, 4–5Thread management, 1360Three-tiered applications, 2–3. See also

applications.Tiered applications, 2–3. See also applica-

tions.Ties, generating. See wscompile tool.Time conversion, 707–709Time tags, 556TimedObject interface, 892Timeouts, 1070Timeouts, transactions, 1070Timer interface, 892Timer service, 892

cancelling timers, 893creating timers, 893examples, 895exceptions, 894getting information, 894saving timers, 893transactions, 894

Timer service exampleapplication, creating, 896application client

compiling, 898deploying, 899–900enterprise bean reference, specifying,

899

packaging, 898running, 900–901

canceling, 893–894creating, 893, 895–896enterprise beans, packaging, 897getting information about, 894overview, 892saving, 893–894transactions and, 894

TimerHandle interface, 892TimerService interface, 892Timestamps for messages, JMSTimestamp

message header field, 1170timeZone tag, 554, 556<TITLE> element, 284TLD (tag library descriptor)attribute element, 595–596body-content element, 595custom UI components, 777event listeners, 591listener element, 591overview, 589packaged tag files, 591–593subelements, 590tag element, 594–595tag files, declaring, 591–593tag handlers, declaring, 594–595tag handlers, declaring attributes for,

595–596tag handlers, declaring variables for,

596–598tag-file element, 591top-level elements, 590–591unpackaged tag files, 591–593validating JSP pages, 590validator element, 590–591variable element, 596–598

TLS (Transport Layer Security), 19–20toLowerCase function, 561–562Tool provider role, 14Tool providers, 1395Tool vendors, 635Topic. See publish/subscribe messaging sys-

tem.Topic interface, 1164

J2EETutorial.book Page 1491 Thursday, June 3, 2004 10:26 AM

Page 88: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1492 INDEX

Topicscreating, 1164, 1178durable subscriptions, 1200introduction, 1164looking up, 1164temporary, 1199, 1248

toUpperCase function, 561–562&trade, trademark entity, 61Trademark entity, &trade, 61Transaction attributes, 1395Transaction inflow, 1362Transaction isolation level, 1395Transaction management contract, 1361Transaction managers, 8–9, 1395. See also

containers.transaction tag, 557–558Transactions, 1045, 1058

attributes, 997, 1046attributes, setting, 968auto commits, 18bean-managed, 1046, 1057, 1069–1070,

1073, 1217boundaries, 834, 1046, 1057, 1073business methods. See business methods,

transactions.commits, 1046, 1052, 1058, 1063,

1068–1071container-managed, 1046, 1057,

1068–1070, 1217defined, 1045definition, 1045–1046, 1395demarcating, 1046, 1073distributed, 1216–1219distributed, JMS, 1216entity beans. See entity beans, transac-

tions.examples, 1051–1052, 1058, 1063, 1071,

1206exceptions. See exceptions; transactions.interface for demarcating, 18invoking in Web components, 447isolation levels, 1070JDBC, 1058, 1069, 1071JMS and J2EE applications, 1213

JTA, 1058, 1063, 1069–1070local, JMS, 1204managers, 1049, 1058, 1063, 1071message-driven beans, 839, 1046, 1049,

1057–1058, 1069multiple databases, 1071–1072nested, 1046, 1063options, summary table, 1069overview, 8–9, 18, 1045–1046, 1213Required attribute, 1218rollbacks, 18, 1046, 1050, 1052, 1058,

1063, 1069–1070scope, 1046session beans. See session beans, transac-

tions.shared data, 834timeouts, 1070timer service, 894and timers, 894tips, 1069types allowed, 1069Web components, 1073in Web components, 1073XA, 1361

Transactions, bean-managedabout, 1057–1058Connection interface methods,

1058–1059, 1069, 1073definition, 1367distributed transactions, 1217example, JDBC transactions

application client, packaging, 1061application client, running, 1062–1063application client, specifying enterprise

bean reference, 1062compiling, 1059deploying, 1059enterprise bean, packaging, 1060–1061J2EE application, creating, 1060J2EE application, deploying, 1062packaging, 1059running, 1059

example, JTA transactionsapplication client, packaging, 1066

J2EETutorial.book Page 1492 Thursday, June 3, 2004 10:26 AM

Page 89: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1493

application client, running, 1068application client, specifying enterprise

bean reference, 1067compiling, 1064deploying, 1064enterprise bean, packaging, 1065–1066J2EE application, creating, 1065J2EE application, deploying,

1067–1068packaging, 1065running, 1064

isolation levels, 1070–1071JDBC transactions, choosing, 1058–1059,

1069JTA transactions, choosing, 1063–1064,

1069overview, 1057–1058prohibited methods, 1068returning without committing, 1068stateful session beans, returning without

committing, 1068timeouts, 1070UserTransaction interface methods,

1063–1064, 1069, 1073Transactions, container-managed

about, 1046afterBegin method, 1052afterCompletion method, 1052–1053attributes, definition, 1046–1047attributes, list of, 1050attributes, setting, 1049–1050definition, 1369distributed transactions, 1217example

application client, packaging, 1055application client, running, 1056application client, specifying enterprise

bean reference, 1055–1056compiling, 1053enterprise bean, packaging, 1054J2EE application, creating, 1053J2EE application, deploying, 1056packaging, 1053–1055

instance variables, synchronizing, 1052–1053

isolation levels, 1070–1071limitations, 1057Mandatory attribute, 1048Never attribute, 1049NotSupported attribute, 1048prohibited methods, 1057Required attribute, 1047RequiresNew attribute, 1047–1048rollbacks, 1050–1051scope, 1046–1047, 1050setRollbackOnly method, 1050–1051Supports attribute, 1048timeouts, 1070

Transferring control, 462–463, 507–508transform tag, 550, 553–554Transformation tags, 553–554Transformations

from the command line, 303concatenating, 303

Transformations, concatenating, 303–310Transformer, creating, 259Transforming data

DOM (Document Object Model), 247XML to/from other forms. See XPath;

XSLT.translate function, 255Translation, JSP pages, 483–484Transport Layer Security (TLS), 19–20Transport protocols, 10–12. See also Web

services.Transport-level security

basic authentication, 1126–1133client-certificate authentication,

1133–1142mutual authentication, 1133–1142overview, 1125–1126

Traversing DOM nodes, 234Tree, displaying, 205Tree (graph) of beans, 799–801TreeModel, adapting to JTree, 195–204TreeModelSupport class, 204trim function, 561–562true function, 256Trust-stores, 1117, 1135

J2EETutorial.book Page 1493 Thursday, June 3, 2004 10:26 AM

Page 90: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1494 INDEX

Tutorials. See bookstore example; SAAJ messages, tutorial.

Two-way authentication. See mutual authen-tication.

Typographical conventions, xliii

U<U> (underline) tag, 280UBL (Universal Business Language), 1354UDDI (Universal Description, Discovery,

and Integration). See also JAXR.accessing registries with SAAJ, 373definition, 1395getting access to public registries, 394pinging, 373–380registries, 390–391uses for, 12

UI component behavioral interfaces, 646ActionSource interface, 646, 652, 657,

719, 721, 747, 778, 790ConvertibleValueHolder interface,

646, 778EditableValueHolder interface, 646,

778NamingContainer interface, 646, 778StateHolder interface, 646, 779, 785ValueHolder interface, 646, 779

UI component classes, 645-647, 762javax.faces.component package, 778SelectItem class, 700, 703, 736–737SelectItemGroup class, 737SelectItems class, 683UIColumn class, 645UICommand class, 645, 647UIComponent class, 645, 647UIComponentBase class, 645, 778, 780UIData class, 645UIForm class, 645UIGraphic class, 645UIInput class, 645, 653, 657UIMessage class, 646UIMessages class, 646UIOutput class, 646, 652

UIPanel class, 646UIParameter class, 646UISelectBoolean class, 646, 697UISelectItem class, 646, 700UISelectItems class, 646, 700UISelectMany class, 646, 697UISelectOne class, 646–647, 699UIViewRoot class, 646, 676

UI component properties. See backing bean properties.

UI component renderersGrid renderer, 695Group renderer, 695Hidden renderer, 691Label renderer, 691Link renderer, 691Message renderer, 691Secret renderer, 691Table renderer, 686Text renderer, 690–691TextArea renderer, 691

UI component tag attributes, 681-683, 681–683

action attribute, 657, 755, 768, 775actionListener attribute, 657, 685,

711, 719–721, 749, 757, 763, 768, 775, 789

alt attribute, 690, 768for attribute, 692, 699attributes referencing backing bean meth-

ods. See attributes referencing backing bean methods.

basename attribute, 704binding attribute, 642, 658, 681, 683,

714, 718columns attribute, 695–696converter attribute, 690, 706–707,

723–724first attribute, 689headerClass attribute, 695id attribute, 681immediate attribute, 681, 681-682, 768itemLabel attribute, 703itemValue attribute, 703

J2EETutorial.book Page 1494 Thursday, June 3, 2004 10:26 AM

Page 91: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1495

locale attribute, 677redisplay attribute, 694rendered attribute, 681–682, 719required attribute, 713rows attribute, 689size attribute, 697, 699style attribute, 681, 683, 689, 699styleClass attribute, 681, 683url attribute, 690usemap attribute, 690, 726validator attribute, 657, 691, 758value attribute, 639, 642, 681, 683, 685,

688-689, 692–693, 698, 702, 714–716, 730, 768–769

valueChangeListener attribute, 657, 691, 711, 722-723, 758

var attribute, 688, 705UI component tags, 648-651, 653, 681, 730

attributes. See UI component tag attributes.

column tag, 648, 684commandButton tag, 639, 648, 685commandLink tag, 648, 686, 712dataTable tag, 648, 686-689, 732form tag, 649, 683graphicImage tag, 649, 768inputHidden, 691inputHidden tag, 649inputSecret tag, 649, 691, 694inputText tag, 639, 649, 690–691inputTextarea, 691inputTextarea tag, 649message tag, 649, 698messages tag, 640, 649, 698outputFormat tag, 686, 693outputLabel tag, 649, 691–692outputLink tag, 649, 691–692outputMessage tag, 691outputText tag, 650, 691–692, 733panelGrid tag, 650, 695panelGroup tag, 650, 688, 694–696selectBooleanCheckbox tag, 650, 697,

734selectItems tag, 737

selectManyCheckbox tag, 650, 697–698, 734

selectManyListbox tag, 650, 697selectManyMenu tag, 650selectOneListbox tag, 651, 699selectOneMenu tag, 651, 699-700,

735–736selectOneRadio tag, 651, 699

UI componentsbuttons, 648checkboxes, 650combo boxes, 650–651custom UI components. See custom UI

components.data grids, 648hidden fields, 649hyperlinks, 648labels, 649–650list boxes, 650–651password fields, 649radio buttons, 651table columns, 648tables, 650text areas, 649text fields, 649

UIColumn class, 645UIColumn component, 684UICommand class, 645, 648UICommand component, 684–686UIData class, 645UIData component, 686–689UIData property, 732–733UIForm class, 645UIForm component, 683–684UIGraphic class, 645UIGraphic component, 690UIInput class, 645UIInput component, 690–694UIInput property, 731–732UIMessage class, 646UIMessage component, 698–699UIMessages class, 646UIMessages component, 698–699UIOutput class, 646

J2EETutorial.book Page 1495 Thursday, June 3, 2004 10:26 AM

Page 92: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1496 INDEX

UIOutput component, 690–694UIOutput property, 731–732UIPanel class, 646UIPanel component, 694–696UIParameter class, 646UISelectBoolean class, 646UISelectBoolean component, 697UISelectBoolean property, 734UISelectItem class, 646UISelectItem component, 700–703UISelectItem property, 736UISelectItemGroup component, 700–703UISelectItems class, 646UISelectItems component, 700–703UISelectItems property, 737–739UISelectMany class, 646UISelectMany component, 697–698UISelectMany property, 734–735UISelectOne class, 646UISelectOne component, 699–700UISelectOne property, 735–736UIViewRoot class, 646Unauthenticated access, 1088, 1145UnavailableException class, 447Undeploying Web modules, 95Underscore (_)

Java localization classes, 819in XML markup, 43

Unicode, 1395Unicode values for special characters, 50Unidirectional relationships, 837–838, 987Uniform resource identifier (URI), 1094,

1396Uniform resource locator (URL). See URL.Uniform resource name (URN), 1396Universal Business Language (UBL), 1354Universal Description, Discovery, and Inte-

gration (UDDI). See UDDI.Universal Standard Products and Services

Classification (UNSPSC), 400, 1395

Unpackaged tag files, 591–593Unparsed entities

definition, 63, 1396

recognizing, 109referencing, 64–66

Unparsed entity, 63, 155unparsedEntityDecl method, 172Unrestricted access, 1094unsetEntityContext method, 850UNSPSC (Universal Standard Products and

Services Classification), 400, 1395

Update model values phase, 667–668update tag, 557–558Updating Web modules, 92–95URI (uniform resource identifier), 1094,

1396URL (uniform resource locator)

connections from enterprise beans, 1083–1086

definition, 1396mapping to Web components, 96–97path, 1396resource manager, 1076

URL connections, 1083url tag, 544URL tags, 548–549URLs, connecting to from J2EE compo-

nents, 1083URN (uniform resource name), 1396US-ASCII encoding, 1341User authentication. See authentication.User data constraints, 1396User input

buttons, 685forms, 683–684hiding, 694requiring values, 712–714selecting from a list

checkboxes, 697–698, 703–704combo boxes, 699–700, 703–704component properties, 734–739drop-down lists, 699–700, 703–704list boxes, 697–698, 703–704menus, 697–698, 699–700, 703–704

text fields, 690–694validation, 714

J2EETutorial.book Page 1496 Thursday, June 3, 2004 10:26 AM

Page 93: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1497

User interface, online banking examplecreating, 1313getting data from, 1315–1317updating, 1313

User interface component model. See also JavaServer Faces.

action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, description, 651–652custom components. See JavaServer

Faces, custom UI components.data validation, 654data-model events, 653event and listener model, description,

652–653mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645UICommand class, tags, 648validation model, 654value-change events, 653

User interface components. See JavaServer Faces.

User output, 690–694User-based authorization, 22. See also

JAAS.Username, 1127Users, 1088

adding to Application Server, 1089authorized, 8–9. See also containers;

security.definition, 1088determining name, 1098determining role, 1098J2EE versus operating system, 1088managing, 1089overview, 1088–1089roles, mapping, 1090–1092security, 1397

UserTransaction, 1057, 1063,

1068–1070, 1073UserTransaction interface, message-

driven beans, 1217UserTransaction interface methods,

1063–1064, 1069, 1073UTF-8 encoding, 825, 1341UTF-16 encoding, 1342Utility classes, 845, 904

VValid, 1397Valid partial requests, 97–98validate method, 600validateLongRange tag, 640, 714Validating. See also verifying.

DOMconfiguring the DocumentBuilder fac-

tory, 238errors, 187–188with multiple namespaces, 239–240overview, 237schemas, associating with documents,

238–239schemas, declaring, 241–243with XML schema, 237–243

JSP pages, 590user input data

data ranges, 640, 714required input, 713validation model, 654

XML files, 816with XML Schema, 237

Validating input. See validation model.Validating parsers. See also parsers.

definition, 1397SAX

documents, associating with schemas, 158–159

error handling, 161error handling, setting up, 158factory, configuring, 155–156overview, 155parser properties, setting, 157

J2EETutorial.book Page 1497 Thursday, June 3, 2004 10:26 AM

Page 94: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1498 INDEX

Validating parsers (Continued)validation errors, 159–161XML schema, validating, 156–157

Validationbacking bean methods, 757–758immediate processing, 681–682methods, 722model, 654user input, 714

Validation errors, 159Validation model, 645, 654id attribute, 725referencing a method that performs vali-

dation, 722requiring a value. See also UI component

tag attributes.required attribute, 713

validator attribute, 657, 691, 719–720, 722, 758

Validator class, 754–755Validator implementation, 654, 725Validator interface, 654, 713, 751, 753,

757–758validator tag, 723, 725validators. See validators.writing a backing bean method to perform

validation, 757validator attribute, 691validator element, 590–591Validator implementation classes, 654,

712–713DoubleRangeValidator class, 679, 712LengthValidator class, 679, 712LongRangeValidation implementation,

640LongRangeValidator class, 679, 712,

714Validator interface, 750–753Validator tags, 654, 679–680maximum attribute, 714minimum, 714validateDoubleRange tag, 712validateLength, 712validateLongRange tag, 640, 712, 714

validator tag, 654, 753Validators, 632, 634, 645, 664–665,

712–714, 725–726, 750–753custom validators, 654, 679, 725standard validators. See standard valida-

tors.value attribute, 683Value binding, 714, 730, 730-739

acceptable types of component values, 731

advantages of, 658a component instance to a bean property.

See component binding.a component value to a backing-bean

property, 715a component value to an implicit object,

717component values and instances to exter-

nal data sources, 714value attribute, 639, 642, 683, 685,

688–689, 692–693, 698, 702, 714–716, 730, 768–769

ValueBinding class, 659, 775, 784value-binding enabling component

attributes, 775value-binding expressions, 657, 715, 718,

732, 775Value types, 325Value types, JAX-RPC, 325Value-binding backing beans, 657Value-binding expressions, 1397Value-change events, 652–653, 711, 747processValueChange(ValueChan-

geEvent) method, 748, 759processValueChangeEvent(Val-

ueChangeEvent) method, 759referencing methods that handle value-

change events, 657, 722type attribute, 711ValueChangeEvent class, 657, 711,

747–748, 758valueChangeListener attribute, 657,

691, 711, 719–720, 722, 758valuechangeListener attribute, 763

J2EETutorial.book Page 1498 Thursday, June 3, 2004 10:26 AM

Page 95: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1499

ValueChangeListener class, 711, 747, 759

ValueChangeListener implementation, 748

valueChangeListener tag, 678, 710–711, 763

writing a backing bean method to handle value-change events, 758

ValueChangeEvent, 748, 758–759ValueChangeEvent methods, 722–723ValueChangeListener, registering, 711valueChangeListener attribute, 691ValueChangeListener class, 748–749ValueHolder interface, 646variable directive, 580–581variable element, 596–598Variable support tags, 543–544Variable synchronization, 580–584Variables, 301

JSP custom tags, 572–573JSP pages, 491–492scope, 302scripting, 620–621, 629–630value, 302XSLT, 302

--verbose flag, 25verifier tool, 26Verifying. See also validating.

mutual authentication, 1124SSL support, 1122

Version, 35Vertical line (|)

in DTDs, 54XPath operator, 253

Vertical lines (||), JSP operator, 494View phase, 665–666Views, JavaServer Faces technology, 662Virtual hosts, 1397

WW3C(World WideWebConsortium), 19, 314,

337, 1349, 1397.war file extension, 13

WAR (Web application archive) files, 811See also Web applicationsSee also Web-tier securitySee also wsdeploy tooladding files to, 871adding Web component files, 865definition, 1397deploying Web modules, 87directory structure, 811–812JavaBeans components in, 86overview, 13

WarehouseBean example. See examples, bean-managed JDBC transactions.

Warnings, 146. See also errors.definition, 1397in DTD, 163SAX, 146–147XML, 48

Web applications, 86See also bookstore exampleSee also Coffee Break exampleSee also JavaServer FacesSee also online banking exampleaccessing data sources, 101accessing databases from, 100accessing tag library implementations,

505configuring, 83, 95–96databases

accessing, 100–104connection, creating, 103–104data sources, creating, 102–103data sources, mapping to resource ref-

erences, 104DataSource objects, 101populating, 101–102resource references, mapping to data

sources, 104resource references, specifying,

103–104definition, 1397deployment descriptors, 13, 87distributable, 1398errors, mapping to error screens, 99

J2EETutorial.book Page 1499 Thursday, June 3, 2004 10:26 AM

Page 96: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1500 INDEX

Web applications (Continued)establishing the locale, 821initialization parameters, setting, 98–99internationalizing, 819

J2EE Blueprints, 827JSP pages, 82life cycle, 84–86localization

character encoding, 824–825character sets, 824date formats, 823Java localization classes, 819–820labels, 820–823locale, establishing, 821messages, 820–823number formats, 823page encoding, 826request encoding, 825–826resource bundle, setting, 822response encoding, 826–827retrieving localized messages, 822–823UTF-8 encoding, 825

maintaining state across requests, 464making tag handlers available to, 599mapping resource references to data

sources, 104mapping URLs to Web components,

96–97overview, 82–84parsing and formatting localized dates and

numbers, 823presentation-oriented, 81providing localized messages, 820resource references, declaring, 99–100retrieving localized messages, 822running, 91security. See Web-tier security.service oriented, 81service-oriented, 81servlets, 82setting the resource bundle, 821specifying initialization parameters, 98specifying resource references, 103specifying welcome files, 97

user interface framework, 24–25valid partial requests, 97–98welcome files, declaring, 97–98

Web browsers, 4. See also Web clients.Web clients, 4, 81

coding, 863–864compiling, 865context root, specifying, 868creating, 863–868Duke’s Bank, 1318, 1328

custom tags, 1320JavaBeans components, 1319JSP template, 1320request processing, 1323running, 1339

enterprise bean reference, mapping, 867enterprise bean reference, specifying, 866examples, 863online banking example

client components, 1320–1323compiling, 1330design strategies, 1319–1320overview, 1318–1319packaging, 1333–1334protecting resources, 1325–1326request processing, 1323–1325running, 1339

overview, 4packaging, 865running, 869–870

Web component developer role, 15Web components, 6. See also J2EE compo-

nents; JSP; servlets.accessing databases from, 446aliases, setting, 96–97applets bundled with, 6concurrent access to shared resources, 445declaring environment entries, 99–100declaring resource references, 99–100definition, 1398encoding of requests delivered to, 825enterprise bean references, 866forwarding to other Web components, 462including other Web resources, 461

J2EETutorial.book Page 1500 Thursday, June 3, 2004 10:26 AM

Page 97: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1501

invoking other Web resources, 460JMS and, 1219logging messages, 28mapping exceptions to error screens, 99mapping filters to, 458mapping to URLs, 96–97overview, 3, 6packaging, 865propagating security identity, 1149–1151response encoding, 826scope objects, 444Server Log, overview, 28ServletContext.log method, 28setting the request encoding, 825setting the response encoding, 826sharing information, 444specifying aliases, 96specifying initialization parameters, 99transactions, 447, 1073types, 6uses for, 81utility classes bundled with, 6Web context, 463

Web container providers, 1398Web containers, 10

definition, 83, 1398distributed, 1398loading and initializing servlets, 441mapping URLs to Web components, 96overview, 10

Web content, creating. See JSP.Web context, accessing, 463–464Web deployment descriptors, 13Web modules, 13, 86

context root, setting, 89–92definition, 86, 1398deployed, listing, 92deploying, 89–92

unpackaged, 89, 91–92document root, 86dynamic reloading, 93–95JAR files, 13overview, 13packaging, 88–89

top-level directory, 86undeploying, 95updating, 92–95

packaged, 93unpackaged, 93

viewing deployed, 92WAR files, 87

Web pages. See applets; JSP.Web resource collections, 1094

defining, 1093, 1096definition, 1094, 1398editing content, 1096

Web resources, 86, 1398Duke’s Bank, protecting, 1326mapping filters to, 458–460protecting, 1094unprotected, 1094

Web server providers, 1399Web servers, 1398–1399Web service clients, 843–844Web service endpoint interface, 844,

884–885Web services, 10. See also Coffee Break

example.clients, 326

application, 333–336creating, 314–324DII (dynamic invocation interface),

329–333dynamic proxy, 326–329static stub, 321–324unknown until runtime, 329–333

definition, 1399EJB. See enterprise beans, Web services.endpoint interfaces, 884example, 1255

application, creating, 886application, deploying, 888enterprise beans, packaging, 887–888stateless session bean implementation

class, 885Web service client, 888–889Web service endpoint interface,

884–885

J2EETutorial.book Page 1501 Thursday, June 3, 2004 10:26 AM

Page 98: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1502 INDEX

Web services (Continued)examples, 314overview, 10–12RPC (remote procedure calls) support.

See JAX-RPC.security, 1092

basic authentication, 1126–1133client-certificate authentication,

1133–1142mutual authentication, 1133–1142overview, 1125–1126

WSDL files, 886Web Services Description Language

(WSDL), 12, 317–318. See also XML.

Web services interoperability (WS-I), 337Web tier, 2–6Web-tier security. See also security.

authentication method, setting, 1093, 1095, 1105

deployment descriptorscreating, 1092–1100viewing, 1092

JSP pages, adding security to, 1097network security requirements, 1093,

1096–1097overview, 1092–1093passwords, protecting, 1097–1098programmatic security methods,

1098–1100protecting passwords, 1097–1098protecting Web resources, 1094request URIs, protected, 1094roles

authorizing, 1093, 1097creating, 1097mapping, 1090–1092, 1098–1100references, declaring, 1098–1100references, linking, 1098–1100

secure connection, specifying, 1097–1098security constraints, 1093, 1095security requirements, setting with

deploytool, 1095–1097servlets, adding security to, 1097

session management, 1098SSL support, 1097–1098unrestricted access, allowing, 1094URIs, protected, 1094users

determining name, 1098determining role, 1098

Web resource collections, 1093, 1096Welcome files, declaring, 97–98Well formed

definition, 1399JSP documents, 521, 528tags, 33XML, 33, 45–46

when tag, 544, 546WHERE clause, 1032–1040WhitespaceCDATA sections, 51compressing, 132–133DOM, ignoring, 212DTDs, 52ignorable, 151–152tags, 32tracking, 151–152trimming, 289–291trimming, JSTL, 561–562

Wildcards, XPath, 251–252Windows commands

Application Server, 25, 27PointBase database server, 28

Work flows, 833Work management contract, 1359–1360World Wide Web Consortium (W3C), 19,

1397Writing backing bean methods, 755-759

for handling action events, 757for handling value-change events, 758for performing navigation, 755for performing validation, 757

Writing backing-bean methods, for perform-ing validation, 691

Writing component properties. See backing bean properties.

wscompile, 26

J2EETutorial.book Page 1502 Thursday, June 3, 2004 10:26 AM

Page 99: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1503

wscompile tool, 26, 315wsdeploy, 26wsdeploy tool, 26WSDL (Web Services Definition Language),

12, 314, 324, 327, 337publishing concepts for with JAXR, 423publishing with JAXR, 408removing concepts for with JAXR, 424using to find organizations, 401, 424

WSDL (Web Services Description Lan-guage), 12, 317–318. See also XML.

WSDL files, 19. See also wscompile tool.WS-I (Web services interoperability), 337

XX.509 certificates, 1102. See also digital cer-

tificates; security.common name field, 1089definition, 1102–1103overview, 1089

Xalan, 245, 306command line transformations, 303creating a transformer, 259–262definition, 1399identity transform, 260name origin, 245reading XML file, 258–259writing a DOM as an XML file, 257–264

XHTML, 44, 1351, 1399XLink, 1350, 1399Xlink, 1350XLL (XML Link Language), 1399XML (Extensible Markup Language), 11,

31, 313, 324. See also DTD.application processing instructions,

35–36, 46–47archiving components, 40–41attributes, 3, 33binding, 40case sensitivity, 43CDATA sections, 51–52comments, 34, 42

content, 35converting existing data to. See SAX.creating XML files, 41–42data

generating, 41–42identification, 36–37processing with Java. See JAXP.

for data processing, 39data structure design

attributes vs. elements, 75–76conditionalized DTDs, 78containers vs. contents, 76data visibility, 76factoring out DTDs, 78modularizing DTDs, 78normalizing data, 77–78normalizing DTDs, 78online resources, 74stylistic choices, 76–77using existing schemas, 74

declarations, writing, 42definition, 31–32, 1399–1400designing a data structure, 74in document-driven programming, 39–40documents, 57, 135documents, and SAAJ, 340ease of processing, 38editors, 40elements

adding attributes, 43definition, 1373nesting, 44root, defining, 42–43special values, 55vs. attributes, 75–76

elements in SOAP messages, 340entities

defining, 35, 49list of, 49predefined, 49in XML documents, 50–51

error handling, 48errors, definition, 48fatal errors, 48

J2EETutorial.book Page 1503 Thursday, June 3, 2004 10:26 AM

Page 100: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1504 INDEX

XML (Continued)generating, 264hierarchical nature, 38importance of, 36–38inline reusability, 37and JAXP, 19linkability, 38linking, 1350markup, 31online resources, 40overview, 11plain text format, 36processing instructions, 35–36, 46–47prolog, 34prologs, 34–35reading, 258registries, establishing security creden-

tials, 404reserved words, 36schema standards, 1349special characters

character references, 50hexadecimal to decimal conversion, 50symbols for. See entities.treating as text, 51Unicode values, 50

stylability, 37syntax, 31–32tags. See also JSP, tag libraries; JSTL.

attributes, 33empty, 33–34HTML-style, 44–45markup, 31nesting, 33, 46specifying for a document. See DTD.structure, transforming to HTML, 280well formed, 33whitespace, 32

technical committees, 74transforming to other forms. See XPath;

XSLT.treating as text, 148–149. See also CDATA

sections; lexical events.uses for, 38–41

warnings, 48well formedness, 33, 45–46whitespace inCDATA sections, 51DTDs, 52tags, 32

XML Base, 1350XML data, 57, 135

transforming with XSLT, 278XML declaration, 531–533XML documents. See also DTD; JSP, docu-

ments.accessing. See DOM; SAX.associating with schemas, 158–159CDATA sections, 51–52comments, 34, 42data, generating, 41–42data identification, 36–37declarations, writing, 42document type, specifying, 56elements

adding attributes, 43nesting, 44root, defining, 42–43

entitiesdefining, 35, 49list of, 49predefined, 49in XML documents, 50–51

identifying as documents, 42JSP documents, 515locating, 136–137prologs, 34–35special characters

character references, 50hexadecimal to decimal conversion, 50symbols for. See entities.treating as text, 51Unicode values, 50

vs. XML data, 57well formedness, 33, 45–46

.xml file extension, 12XML files

creating, 41–42

J2EETutorial.book Page 1504 Thursday, June 3, 2004 10:26 AM

Page 101: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1505

echoingapplication skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119overview, 117parser, setting up, 120–121

echoing, event handlingcharacter events, 125–127document events, 123–124element events, 124–125

echoing, outputspacing, 122–123writing, 121–122

event handlingcharacter events, 125–127document events, 123–124element events, 124–125

validation, enabling, 816XML library, 541–542, 550–554XML Link Language (XLL), 1399XML namespaces, 523XML registries

accessing, 394–395. See also JAXR.authentication, 404classifications, 406data management, 404–411ebXML Registry and Repository stan-

dard, 390objects, listing, 424–425organizations, creating, 404–406querying, 399–400registry providers, 390removing data, 411specifications, 390UDDI (Universal Description, Discovery,

and Integration), 390XML registries (classifications), 406XML Schema, 156–157, 1400. See also

schemas; validating.definition, 156Instance, 158reason for using DOM, 176, 181SAX error handling, 158

SAX parser properties, 157summary of, 1349validating, 237

with multiple namespaces, 239validating with, in SAX, 156

XML security. See also security.basic authentication example, 1126–1133client-certificate authentication example,

1133–1142mutual authentication example,

1133–1142overview, 1125–1126

XML standardscxml (Commerce XML), 1354DOM (Document Object Model), 1345dom4j, 1345–1346DrawML (Drawing Meta Language),

1353DTD (document type definition), 1346ebXML (Electronic Business with XML),

1354e-commerce, 1353–1354extended document, 1353ICE (Information and Content Exchange),

1354JDOM, 1345–1346knowledge representation, 1351–1352linking, 1350–1351MathML (Mathematical Markup Lan-

guage), 1353namespaces, 1347presentation, 1350–1351RDF (Resource Description Framework),

1351–1352RDF Schema, 1352RELAX NG, 1349SAX (Simple API for XML), 1344–1345schemas, 1348–1349, 1352Schematron, 1350SMIL (Synchronized Multimedia Integra-

tion Language), 1353SOX (Schema for Object-oriented XML),

1349StAX (Streaming API for XML), 1345

J2EETutorial.book Page 1505 Thursday, June 3, 2004 10:26 AM

Page 102: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

1506 INDEX

XML standards (Continued)SVG (Scalable Vector Graphics), 1353UBL (Universal Business Language),

1354Web site, 74XHTML, 1351Xlink, 1350XML (Extensible Markup Language),

1349XML Base, 1350+XPath, 1347XPointer, 1350–1351XSL (Extensible Stylesheet Language),

1347XSLT (Extensible Stylesheet Language

Transformations), 1347XTM (XML topic maps), 1352

XML tags. See also JSP, custom tags; JSTL tags; scripting, tags.

attributes, 33blanks. See whitespace.definition, 1394empty, 33–34HTML-style, 44–45markup, 31nesting, 33, 46text appearance, transforming to HTML,

280well formed, 33whitespace, 32

XML topic maps (XTM), 1352XML-based data interchange. See JAXP;

JAX-RPC; SAAJ.XML-based remote procedure calls (RPCs),

19–20. See also JAX-RPC.XML-based standards, 12

See also ebXMLSee also UDDISee also Web servicesSee also WSDL

XmlReader interface, 274XPATH, 1347XPath, 245–247

addressing, 249–250, 251, 252

basic addressing, 249basic expressions, 250Boolean functions, 256contexts, 249conversion functions, 256data model, 248data types, 252–253definition, 246expression, 247expressions, 247–248, 250–251functions, 253–257namespace functions, 257node-set functions, 254numeric functions, 256operator precedence, 252operators, 252–253positional functions, 254string functions, 255string values of elements, 253templates, 249wildcards, 251–252

+XPath, 1347XPointer, 247, 1350–1351, 1400XSL (Extensible Stylesheet Language),

1347, 1400XSL-FO, 246, 1400XSLT (Extensible Stylesheet Language

Transformations), 245–246, 278, 1347, 1400

concatenating transformations, filter chain, 303

context, 249data model, 248definition, 1400features, 301–302filter chains, 303–310Formatting Objects standard, 246JAXP transformation packages, 246–247library, 106overview, 19, 111–112packages, 112–113reading XML file, 258–259running from the command line, 303templates, 249

J2EETutorial.book Page 1506 Thursday, June 3, 2004 10:26 AM

Page 103: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component

INDEX 1507

transform, writing, 282transformations, concatenating, 303–310transforming to XML

from arbitrary data, 264–278creating a transformer, 259–262from a DOM, 257–264DOM I/O, 247identity transform, 260sample output, 278SAX I/O, 247stream I/O, 247

transforming to XML, parsercreating, 267–269generating SAX events, 269–275modifying, 269–275as a SAXSource, 275–277

transforming XML to HTMLcomments, 295creating a test document, 281–282defining the document type, 279–280generating runtime messages, 286

headings, 285indent options, 290–291inline (content) elements, 296–302inline tags, 280line breaks, 280lists and list items, 293paragraphs, 292printing the HTML, 300required tags, 279–280structure elements, 283–286, 291–296structure tags, 280templates in style sheets, 294text appearance tags, 280trimming whitespace, 289–291writing an XSLT transform, 282–283writing the program, 287–288

variables, 302XML standard, 1347XSL-FO, 246

XTM (XML topic maps), 1352

J2EETutorial.book Page 1507 Thursday, June 3, 2004 10:26 AM

Page 104: J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AMoverview, 19 JDBC accessing databases from Web applica-tions, 100–101 data sources, 1329 definition, 1381 ... component