Professional Java for Web Applications - Nicholas S. Williams

Professional Java for Web Applications

Buch | Softcover
944 Seiten
2014
Wrox Press (Verlag)
978-1-118-65646-4 (ISBN)
54,89 inkl. MwSt
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.
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. You'll begin with an introduction to the Java Enterprise Edition and the basic web application, then set up a development application server environment, learn about the tools used in the development process, and explore numerous Java technologies and practices. The book covers industry-standard tools and technologies, specific technologies, and underlying programming concepts.



Java is an essential programming language used worldwide for both Android app development and enterprise-level corporate solutions
As a step-by-step guide or a general reference, this book provides an all-in-one Java development solution
Explains Java Enterprise Edition 7 and the basic web application, how to set up a development application server environment, which tools are needed during the development process, and how to apply various Java technologies
Covers new language features in Java 8, such as Lambda Expressions, and the new Java 8 Date & Time API introduced as part of JSR 310, replacing the legacy Date and Calendar APIs
Demonstrates the new, fully-duplex WebSocket web connection technology and its support in Java EE 7, allowing the reader to create rich, truly interactive web applications that can push updated data to the client automatically
Instructs the reader in the configuration and use of Log4j 2.0, Spring Framework 4 (including Spring Web MVC), Hibernate Validator, RabbitMQ, Hibernate ORM, Spring Data, Hibernate Search, and Spring Security
Covers application logging, JSR 340 Servlet API 3.1, JSR 245 JavaServer Pages (JSP) 2.3 (including custom tag libraries), JSR 341 Expression Language 3.0, JSR 356 WebSocket API 1.0, JSR 303/349 Bean Validation 1.1, JSR 317/338 Java Persistence API (JPA) 2.1, full-text searching with JPA, RESTful and SOAP web services, Advanced Message Queuing Protocol (AMQP), and OAuth

Professional Java for Web Applications is the complete Wrox guide for software developers who are familiar with Java and who are ready to build high-level enterprise Java web applications.

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.

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

Erscheint lt. Verlag 4.4.2014
Sprache englisch
Maße 188 x 234 mm
Gewicht 1588 g
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Mathematik / Informatik Informatik Web / Internet
ISBN-10 1-118-65646-6 / 1118656466
ISBN-13 978-1-118-65646-4 / 9781118656464
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich