193 symposiums and 30,000 attendees since 2001

David Geary

Author of Graphic Java, co-author of Core JSF, member of the JSF Expert Group

David Geary is the president of Clarity Training, Inc. (corewebdevelopment.com), where he teaches developers to implement web applications using JavaServer Faces (JSF) and the Google Web Toolkit (GWT).

A prominent author, speaker, and consultant, David holds a unique qualification as a Java expert: He wrote the best-selling books on both Java component frameworks: Swing and JavaServer Faces. David's Graphic Java Swing was the best-selling Swing book, and is one of the best-selling Java books of all-time, and Core JSF, which David wrote with Cay Horstman, is the best-selling book on JavaServer Faces.

David was one of a handful of experts on the JSF 1.0 Expert Group (EG) that actively defined the standard Java-based web application framework, and David is currently on the JSF 2 Expert Group, helping to vastly improve JSF in version 2.

Besides serving on the JSF and JSTL Expert Groups, David has contributed to open-source projects and he has written questions for two of Sun's Certification Exams: Web Developer Certification and JavaServer Faces Certification. He invented the Struts Template library which was the precursor to Tiles, a popular framework for composing web pages from JSP fragments, was the 2nd Struts committer and contributed to the Apache Shale project.

David has spoken at more than 100 NFJS symposiums since 2003, and he also speaks at other conferences such as TheServerSide Java Symposium, JavaOne, JavaPolis, and JAOO. David has taught at Java University for the past three years, and is a three-time JavaOne rock star.

Presentations

Flex for Java Developers

An introduction to Flex for Java developers.

Want to develop expressive web applications? Them come to this session and see what Adobe's Flex is all about. Flex has lots of similarities to Java-based web development, so you'll find it easy to learn, and powerful to use. Come to this session if you want to take your web application user interface to the next level.

This session will cover:

An introduction to Flex ActionScript, HTTPService, and data binding Drag and drop Components View state Integrating with Java back ends

Ajax in the Clouds

Combine Ajax and cloud computing with Google's GWT, App Engine, and Speed Tracer to create and deploy compelling web applications.

This session shows you how to implement Ajaxified web applications that run in the Google cloud with Google's GWT and App Engine. We will also take a look at one of Google's newest applications--written with GWT--called Speed Tracer, that lets you monitor your web application's performance, regardless of what web framework you use.

JSF 2 Deep Dive: Templates and Composite Components

An in-depth look at two of JSF 2's most compelling features.

JSF 2 has two new features that make it easy to implement highly maintainable, flexible, and extensible user interfaces: Templates and Composite Components.

This session shows you how to implement JSF 2 views by encapsulating common view functionality in templates, and then defining your views using those templates. Encapsulating common view functionality in templates makes it trivial to create new views: you just specify how your view differs from the common functionality in the view's template.

You will also learn how to create Composite Components: components that you implement with a simple Facelet--without writing any Java code, and without specifying XML configuration. Composite components are arguably the single most important feature in JSF 2 because they make it easy to implement custom JSF components.

JSF 2 Deep Dive: Ajax

An in-depth look at JSF 2's built-in Ajax.

JSF 2 comes with built-in support for Ajax, in the form of a JavaScript library and a Facelet tag, that make it easy to implement Ajax in your JSF applications.

In this session, I will show you how JSF 2 deeply integrates Ajax into the framework. I will also show you how to implement several common Ajax use cases, such as field-level validation, and showing progress indicators. I will also show you how to use the JSF 2 JavaScript API for Ajax directly, along with several other Ajax tricks, such as coalescing events, and namespacing your JavaScript functions.

At the end of this session, you will understand how JSF 2's built-in Ajax works, and how you can make the most of it.

What's New in JSF 2

An overview of the new features in JSF 2.

JSF 1.0 was developed in an Ivory Tower, and the results were less than spectacular.

But after the release of JSF 1.0, JSF went through a 5 year period that saw an explosion of great open-source software based on JSF, such as: Facelets, Ajax4jsf, JSF Templating, ICEFaces, Seam, etc.

At the end of 2009, JSF 2.0 was released, and instead of being developed in an Ivory Tower, JSF 2.0 was built on the proven open-source technologies listed above; in fact, many of the developers of those frameworks, including Gavin King (Seam), and Alexander Smirnov (Ajax4jsf) were on the JSF 2.0 Expert Group.

Because JSF 2.0, unlike JSF 1, was built on proven technologies, JSF 2.0 represents an astounding leap over JSF 1. JSF 2.0 is a major overhaul to JSF that makes JSF much easier to use, and much more powerful.

In this session, I will cover the major features of JSF 2.0, including bookmarkable URLs, resource handling, project stage, simplified navigation, and JSF 2.0's new event system.

What's New in GWT 2.0

An overview of the new features in GWT 2.0.

As skeptics turn into converts at Google, GWT is behind more high profile rich UIs such as Google Wave, Google Ad-sense, and Speed Tracer.

Wave and Speed Tracer were implemented with GWT. In version 2.0, which represents a major leap forward for Google Web Toolkit, GWT sports new features such as: include declarative UI definitions in HTML and CSS instead of pure Java code, code splitting, where you tell GWT to defer downloading JavaScript code until it's needed, and integration with Speed Tracer, which graphically shows your application's performance bottlenecks.

Come to this session to see why Google is increasingly betting some of their own future on GWT, which catapult this framework to the upper echelon of Ajax-based web application frameworks.

MVP: The retro future of UI design

An introduction to the Model/View/Presenter design pattern.

UI development is deceptively difficult. For simple examples, and of course demos, you can quickly whip together a UI for some simple thing like a temperature converter, with a modern wysiwyg widget editor.

But as you know, that ease of use does not scale well. For complicated architectures, implementing a flexible, and highly extensible user interface is no easy task. In this session we'll see how you can use the Model / View / Presenter design pattern to create user interfaces that you can easily bend to your will, and perhaps most importantly, easily unit test.

This session starts with an overview of MVP, and then dives into a live-coding example that uses the gwt-presenter and gwt-dispatch libraries. The code is GWT-based, but you can apply the concepts to any user interface framework.

Flex and Java: Integrating two hot technologies

Learn how to combine the best of both worlds: Flex on the front end, and Java on the server.

Flex is a compelling, and incredibly well-supported web application framework from Adobe that gives you Flash capabilities. Flex is great for developing rich user interfaces that run in a browser, or on the desktop.

But you probably don't want to throw out your substantial investment in Java, and you may want to take advantage of all the server-side power that Java EE provides. In that case, come to this session to see how you can combine Flex on the client with Java on the server with Blaze DS

Spring + Guice = CDI

Gavin King says CDI "changes everything". Come see why.

CDI, which stands for Contexts and Dependency Injection, and was formerly known as Web Beans, is a potent mix of concepts from Spring and Google Guice.

CDI endows ordinary objects with dependency injection, aspect-oriented powers that let you implement, and separate, cross-cutting concerns, and event notification, where any object can notify any other object about events, regardless of the objects' types. You combine those features and more to create elegant, highly readable and extensible code with which you weave tapestries of complex systems.

CDI comes with JEE 6, but you can use it standalone, either in your JEE or JSE applications.

Closure Tools: Google's JavaScript Framework

See how you can use the JavaScript library used by Google Mail and Google Docs.

Google's Closure Tools is a framework for developing web applications in JavaScript. Closure Tools is used by Google Mail, Google Docs, and several other Google projects.

Closure Tools consists of: a JavaScript optimizer that compiles JavaScript into compact, high-performance code; Comprehensive widget library; and a simple, but very effective templating system.

Come to this talk for an introduction to this awesome JavaScript framework.


Books

by David Geary and Cay S. Horstmann

Core JavaServer Faces (3rd Edition) Buy from Amazon
List Price: $54.99
Price: $34.64
You Save: $20.35 (37%)
  • JSF is the standard Java EE technology for building web user interfaces. It provides a powerful framework for developing server-side applications, allowing you to cleanly separate visual presentation and application logic. JSF 2.0 is a major upgrade that not only adds many useful features but also greatly simplifies the programming model, by using annotations and “convention over configuration” for common tasks.

     

    To help you quickly tap into the power of JSF 2.0, the third edition of Core JavaServer™ Faces has been completely updated to make optimum use of all the new features. The book includes three totally new chapters on using Facelets tags for templating, building composite components, and developing Ajax applications.

     

    Without requiring any knowledge of servlets or other low-level “plumbing,” Geary and Horstmann show you how to build robust applications with minimal handcoding and maximum productivity.

     

    The first half of the book thoroughly explains the basic building blocks, from using standard JSF tags to working with data tables and converting and validating input.

     

    Advanced tasks such as event handling, extending the JSF framework, and connecting to external services are covered in the second half of the book. The final chapter provides solutions to a variety of common challenges, including notes on debugging and troubleshooting, in addition to implementation details and working code for features that are missing from JSF.

     

    The third edition also features more proven solutions, hints, tips, and "how-tos" that show you how to use JSF effectively in your development projects.

     

    Core JavaServer™ Faces provides everything you need to master the powerful and time-saving features of JSF 2.0 and is the perfect guide for programmers developing Java EE 6 web apps on Glassfish or other Java EE 6 compliant application servers, as well as servlet runners such as Tomcat 6.


by David Geary and Rob Gordon

Google Web Toolkit Solutions: More Cool & Useful Stuff Buy from Amazon
List Price: $44.99
Price: $24.24
You Save: $20.75 (46%)
  • Cu>

     

    Google Web Toolkit (GWT) is an open source Java development framework for building Ajax-enabled web applications. Instead of the hodgepodge of technologies that developers typically use for Ajax–JavaScript, HTML, CSS, and XMLHttpRequest–GWT lets developers implement rich client applications with pure Java, using familiar idioms from the AWT, Swing, and SWT. GWT goes beyond most Ajax frameworks by making it easy to build desktop-like applications that run in the ubiquitous browser, where the richness of the user interface is limited only by the developer’s imagination.

     

    This book focuses on the more advanced aspects of GWT that you need to implement real-world applications with rich user interfaces but without the heavy lifting of JavaScript and other Ajax-related technologies. Each solution in this practical, hands-on book is more than a recipe. The sample programs are carefully explained in detail to help you quickly master advanced GWT techniques, such as implementing drag-and-drop, integrating JavaScript libraries, and using advanced event handling methodologies.

     

    Solutions covered include

    •   Building custom GWT widgets, including both high-level composites and low-level components

    •   Implementing a viewport class that includes iPhone-style automated scrolling

    •   Integrating web services with GWT applications

    •   Incorporating the Script.aculo.us JavaScript framework into GWT applications

    •   Combining Hibernate and GWT to implement database-backed web applications

    •   Extending the GWT PopupPanel class to implement a draggable and resizable window

    •   Creating a drag-and-drop module, complete with drag sources and drop targets

    •   Deploying GWT applications to an external server

    •   Dynamically resizing flex tables

    •   Using GWT widgets in legacy applications developed with other frameworks, such as Struts and JavaServer Faces

     

    Complete Sample Code Available at www.coolandusefulgwt.com

     

    All of the code used in this book has been tested, both in hosted and web modes, and in an external version of Tomcat (version 5.5.17), under Windows, Linux, and Mac OS X. For Windows and Linux, we used 1.4.60, and for the Mac we used 1.4.61.  NOTE: There are three separate versions of the code. Please download the correct JAR file for the operating system you are using.




    Foreword xiii

    Preface xvi

    Acknowledgments xviii

    About the Authors xix

     

    Solution 1: GWT Fundamentals and Beyond 1

    Solution 2: JavaScript Integration 53

    Solution 3: Custom Widget Implementation 71

    Solution 4: Viewports and Maps 103

    Solution 5: Access to Online Web Services 133

    Solution 6: Drag and Drop 167

    Solution 7: Simple Windows 199

    Solution 8: Flex Tables 237

    Solution 9: File Uploads 283

    Solution 10: Hibernate Integration 303

    Solution 11: Deployment to an External Server 325

    Solution 12: GWT and Legacy Code 343

    Index 371



     


     


by David Geary

Core JSTL: Mastering the JSP Standard Tag Library Buy from Amazon
List Price: $49.99
Price: $34.21
You Save: $15.78 (32%)
  • Core JSTL is an in-depth examination of the JavaServer Pages Standard Tag Library (JSTL), which provides a standard set of custom tags--including tags for iteration, accessing URLs, database access, internationalization, and the manipulation and transformation of XML documents--that Web page authors and software developers can use to develop Web sites. The book illustrates JSTL's capabilities with lots of code snippet and examples. These examples are creative and practical combinations of tags you can use right now! An advanced part of the book covers JSTL configuration and integration of Java code with JSTL. JSTL defines an expression language that facilitates Web site development by providing an alternative to Java code in Web pages. The JSTL expression language also allows easy access to data such as request parameters and attributes, cookies, and HTML headers. Core JSTL examines all aspects of this powerful new addition to the JavaServer Pages standard, and is written for page authors and software developers alike. JSTL is a Java standard for developing dynamic web sites. It gives non-programmers access to powerful operations through HTML-like tags.

by David M. Geary

