Description

Book Synopsis
The comprehensive Wrox guide for creating Java web applications for the enterprise This guide shows Java software developers and software engineers how to build complex web applications in an enterprise environment.

Table of Contents

Introduction xxiii

Part I: Creating Enterprise Applications

Chapter 1: Introducing Java Platform, Enterprise Edition 3

A Timeline of Java Platforms 3

Understanding the Basic Web Application Structure 13

Summary 18

Chapter 2: Using Web Containers 19

Choosing a Web Container 19

Installing Tomcat on Your Machine 23

Deploying and Undeploying Applications in Tomcat 27

Debugging Tomcat from Your IDE 30

Summary 39

Chapter 3: Writing Your First Servlet 41

Creating a Servlet Class 42

Configuring a Servlet for Deployment 46

Understanding doGet(), doPost(), and Other Methods 51

Using Parameters and Accepting Form Submissions 56

Configuring your Application Using Init Parameters 61

Uploading Files from a Form 64

Making Your Application Safe for Multithreading 69

Summary 71

Chapter 4: Using JSPs to Di splay Content 73


is Easier Than output.println(“
”) 74

Creating Your First JSP 78

Using Java within a JSP (and Why You Shouldn’t!) 88

Combining Servlets and JSPs 94

A Note about JSP Documents (JSPX) 102

Summary 104

Chapter 5: Maintaining State Using Sessions 105

Understanding Why Sessions are Necessary 106

Using Session Cookies and URL Rewriting 107

Storing Data in a Session 116

Applying Sessions Usefully 129

Clustering an Application That Uses Sessions 139

Summary 142

Chapter 6: U sing the Expression Language in JSPs 143

Understanding Expression Language 144

Writing with the EL Syntax 147

Using Scoped Variables in EL Expressions 160

Accessing Collections with the Stream API 167

Replacing Java Code with Expression Language 172

Summary 175

Chapter 7: U sing the Java Standard Tag Library 177

Introducing JSP Tags and the JSTL 178

Using the Core Tag Library (C Namespace) 182

Using the Internationalization and Formatting Tag Library (FMT Namespace) 193

Using the Database Access Tag Library (SQL Namespace) 203

Using the XML Processing Tag Library (X Namespace) 205

Replacing Java Code with JSP Tags 205

Summary 208

Chapter 8: Writing Custom Tag and Function Libraries 209

Understanding TLDs, Tag Files, and Tag Handlers 210

Creating Your First Tag File to Serve as an HTML Template 219

Creating a More Useful Date Formatting Tag Handler 221

Creating an EL Function to Abbreviate Strings 226

Replacing Java Code with Custom JSP Tags 227

Summary 232

Chapter 9: Improving Your Application Using Filters 233

Understanding the Purpose of Filters 234

Creating, Declaring, and Mapping Filters 235

Ordering Your Filters Properly 239

Investigating Practical Uses for Filters 247

Simplifying Authentication with a Filter 254

Summary 255

Chapter 10: Making Your Application Interactive with WebSockets 257

Evolution: From Ajax to WebSockets 258

Understanding the WebSocket APIs 268

Creating Multiplayer Games with WebSockets 273

Using WebSockets to Communicate in a Cluster 284

Adding “Chat with Support” to the Customer Support Application 288

Summary 296

Chapter 11: Using Logging to Monitor Your Application 297

Understanding the Concepts of Logging 298

Using Logging Levels and Categories 303

Choosing a Logging Framework 305

Integrating Logging into Your Application 312

Summary 320

Part II: Adding Spring Framework Into the Mix

Chapter 12: Introducing Spring Framework 323

What is Spring Framework? 324

Why Spring Framework? 326

Understanding Application Contexts 327

Bootstrapping Spring Framework 329

Configuring Spring Framework 336

Utilizing Bean Definition Profiles 349

Summary 353

Chapter 13: Replacing Your Servlets with Controllers 355

Understanding @RequestMapping 356

Using Spring Framework’s Model and View Pattern 370

Making Your Life Easier with Form Objects 380

Updating the Customer Support Application 384

Summary 387

Chapter 14: Using Services and Repositories to Support Your Controllers 389

Understanding Model-View-Controller Plus Controller-Service-Repository 390

Using the Root Application Context Instead of a Web Application Context 394

Improving Services with Asynchronous and Scheduled Execution 404

Applying Logic Layer Separation to WebSockets 409

Summary 416

Chapter 15: Internationalizing Your Application with Spring Framework i18n 417

Why Do You Need Spring Framework i18n? 418

Using the Basic Internationalization and Localization APIs 419

Configuring Internationalization in Spring Framework 424

Internationalizing Your Code 430

Summary 440

Chapter 16: Using JSR 349, Spring Framework, and Hibernate Validator for Bean Validation 441

What is Bean Validation? 442

Configuring Validation in the Spring Framework Container 445

Adding Constraint Validation Annotations to Your Beans 450

Configuring Spring Beans for Method Validation 458

Writing Your Own Validation Constraints 466

Integrating Validation in the Customer Support Application 470

Summary 472

Chapter 17: Creating RESTful and SOAP Web Services 473

Understanding Web Services 474

Configuring RESTful Web Services with Spring MVC 484

Testing Your Web Service Endpoints 496

Using Spring Web Services for SOAP 500

Summary 508

Chapter 18: Using Messaging and Clustering for Flexibility and Reliability 509

Recognizing When You Need Messaging and Clustering 510

Adding Messaging Support to your Application 520

Making your Messaging Distributable Across a Cluster 525

Distributing Events with AMQP 534

Summary 540

Part III: Persisting Data with JPA and Hibernate ORM

Chapter 19: Introducing Java Persistence API and Hibernate ORM 543

What is Data Persistence? 543

What is an Object-Relational Mapper? 547

A Brief Look at Hibernate ORM 552

Preparing a Relational Database 559

A Note About Maven Dependencies 564

Summary 564

Chapter 20: Mapping Entities to Tables with JPA Annotations 565

Getting Started with Simple Entities 566

Creating and Using a Persistence Unit 581

Mapping Complex Data Types 590

Summary 596

Chapter 21: Using JPA in Spring Framework Repositories 597

Using Spring Repositories and Transactions 598

Configuring Persistence in Spring Framework 602

Creating and Using JPA Repositories 610

Converting Data with DTOs and Entities 624

Summary 632

Chapter 22: Eliminating Boilerplate Repositories with Spring Data JPA 633

Understanding Spring Data’s Unified Data Access 634

Configuring and Creating Spring Data JPA Repositories 646

Refactoring the Customer Support Application 656

Summary 661

Chapter 23: Searching for Data with JPA and Hibernate Search 663

An Introduction to Searching 664

Using Advanced Criteria to Locate Objects 666

Taking Advantage of Full-Text Indexes with JPA 676

Indexing Any Data with Apache Lucene and Hibernate Search 684

Summary 692

Chapter 24: Creating Advanced Mappings and Custom Data Types 693

What’s Left? 694

Converting Nonstandard Data Types 695

Embedding POJOs Within Entities 699

Defining Relationships Between Entities 703

Addressing Other Common Situations 709

Creating Programmatic Triggers 717

Refining the Customer Support Application 720

Summary 725

Part IV: Securing Your Application with Spring Security

Chapter 25: Introducing Spring Security 729

What is Authentication? 729

Why Spring Security? 743

Summary 746

Chapter 26: Authenticating Users with Spring Security 747

Choosing and Configuring an Authentication Provider 748

Writing Your Own Authentication Provider 766

Summary 778

Chapter 27: Using Authorization Tags and Annotations 779

Authorizing by Declaration 780

Understanding Authorization Decisions 794

Creating Access Control Lists for Object Security 798

Adding Authorization to Customer Support 804

Summary 814

Chapter 28: Securing RESTful Web Services with OAuth 815

Understanding Web Service Security 816

Introducing OAuth 818

Using Spring Security OAuth 833

Finishing the Customer Support Application 840

Creating an OAuth Client Application 856

Summary 862

Index 865

Professional Java for Web Applications

    Product form

    £45.12

    Includes FREE delivery

    RRP £47.50 – you save £2.38 (5%)

    Order before 4pm today for delivery by Mon 29 Jun 2026.

    A Paperback / softback by Nicholas S. Williams

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Professional Java for Web Applications by Nicholas S. Williams

      Publisher: John Wiley & Sons Inc
      Publication Date: 04/04/2014
      ISBN13: 9781118656464, 978-1118656464
      ISBN10: 1118656466

      Description

      Book Synopsis
      The comprehensive Wrox guide for creating Java web applications for the enterprise This guide shows Java software developers and software engineers how to build complex web applications in an enterprise environment.

      Table of Contents

      Introduction xxiii

      Part I: Creating Enterprise Applications

      Chapter 1: Introducing Java Platform, Enterprise Edition 3

      A Timeline of Java Platforms 3

      Understanding the Basic Web Application Structure 13

      Summary 18

      Chapter 2: Using Web Containers 19

      Choosing a Web Container 19

      Installing Tomcat on Your Machine 23

      Deploying and Undeploying Applications in Tomcat 27

      Debugging Tomcat from Your IDE 30

      Summary 39

      Chapter 3: Writing Your First Servlet 41

      Creating a Servlet Class 42

      Configuring a Servlet for Deployment 46

      Understanding doGet(), doPost(), and Other Methods 51

      Using Parameters and Accepting Form Submissions 56

      Configuring your Application Using Init Parameters 61

      Uploading Files from a Form 64

      Making Your Application Safe for Multithreading 69

      Summary 71

      Chapter 4: Using JSPs to Di splay Content 73


      is Easier Than output.println(“
      ”) 74

      Creating Your First JSP 78

      Using Java within a JSP (and Why You Shouldn’t!) 88

      Combining Servlets and JSPs 94

      A Note about JSP Documents (JSPX) 102

      Summary 104

      Chapter 5: Maintaining State Using Sessions 105

      Understanding Why Sessions are Necessary 106

      Using Session Cookies and URL Rewriting 107

      Storing Data in a Session 116

      Applying Sessions Usefully 129

      Clustering an Application That Uses Sessions 139

      Summary 142

      Chapter 6: U sing the Expression Language in JSPs 143

      Understanding Expression Language 144

      Writing with the EL Syntax 147

      Using Scoped Variables in EL Expressions 160

      Accessing Collections with the Stream API 167

      Replacing Java Code with Expression Language 172

      Summary 175

      Chapter 7: U sing the Java Standard Tag Library 177

      Introducing JSP Tags and the JSTL 178

      Using the Core Tag Library (C Namespace) 182

      Using the Internationalization and Formatting Tag Library (FMT Namespace) 193

      Using the Database Access Tag Library (SQL Namespace) 203

      Using the XML Processing Tag Library (X Namespace) 205

      Replacing Java Code with JSP Tags 205

      Summary 208

      Chapter 8: Writing Custom Tag and Function Libraries 209

      Understanding TLDs, Tag Files, and Tag Handlers 210

      Creating Your First Tag File to Serve as an HTML Template 219

      Creating a More Useful Date Formatting Tag Handler 221

      Creating an EL Function to Abbreviate Strings 226

      Replacing Java Code with Custom JSP Tags 227

      Summary 232

      Chapter 9: Improving Your Application Using Filters 233

      Understanding the Purpose of Filters 234

      Creating, Declaring, and Mapping Filters 235

      Ordering Your Filters Properly 239

      Investigating Practical Uses for Filters 247

      Simplifying Authentication with a Filter 254

      Summary 255

      Chapter 10: Making Your Application Interactive with WebSockets 257

      Evolution: From Ajax to WebSockets 258

      Understanding the WebSocket APIs 268

      Creating Multiplayer Games with WebSockets 273

      Using WebSockets to Communicate in a Cluster 284

      Adding “Chat with Support” to the Customer Support Application 288

      Summary 296

      Chapter 11: Using Logging to Monitor Your Application 297

      Understanding the Concepts of Logging 298

      Using Logging Levels and Categories 303

      Choosing a Logging Framework 305

      Integrating Logging into Your Application 312

      Summary 320

      Part II: Adding Spring Framework Into the Mix

      Chapter 12: Introducing Spring Framework 323

      What is Spring Framework? 324

      Why Spring Framework? 326

      Understanding Application Contexts 327

      Bootstrapping Spring Framework 329

      Configuring Spring Framework 336

      Utilizing Bean Definition Profiles 349

      Summary 353

      Chapter 13: Replacing Your Servlets with Controllers 355

      Understanding @RequestMapping 356

      Using Spring Framework’s Model and View Pattern 370

      Making Your Life Easier with Form Objects 380

      Updating the Customer Support Application 384

      Summary 387

      Chapter 14: Using Services and Repositories to Support Your Controllers 389

      Understanding Model-View-Controller Plus Controller-Service-Repository 390

      Using the Root Application Context Instead of a Web Application Context 394

      Improving Services with Asynchronous and Scheduled Execution 404

      Applying Logic Layer Separation to WebSockets 409

      Summary 416

      Chapter 15: Internationalizing Your Application with Spring Framework i18n 417

      Why Do You Need Spring Framework i18n? 418

      Using the Basic Internationalization and Localization APIs 419

      Configuring Internationalization in Spring Framework 424

      Internationalizing Your Code 430

      Summary 440

      Chapter 16: Using JSR 349, Spring Framework, and Hibernate Validator for Bean Validation 441

      What is Bean Validation? 442

      Configuring Validation in the Spring Framework Container 445

      Adding Constraint Validation Annotations to Your Beans 450

      Configuring Spring Beans for Method Validation 458

      Writing Your Own Validation Constraints 466

      Integrating Validation in the Customer Support Application 470

      Summary 472

      Chapter 17: Creating RESTful and SOAP Web Services 473

      Understanding Web Services 474

      Configuring RESTful Web Services with Spring MVC 484

      Testing Your Web Service Endpoints 496

      Using Spring Web Services for SOAP 500

      Summary 508

      Chapter 18: Using Messaging and Clustering for Flexibility and Reliability 509

      Recognizing When You Need Messaging and Clustering 510

      Adding Messaging Support to your Application 520

      Making your Messaging Distributable Across a Cluster 525

      Distributing Events with AMQP 534

      Summary 540

      Part III: Persisting Data with JPA and Hibernate ORM

      Chapter 19: Introducing Java Persistence API and Hibernate ORM 543

      What is Data Persistence? 543

      What is an Object-Relational Mapper? 547

      A Brief Look at Hibernate ORM 552

      Preparing a Relational Database 559

      A Note About Maven Dependencies 564

      Summary 564

      Chapter 20: Mapping Entities to Tables with JPA Annotations 565

      Getting Started with Simple Entities 566

      Creating and Using a Persistence Unit 581

      Mapping Complex Data Types 590

      Summary 596

      Chapter 21: Using JPA in Spring Framework Repositories 597

      Using Spring Repositories and Transactions 598

      Configuring Persistence in Spring Framework 602

      Creating and Using JPA Repositories 610

      Converting Data with DTOs and Entities 624

      Summary 632

      Chapter 22: Eliminating Boilerplate Repositories with Spring Data JPA 633

      Understanding Spring Data’s Unified Data Access 634

      Configuring and Creating Spring Data JPA Repositories 646

      Refactoring the Customer Support Application 656

      Summary 661

      Chapter 23: Searching for Data with JPA and Hibernate Search 663

      An Introduction to Searching 664

      Using Advanced Criteria to Locate Objects 666

      Taking Advantage of Full-Text Indexes with JPA 676

      Indexing Any Data with Apache Lucene and Hibernate Search 684

      Summary 692

      Chapter 24: Creating Advanced Mappings and Custom Data Types 693

      What’s Left? 694

      Converting Nonstandard Data Types 695

      Embedding POJOs Within Entities 699

      Defining Relationships Between Entities 703

      Addressing Other Common Situations 709

      Creating Programmatic Triggers 717

      Refining the Customer Support Application 720

      Summary 725

      Part IV: Securing Your Application with Spring Security

      Chapter 25: Introducing Spring Security 729

      What is Authentication? 729

      Why Spring Security? 743

      Summary 746

      Chapter 26: Authenticating Users with Spring Security 747

      Choosing and Configuring an Authentication Provider 748

      Writing Your Own Authentication Provider 766

      Summary 778

      Chapter 27: Using Authorization Tags and Annotations 779

      Authorizing by Declaration 780

      Understanding Authorization Decisions 794

      Creating Access Control Lists for Object Security 798

      Adding Authorization to Customer Support 804

      Summary 814

      Chapter 28: Securing RESTful Web Services with OAuth 815

      Understanding Web Service Security 816

      Introducing OAuth 818

      Using Spring Security OAuth 833

      Finishing the Customer Support Application 840

      Creating an OAuth Client Application 856

      Summary 862

      Index 865

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account