
At a Glance
704 Pages
23.5 x 17.78 x 3.18
Hardcover
$169.75
or 4 interest-free payments of $42.44 with
 orÂShips in 5 to 7 business days
Industry Reviews
| Background | |
| Why J2EE? | p. 3 |
| Introduction | p. 3 |
| The Challenges Facing IT Organizations | p. 4 |
| Requirements on Enterprise Application Development | p. 5 |
| Technological Choices | p. 6 |
| Why Choose Java and J2EE? | p. 7 |
| A Note of Caution | p. 8 |
| Knowing the Technology Is not Enough | p. 9 |
| References | p. 10 |
| Introduction to Distributed Systems | p. 11 |
| What Is a Distributed Application or System? | p. 11 |
| Why Build Distributed Programs? | p. 11 |
| How Can Java Help With Distribution? | p. 14 |
| Distributed Object Systems | p. 15 |
| How Can J2EE Help? | p. 17 |
| Online Reference | p. 18 |
| The J2EE Tour | p. 19 |
| Introduction | p. 19 |
| The J2EE Platform | p. 19 |
| J2EE Technology Tour | p. 22 |
| Communication Services | p. 23 |
| Horizontal Services | p. 26 |
| Component Technologies | p. 28 |
| References | p. 30 |
| Java and Remote Method Invocation | p. 31 |
| Introduction | p. 31 |
| Remote Method Invocation | p. 31 |
| The Remote Interface | p. 32 |
| Subclassing a Server Class | p. 32 |
| Running the rmic Compiler | p. 36 |
| Starting the Registry | p. 36 |
| The RMIClient | p. 37 |
| Performance | p. 38 |
| Passing Parameters | p. 43 |
| Online References | p. 44 |
| Activate Yourself! | p. 45 |
| Introduction | p. 45 |
| Extending RMI | p. 45 |
| Implementing an Activatable Server | p. 46 |
| Remote Interface | p. 47 |
| The Client Class | p. 47 |
| The Activatable Server | p. 48 |
| The Server Setup | p. 49 |
| Running the Activatable Client-Server | p. 51 |
| Summary | p. 53 |
| Online Reference | p. 53 |
| JNDI | p. 55 |
| Introduction | p. 55 |
| What You Need to Get Started | p. 57 |
| LDAP | p. 57 |
| LDAP Data | p. 58 |
| What LDAP Can Do | p. 59 |
| Using LDAP | p. 60 |
| Using JNDI | p. 61 |
| Placing Data Into LDAP | p. 64 |
| The LDAPWrite Application | p. 64 |
| JNDI, RMI and LDAP | p. 67 |
| Summary | p. 69 |
| Java Message Service (JMS) | p. 71 |
| Introduction | p. 71 |
| Message Servers and JMS | p. 71 |
| What Is a Message Service? | p. 71 |
| Why Use a Message Service? | p. 72 |
| What Is JMS? | p. 72 |
| JMSAPI Concepts | p. 73 |
| Point to Point Communication | p. 73 |
| Publish and Subscribe Communication | p. 74 |
| The JMS API | p. 75 |
| Connection Factories | p. 75 |
| Connections | p. 76 |
| Sessions | p. 76 |
| Messages | p. 76 |
| Destinations | p. 80 |
| Message Producers | p. 80 |
| Message Consumers | p. 81 |
| Point to Point Application Development Steps | p. 81 |
| Publish Destinations | p. 83 |
| Define a Client | p. 83 |
| Define Clients That Receive Messages | p. 88 |
| Start Message Server | p. 89 |
| Compile and Start the Clients | p. 89 |
| Publish and Subscribe Application Development Steps | p. 92 |
| Publish the Topic | p. 92 |
| Define the Publisher Client | p. 92 |
| Define the Subscriber Client | p. 93 |
| Start Message Server | p. 94 |
| Compile and Start the Clients | p. 95 |
| Additional JMS Features | p. 96 |
| Specifying Message Persistence | p. 96 |
| Setting the Message Priority | p. 96 |
| Defining How Long a Message Lasts | p. 96 |
| Durable Subscriptions | p. 97 |
| Topic Message Selectors | p. 97 |
| Client Authentication | p. 97 |
| Transactions | p. 97 |
| Summary | p. 98 |
| Online References | p. 98 |
| Java, IDL and Object Request Brokers | p. 99 |
| Introduction | p. 99 |
| CORBA | p. 99 |
| Java IDL | p. 100 |
| Java ORB | p. 101 |
| Java Name Server | p. 101 |
| Converting IDL to Java | p. 102 |
| Implementing the Server | p. 103 |
| Implementing the Client | p. 106 |
| Compiling the Server and Client | p. 107 |
| Running the Application | p. 108 |
| Java IDL and RMI | p. 108 |
| Online References | p. 108 |
| Java Database Connectivity | p. 109 |
| Introduction | p. 109 |
| What ls JDBC? | p. 110 |
| What the Driver Provides | p. 111 |
| Registering Drivers | p. 111 |
| Opening a Connection | p. 112 |
| Obtaining Data From a Database | p. 114 |
| Creating a Table | p. 116 |
| Applets and Databases | p. 117 |
| Batch updates | p. 117 |
| Scrollable and Updateable ResultSets | p. 118 |
| Scrollable ResultSets | p. 119 |
| Updateable ResultSets | p. 121 |
| JDBC Data Sources | p. 123 |
| Connection Pooling | p. 125 |
| RowSet Objects | p. 127 |
| JDBC Metadata | p. 130 |
| DatabaseMetaData | p. 130 |
| ResultSetMetaData | p. 131 |
| Online References | p. 132 |
| References | p. 133 |
| XML and Java | p. 135 |
| Introduction | p. 135 |
| XML Introduced | p. 135 |
| What is XML? | p. 135 |
| What Do XML Documents Look Like? | p. 136 |
| XML Vocabularies | p. 139 |
| Working With a DTD | p. 140 |
| XSL Transformations | p. 143 |
| Processing XML | p. 145 |
| The JAXP API | p. 145 |
| The SAX API | p. 146 |
| The DOM API | p. 153 |
| Loading an XML Document | p. 156 |
| Creating an XML Document in Java | p. 161 |
| Performing XSLT in JAX | p. 164 |
| JavaMail API: the Mail Is in | p. 169 |
| Introduction | p. 169 |
| The Java Mail API | p. 169 |
| Setting up JavaMail | p. 170 |
| Sending Email | p. 170 |
| Receiving Messages | p. 174 |
| Replying to Messages | p. 178 |
| Multipart MIME Messages | p. 181 |
| Adding the Reply Text to a Reply | p. 181 |
| Message Forwarding | p. 183 |
| Sending Attachments | p. 183 |
| Sending HTML | p. 187 |
| Summary | p. 188 |
| Online References | p. 188 |
| EJB Architecture | |
| The EJB Architecture | p. 191 |
| Introduction | p. 191 |
| EJB Server Elements | p. 192 |
| EJB Component Elements | p. 194 |
| Local and Remote Interfaces | p. 195 |
| The Process of Developing and Deploying EJB Componentsin a Nutshell | p. 196 |
| The EJB Component Classes and Interfaces | p. 197 |
| Accessing EJBs From a Java Application Client | p. 200 |
| Reference | p. 202 |
| Stateless Session EJBs | p. 203 |
| Introduction | p. 203 |
| Stateless Session EJB Life Cycle | p. 204 |
| The Process of Developing a Stateless Session EJB | p. 207 |
| The Business Logic Interface | p. 208 |
| The Life Cycle Interface | p. 209 |
| The Component Class | p. 210 |
| The Session Context Object | p. 211 |
| Why Doesn't the Component Class "Implement" the Business or Life Cycle Interfaces? | p. 212 |
| The Deployment Descriptor Files | p. 213 |
| The ejb-jar.xml File | p. 214 |
| The JBoss jboss.xml File | p. 216 |
| Deploying the EJB Component | p. 216 |
| Accessing the EJB From a Java Application Client | p. 217 |
| Entity EJBs: How to Implement a Container-Managed Entity EJB | p. 221 |
| Introduction | p. 221 |
| Entity EJB Life Cycle | p. 222 |
| The Process of Developing an Entity EJB | p. 227 |
| The Business Logic Interface | p. 228 |
| The Life Cycle Interface | p. 229 |
| Creator Methods | p. 231 |
| find Methods | p. 231 |
| Home Methods | p. 232 |
| Select Methods | p. 232 |
| Primary Keys and the Primary Key Class | p. 233 |
| The Component Class | p. 236 |
| The Entity Context Object | p. 241 |
| The Deployment Descriptor Files | p. 241 |
| The ejb-jar.xml File | p. 242 |
| The JBoss jboss.xml File | p. 244 |
| The JBoss jbosscmp-jdbc.xml File | p. 244 |
| The EJB Query Language | p. 246 |
| Query Language Statements | p. 246 |
| The | p. 248 |
| Accessing the EJB From a Java Application Client | p. 249 |
| Container-Managed Relationships | p. 252 |
| Declaring Container-Managed Relationships in a ComponentClass | p. 252 |
| The Relationship Deployment Descriptors | p. 256 |
| The JBoss jbosscmp-jdbc.xml File | p. 258 |
| Reference | p. 260 |
| Gluing EJBs Together | p. 261 |
| Introduction | p. 261 |
| The BookStore EJB Interactions | p. 261 |
| The Environment Naming Context (ENC) | p. 269 |
| Some Design Issues to Consider When Gluing EJBs Together | p. 273 |
| Session EJBs as Façades | p. 273 |
| Using JNDI From an EJB | p. 275 |
| When not to Use Entity EJBs | p. 275 |
| Compile-Time Checking of the Implementation Class's Conformance to its Business Logic Interface | p. 277 |
| Improving Performance Through the Use of BulkAccessor/Updator Methods | p. 278 |
| The Cart EJB Listings | p. 279 |
| The Timer Service | p. 288 |
| Message-Driven EJBs | p. 291 |
| Introduction | p. 291 |
| Message-Driven EJB LifeCycle | p. 291 |
| The Component Class | p. 293 |
| The Deployment Descriptor Files | p. 297 |
| The ejb-jar.xml File | p. 297 |
| The ejb-jar.xml file (for EJB 2.1) | p. 299 |
| The JBoss jboss.xml File | p. 301 |
| The JBoss jboss-destinations-service.xml file | p. 302 |
| DebugMonitor Connected to a JMS Topic | p. 302 |
| Accessing the EJB From Other EJBs | p. 307 |
| Servlets and JSPs | |
| Web Applications in Java | p. 321 |
| Introduction | p. 321 |
| What Are Servlets? | p. 321 |
| Web Applications | p. 322 |
| Structure of a Web Application | p. 322 |
| How Servlets Work | p. 323 |
| Why Use Servlets | p. 324 |
| The Structure of the Servlet API | p. 325 |
| Steps for Developing and Deploying a Web Application | p. 326 |
| Starting Tomcat | p. 331 |
| A Second Example Servlet | p. 332 |
| Should You Use doGet or doPost? | p. 337 |
| Tomcat | p. 338 |
| Summary | p. 338 |
| Online References | p. 338 |
| References | p. 338 |
| Session Management and Life Cycle Monitoring | p. 341 |
| Introduction | p. 341 |
| Session Management | p. 341 |
| Session Tracking | p. 344 |
| URL Rewriting | p. 344 |
| Hidden Fields | p. 345 |
| Secure Sockets Layer Sessions | p. 345 |
| Cookies | p. 345 |
| Choosing a Session Tracking Approach | p. 346 |
| A Session Example | p. 346 |
| More Session Details | p. 347 |
| Session State | p. 349 |
| Session Life Cycle Monitoring | p. 354 |
| Servlet Context | p. 356 |
| Servlet Context Example | p. 358 |
| Servlet Life Cycle Events | p. 359 |
| References | p. 364 |
| Java Server Pages | p. 365 |
| Introduction | p. 365 |
| What Is a JSP? | p. 365 |
| A Very Simple JSP | p. 367 |
| The Components of a JSP | p. 369 |
| Directives | p. 369 |
| Actions | p. 370 |
| Implicit Objects | p. 370 |
| JSP Scripting | p. 370 |
| Making JSPs Interactive | p. 371 |
| Why Use JSPs? | p. 374 |
| Problems With JSPs | p. 374 |
| JSP Tags and Implicit Objects | p. 377 |
| Introduction | p. 377 |
| JSP Tags | p. 377 |
| JSP Directives | p. 378 |
| Scripting Elements | p. 380 |
| Actions | p. 383 |
| Implicit Objects | p. 386 |
| Scope | p. 386 |
| JSP Tag Libraries | p. 389 |
| Introduction | p. 389 |
| Why Use Tag Libraries? | p. 389 |
| Key Concepts | p. 390 |
| Building a Custom Tag | p. 391 |
| The Tag Interface | p. 392 |
| Other Tag Interfaces and Classes | p. 393 |
| Creating a Tag Library | p. 394 |
| Implement the Tag Handler Class | p. 394 |
| Define the Tag Library Descriptor | p. 395 |
| Map the Tag Library | p. 396 |
| Import the Tag Library | p. 397 |
| Run the Web Application | p. 398 |
| Adding Attributes to a Tag | p. 398 |
| Including Body Content | p. 400 |
| Guidelines for Developing Tag Libraries | p. 406 |
| Introducing Scripting Variables | p. 407 |
| Nested Tags | p. 408 |
| Tag Validation | p. 409 |
| Handling Tag Exceptions | p. 409 |
| JSTL | p. 410 |
| Summary | p. 412 |
| Online References | p. 413 |
| Request Dispatching | p. 415 |
| Introduction | p. 415 |
| Servlet Chaining | p. 415 |
| Request Dispatching | p. 416 |
| The Request Dispatcher Interface | p. 418 |
| Obtaining a Request Dispatcher | p. 418 |
| Forwarding Requests | p. 420 |
| An Example of Forwarding | p. 420 |
| Including Via Request Dispatching | p. 424 |
| Filtering | p. 431 |
| Introduction | p. 431 |
| Filters - the Very Concept! | p. 431 |
| What Can a Filter Do? | p. 432 |
| The Filter API | p. 434 |
| Implementing a Simple Filter | p. 435 |
| The Logging Filter Example | p. 439 |
| Wrapping Request and Response Objects | p. 443 |
| Filtering XML to Generate HTML | p. 443 |
| Securing Web Applications | p. 453 |
| Introduction | p. 453 |
| Traditional Approaches | p. 453 |
| Use the Web Server | p. 453 |
| Do-It-Yourself | p. 454 |
| Container-Managed Security | p. 455 |
| Defining Users | p. 457 |
| Configuring Access to Web Resources | p. 458 |
| Four Types of Authentication | p. 460 |
| Programmatic Security | p. 463 |
| JSP Configuration | p. 466 |
| Enabling and Disabling EL Evaluation | p. 467 |
| Enabling and Disabling Scripting | p. 467 |
| Declaring Page Encodings | p. 467 |
| Defining Implicit Includes | p. 468 |
| Conclusion | p. 468 |
| Online Reference | p. 469 |
| Deployment Configuration | p. 471 |
| Introduction | p. 471 |
| Context Initialization | p. 471 |
| Servlet Initialization | p. 472 |
| Servlet Loading | p. 473 |
| Session Configuration | p. 474 |
| Welcome Pages | p. 475 |
| Error Pages | p. 475 |
| MIME Mappings | p. 477 |
| Distributable Applications | p. 478 |
| Deployment Descriptor in J2EE 1.3 | p. 479 |
| Deploying J2EE Applications in J2SE 1.4 | p. 480 |
| Accessing EJBs from Servlets/JSPs | p. 483 |
| Introduction | p. 483 |
| Client Access to EJBs | p. 483 |
| Accessing EJBs From a Web Application | p. 484 |
| The Web Archive | p. 484 |
| The Enterprise Archive | p. 486 |
| Caching EJB References | p. 488 |
| An Example | p. 489 |
| Summary | p. 493 |
| Additional Technologies | |
| Deployment Issues: Transactions | p. 497 |
| Introduction | p. 497 |
| Transaction Concepts | p. 497 |
| Types of Transaction Supported by EJB Servers | p. 501 |
| Container-Managed Transactions | p. 501 |
| The Required Attribute | p. 502 |
| The Not Supported Attribute | p. 502 |
| The Supports Attribute | p. 503 |
| The Requires New Attribute | p. 503 |
| The Mandatory Attribute | p. 503 |
| The Never Attribute | p. 505 |
| Transaction Deployment Descriptors | p. 505 |
| Bean-Managed Transactions | p. 507 |
| The UserTransaction Interface | p. 507 |
| Obtaining and using a UserTransaction object | p. 509 |
| Transaction Isolation Levels | p. 510 |
| Lock Modes | p. 513 |
| Specifying Isolation Levels | p. 514 |
| Transactions and Exceptions | p. 515 |
| Reference | p. 515 |
| Deployment Issues: Security | p. 517 |
| Introduction | p. 517 |
| Security Concepts and Architecture | p. 518 |
| Authentication | p. 520 |
| Access Control (Authorization) | p. 520 |
| EJB Container-Managed Security | p. 521 |
| Declarative Security | p. 521 |
| Programmatic Security | p. 525 |
| Stakeholder Responsibilities | p. 526 |
| Example Use of the Java Authentication and Authorization Service(JAAS) | p. 526 |
| Reference | p. 531 |
| Bean-Managed Persistence | p. 533 |
| Introduction | p. 533 |
| The Entity EJB Life Cycle Revisited | p. 533 |
| BookItem EJB: the BMP version | p. 535 |
| The Deployment Descriptor Files | p. 546 |
| Accessing the BookItem BMP Entity From a Client | p. 548 |
| Stateful Session EJBs | p. 549 |
| Introduction | p. 549 |
| Stateful Session EJB Life Cycle | p. 550 |
| Rules on Allowable Instance Variables in the Implementation Class | p. 552 |
| The Process of Developing a Stateful Session EJB | p. 552 |
| The Purchase EJB Business Logic Interface | p. 552 |
| The Purchase EJB Life Cycle Interface | p. 553 |
| The Purchase EJB Component class | p. 554 |
| Transaction Synchronization Using the Session Synchronization Interface | p. 559 |
| The Deployment Descriptor Files | p. 560 |
| J2EE Connector Architecture | p. 563 |
| Introduction | p. 563 |
| Architectural Overview | p. 564 |
| Connection Service | p. 566 |
| Transaction Service | p. 567 |
| Security Service | p. 568 |
| Common Client Interface (CCI) | p. 570 |
| Deploying Resource Adapters | p. 575 |
| Reference | p. 576 |
| From Java to SVG | p. 577 |
| Introduction | p. 577 |
| What is SVG? | p. 577 |
| Advantages | p. 577 |
| Disadvantages | p. 578 |
| Obtaining an SVG Viewer | p. 578 |
| What Does SVG Look Like? | p. 579 |
| Creating SVG Using Java | p. 579 |
| Using the DOM API | p. 580 |
| Converting XML to SVG | p. 581 |
| Using Batik | p. 586 |
| SVG Viewer | p. 586 |
| SVG Rasterizer | p. 586 |
| SVG Generator: Generating SVG Content from JavaGraphics | p. 586 |
| SwingDraw | p. 588 |
| Servlets and JSPs | p. 589 |
| Summary | p. 590 |
| Online References | p. 590 |
| Appendix: SVGCreator.java | p. 591 |
| Web Services | p. 593 |
| Introduction | p. 593 |
| What Are Web Services? | p. 593 |
| What Is SOAP? | p. 594 |
| SOAP With Attachments | p. 595 |
| What Is WSDL? | p. 596 |
| What ls UDDI? | p. 597 |
| What Is Axis? | p. 598 |
| An Axis-Based Web Services Client | p. 599 |
| Creating a Simple Web Service Driver | p. 602 |
| Setting up Tomcat for Web Services | p. 602 |
| Creating a Very Simple Web Service | p. 603 |
| Configuring a Web Service | p. 605 |
| Where Is WSDL? | p. 607 |
| Java Web Services Development Pack | p. 610 |
| SOAP with Attachments API for Java | p. 612 |
| Web Services and J2EE | p. 612 |
| Summary | p. 616 |
| Reference | p. 616 |
| Design | |
| J2EE Patterns | p. 619 |
| Introduction | p. 619 |
| The Motivation Behind Patterns | p. 620 |
| Design Patterns | p. 621 |
| What Are Design Patterns? | p. 621 |
| What They Are Not | p. 621 |
| Architectural Patterns | p. 622 |
| Documenting Patterns | p. 622 |
| When to Use Patterns | p. 623 |
| Strengths and Limitations of Design Patterns | p. 623 |
| What Are J2EE Design Patterns? | p. 624 |
| A Catalog of J2EE Patterns | p. 625 |
| The FrontController Pattern | p. 626 |
| Context | p. 626 |
| Problem | p. 626 |
| Forces | p. 626 |
| Solution | p. 627 |
| Strategies | p. 628 |
| Consequences | p. 628 |
| Related Patterns | p. 628 |
| The Request-Event-Dispatcher Pattern | p. 629 |
| Context | p. 629 |
| Problem | p. 629 |
| Forces | p. 629 |
| Solution | p. 629 |
| Strategies | p. 631 |
| Consequences | p. 633 |
| Related Patterns | p. 633 |
| J2EE-based Model-View-Controller | p. 634 |
| Context | p. 634 |
| Problem | p. 634 |
| Forces | p. 634 |
| Solution | p. 634 |
| Strategies | p. 636 |
| Consequences | p. 637 |
| Related Patterns | p. 637 |
| Summary | p. 638 |
| Further Reading | p. 638 |
| References | p. 638 |
| The Fault Tracker J2EE Case Study | p. 641 |
| Introduction | p. 641 |
| The Fault Tracker Application | p. 641 |
| Requests for Change | p. 642 |
| Problem Reporting | p. 643 |
| Using the Fault Tracker | p. 644 |
| The Design of the Fault Tracker | p. 649 |
| What Is the Architecture? | p. 649 |
| Summary and Conclusions | p. 656 |
| Index | p. 659 |
| Table of Contents provided by Publisher. All Rights Reserved. |
ISBN: 9781852337049
ISBN-10: 1852337044
Series: Springer Professional Computing
Published: 17th June 2003
Format: Hardcover
Language: English
Number of Pages: 704
Audience: Professional and Scholarly
Publisher: Springer Nature B.V.
Country of Publication: GB
Dimensions (cm): 23.5 x 17.78 x 3.18
Weight (kg): 1.32
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Apache Iceberg: The Definitive Guide
Data Lakehouse Functionality, Performance, and Scalability on the Data Lake
Paperback
RRP $133.00
$64.75
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentObject-Oriented Programming or OOP
- Non-FictionComputing & I.T.Business ApplicationsEnterprise Software
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentWeb Programming
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages























