SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
The Java EE 6 Tutorial: Basic Concepts, Fourth Edition, is a task-oriented, example-driven guide to developing enterprise applications for the Java Platform, Enterprise Edition 6 (Java EE 6). Written by members of the Java EE 6 documentation team at Oracle, this book provides new and intermediate Java programmers with a deep understanding of the platform.
Starting with expert guidance on web tier technologies, including JavaServer Faces and Facelets, this book also covers building web services using JAX-WS and JAX-RS, developing business logic with Enterprise JavaBeans components, accessing databases using the Java Persistence API, securing web and enterprise applications, and using Contexts and Dependency Injection for the Java EE platform.
This edition contains extensive new material throughout, including detailed introductions to the latest APIs and platform features, and instructions for using the latest versions of GlassFish Server Open Source Edition and NetBeans IDE. Key platform features covered include
The Java Series…from the Source
Since 1996, when Addison-Wesley published the first edition of The Java Programming Language by Ken Arnold and James Gosling, this series has been the place to go for complete, expert, and definitive information on Java technology. The books in this series provide the detailed information developers need to build effective, robust, and portable applications and are an indispensable resource for anyone using the Java platform.
Preface xxi
Part I: Introduction 1
Chapter 1: Overview 3
Java EE 6 Platform Highlights 4
Java EE Application Model 5
Distributed Multitiered Applications 6
Java EE Containers 13
Web Services Support 15
Java EE Application Assembly and Deployment 17
Packaging Applications 17
Development Roles 19
Java EE 6 APIs 22
Java EE 6 APIs in the Java Platform, Standard Edition 6.0 31
GlassFish Server Tools 34
Chapter 2: Using the Tutorial Examples 37
Required Software 37
Starting and Stopping the GlassFish Server 41
Starting the Administration Console 42
Starting and Stopping the Java DB Server 43
Building the Examples 44
Tutorial Example Directory Structure 44
Getting the Latest Updates to the Tutorial 44
Debugging Java EE Applications 45
Part II: The Web Tier 47
Chapter 3: Getting Started with Web Applications 49
Web Applications 50
Web Application Lifecycle 51
Web Modules: The hello1 Example 53
Configuring Web Applications: The hello2 Example 62
Further Information about Web Applications 71
Chapter 4: JavaServer Faces Technology 73
What Is a JavaServer Faces Application? 74
JavaServer Faces Technology Benefits 75
Creating a Simple JavaServer Faces Application 77
Further Information about JavaServer Faces Technology 81
Chapter 5: Introduction to Facelets 83
What Is Facelets? 83
Developing a Simple Facelets Application 85
Templating 91
Composite Components 94
Resources 96
Chapter 6: Expression Language 99
Overview of the EL 99
Immediate and Deferred Evaluation Syntax 100
Value and Method Expressions 102
Defining a Tag Attribute Type 108
Literal Expressions 109
Operators 111
Reserved Words 111
Examples of EL Expressions 112
Chapter 7: Using JavaServer Faces Technology in Web Pages 113
Setting Up a Page 113
Adding Components to a Page Using HTML Tags 114
Using Core Tags 143
Chapter 8: Using Converters, Listeners, and Validators 145
Using the Standard Converters 145
Registering Listeners on Components 151
Using the Standard Validators 152
Referencing a Backing Bean Method 154
Chapter 9: Developing with JavaServer Faces Technology 159
Backing Beans 159
Writing Bean Properties 162
Writing Backing Bean Methods 170
Using Bean Validation 174
Chapter 10: Java Servlet Technology 179
What Is a Servlet? 180
Servlet Lifecycle 180
Sharing Information 182
Creating and Initializing a Servlet 183
Writing Service Methods 184
Filtering Requests and Responses 187
Invoking Other Web Resources 191
Accessing the Web Context 193
Maintaining Client State 193
Finalizing a Servlet 195
The mood Example Application 198
Further Information about Java Servlet Technology 200
Part III: Web Services 201
Chapter 11: Introduction to Web Services 203
What Are Web Services? 203
Types of Web Services 203
Deciding Which Type of Web Service to Use 206
Chapter 12: Building Web Services with JAX-WS 207
Creating a Simple Web Service and Clients with JAX-WS 208
Types Supported by JAX-WS 217
Web Services Interoperability and JAX-WS 217
Further Information about JAX-WS 217
Chapter 13: Building RESTful Web Services with JAX-RS 219
What Are RESTful Web Services? 219
Creating a RESTful Root Resource Class 220
Example Applications for JAX-RS 235
Further Information about JAX-RS 240
Part IV: Enterprise Beans 243
Chapter 14: Enterprise Beans 245
What Is an Enterprise Bean? 245
What Is a Session Bean? 247
What Is a Message-Driven Bean? 249
Accessing Enterprise Beans 251
The Contents of an Enterprise Bean 258
Naming Conventions for Enterprise Beans 260
The Lifecycles of Enterprise Beans 261
Further Information about Enterprise Beans 264
Chapter 15: Getting Started with Enterprise Beans 265
Creating the Enterprise Bean 265
Modifying the Java EE Application 269
Chapter 16: Running the Enterprise Bean Examples 271
The cart Example 271
A Singleton Session Bean Example: counter 278
A Web Service Example: helloservice 286
Using the Timer Service 290
Handling Exceptions 300
Part V: Contexts and Dependency Injection for the Java EE Platform 303
Chapter 17: Introduction to Contexts and Dependency Injection for the Java EE Platform 305
Overview of CDI 306
About Beans 307
About Managed Beans 307
Beans as Injectable Objects 308
Using Qualifiers 309
Injecting Beans 310
Using Scopes 310
Giving Beans EL Names 312
Adding Setter and Getter Methods 312
Using a Managed Bean in a Facelets Page 313
Injecting Objects by Using Producer Methods 314
Configuring a CDI Application 315
Further Information about CDI 315
Chapter 18: Running the Basic Contexts and Dependency Injection Examples 317
The simplegreeting CDI Example 317
The guessnumber CDI Example 322
Part VI: Persistence 331
Chapter 19: Introduction to the Java Persistence API 333
Entities 333
Entity Inheritance 345
Managing Entities 349
Querying Entities 355
Further Information about Persistence 355
Chapter 20: Running the Persistence Examples 357
The order Application 357
The roster Application 369
The address-book Application 376
Chapter 21: The Java Persistence Query Language 381
Query Language Terminology 382
Creating Queries Using the Java Persistence Query Language 382
Simplified Query Language Syntax 384
Example Queries 385
Full Query Language Syntax 390
Chapter 22: Using the Criteria API to Create Queries 415
Overview of the Criteria and Metamodel APIs 415
Using the Metamodel API to Model Entity Classes 417
Using the Criteria API and Metamodel API to Create Basic Typesafe Queries 418
Part VII: Security 427
Chapter 23: Introduction to Security in the Java EE Platform 429
Overview of Java EE Security 430
Security Mechanisms 435
Securing Containers 439
Securing the GlassFish Server 440
Working with Realms, Users, Groups, and Roles 441
Establishing a Secure Connection Using SSL 449
Further Information about Security 454
Chapter 24: Getting Started Securing Web Applications 455
Overview of Web Application Security 455
Securing Web Applications 457
Using Programmatic Security with Web Applications 469
Examples: Securing Web Applications 474
Chapter 25: Getting Started Securing Enterprise Applications 485
Securing Enterprise Beans 486
Examples: Securing Enterprise Beans 496
Securing Application Clients 504
Securing Enterprise Information Systems Applications 506
Part VIII: Java EE Supporting Technologies 511
Chapter 26: Introduction to Java EE Supporting Technologies 513
Transactions 513
Resources 514
Chapter 27: Transactions 517
What Is a Transaction? 517
Container-Managed Transactions 518
Bean-Managed Transactions 524
Transaction Timeouts 525
Updating Multiple Databases 526
Transactions in Web Components 528
Further Information about Transactions 528
Chapter 28: Resource Connections 529
Resources and JNDI Naming 529
DataSource Objects and Connection Pools 530
Resource Injection 531
Resource Adapters and Contracts 534
Metadata Annotations 538
Common Client Interface 540
Further Information about Resources 541
Index 543