COVID-19 Response at

Read what we're doing...

Professional Java for Web Applications


Product Description
Product Details

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

About the Author

Nicholas S. Williams is a recognized expert in Java and related technologies. In 2010, he was named Software Engineer of the Year for Middle Tennessee. Nick participates extensively in the Open Source community, contributing bug fixes, new features, and documentation to projects like Apache Log4J, Apache Tomcat, Jackson Mapper, Spring Framework, and Spring Security.

Ask a Question About this Product More...
Write your question below:
Look for similar items by category
How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 8% commission by selling Professional Java for Web Applications: Featuring Websockets, Spring Framework, JPA Hibernate, and Spring Security on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by Fishpond Retail Limited.
Back to top