Advanced JavaServer Pages Buy from Amazon
Price: $44.99
  • Aimed at the more experienced Java Web developer, Advanced JavaServer Pages covers leading-edge techniques for writing more maintainable Web applications in Java. Stressing custom tag libraries and other reusable components, this book is all you need to take your programming skills to the next level.

    There are any number of good introductory texts on JavaServer Pages. This title distinguishes itself with techniques recommended by Sun for building better Web applications. Backed up by the author's own collection of custom tag libraries, which allow ordinary Web designers to program with tags instead of Java code, this text covers all the bases from getting started with tags to more advanced techniques. Early examples of tag libraries include a variety of ways to validate data in HTML forms. Throughout, the book deftly describes installing tag libraries, and shows how HTML designers can use custom tags after Java developers have created them.

    Readers also get best practices for JSP and Beans, which is a big plus. Author David Geary presents both Model 1 and Model 2 architectures. (In Model 1, JavaBeans are used to present data to front-end JSPs. In Model 2, a more sophisticated set of Java classes using the Model-View-Controller design pattern allows even greater flexibility.) Sample code for using JSP and JavaBeans for internationalized code (including French, German, and Chinese) will show you how to take your Web application to worldwide markets. The book concludes with a working case study of an online fruit stand (using several languages) and applies the techniques presented earlier on.

    All in all, with its mix of practical advice and some very useful techniques for getting the most out of JSP and Java for Web applications, Advanced JavaServer Pages fills a valuable niche for any serious Java developer who wants to see some of the best ways to create Web applications today. --Richard Dragan

    Topics covered:

    • Custom tag tutorial (including JSP and TLD files)
    • The tag life cycle
    • Tag attributes
    • Tag classes
    • Body tag handlers
    • Scripting variables
    • Nested tags
    • HTML forms and JavaBeans
    • Validating form data with Beans and custom tags
    • Templates and custom tags for defining regions within Web pages
    • Model 1 and Model 2 basics
    • Sample classes and tags for Model 2 framework (including samples for managing logins)
    • Event handling
    • Sensitive form resubmissions
    • Internationalization techniques (including resource bundles and locales)
    • Security issues (including basic, digest, form-based, and SSL authentication)
    • Custom tags for JDBC database programming
    • Database connection pooling, XML, and JavaBeans
    • The Simple API for XML (SAX)
    • The Document Object Model (DOM) and custom tags for these APIs
    • XSLT and XML
    • Case study for an internationalized online fruit stand
    • Appendix on Servlet filters and the Servlet 2.3 specification

by David Geary

Graphic Java 2, Volume 2, Swing (3rd Edition) (Sun Microsystems Press Java Series) Buy from Amazon
List Price: $69.99
Price: $44.09
You Save: $25.90 (37%)
  • If you're developing software that will be used by a large group of people, you need to give it a good-looking front-end--in Java 2, that means you have to use Swing. An excellent resource, Graphic Java 2: Mastering the JFC, Third Edition (Volume 2: Swing) takes on the Swing components one at a time and shows you how to incorporate them into attractive, efficient programs.

    In many ways, Graphic Java 2 is a cookbook. You search the table of contents or index for a reference to the kind of problem you want to solve, then examine the author's examples for the solution (or at least some clues to it). This is the book to turn to if you're wondering how to implement the JComboBox.KeySelectionManager interface (which enables users to select items in a combo box) or compare the various ways of making the JTree component into a file browser. Those are just two of hundreds of examples in David Geary's book.

    While most examples don't serve any practical purpose by themselves, they do clearly illustrate how a specific aspect of Swing works. It's easy to adapt the details presented here into your own programs. Geary shows consideration for the reader by presenting all his examples as programs that can be compiled and including them on the enclosed CD-ROM. --David Wall


by David M. Geary

Graphic Java 1.2, Volume 1: AWT, Third Edition Buy from Amazon
List Price: $49.99
Price: $36.49
You Save: $13.50 (27%)
  • Java developers know that the Abstract Windowing Toolkit (AWT) is still an effective way to build functional user interfaces, whether inside Web browsers or in stand-alone applications. David Geary's guide to AWT programming in Graphic Java 1.2 shows you all the basics of AWT newly refitted for the new Java Developer's Kit (JDK) 1.2 standard from Sun, including some excellent 2-D animation examples.

    After introducing the basics of the AWT library, the author looks at simple painting and 2-D graphics. Standout sections here look at displaying images--a staple of Internet programming--as well as transforming images with "filters" (such as dimming and rescaling an image). Graphic Java 1.2 shows you a variety of advanced techniques for getting control of your bit-mapped content. The tour of Java graphics capabilities moves on with coverage of layout managers and basic AWT components such as buttons, text fields, lists, and choices. For those who want to create stand-alone Java applications, there's much material on using Java menus.

    The book's advanced material highlights new features of JDK 1.2, such as its support for lightweight controls, built-in double-buffering support, and advanced "native-style" operations (such as clipboard support and "rubber-banding" classes). The author also shows off his custom classes for 2-D sprite animation. --Richard Dragan