Jason Hunter
Author of Java Servlet Programming

Jason Hunter is Principal Technologist with Mark Logic, specializing in large-scale XML content manipulation using XQuery. He's probably best known as the author of "Java Servlet Programming" (O'Reilly Media). He's also an Apache Member and as Apache's representative on the Java Community Process Executive Committee he established a landmark agreement allowing open source Java. He's publisher of Servlets.com and XQuery.com, an original contributer to Apache Tomcat (and Apache Ant committer), the creator of the JDOM open source project, a member of the expert groups responsible for Servlet, JSP, JAXP, and XQJ API development, and was recently appointed Sun Java Champion. In 2003, he received the Oracle Magazine Author of the Year award, and in both 2005 and 2006, the JavaOne Outstanding Talk award. His largest audience was 15,000 at a JavaOne conference keynote.
Presentations
Open Source from the Inside
Open source isn't about a license, it's about human interaction and individual motivation. I've seen open source from all sides. I've been an individual contributor and a project leader. I've worked on commercial and open source efforts, and have both helped commercial projects go open and designed ways for open projects to absorb commercial codebases. I've been on the front lines in the Apache/Sun negotiations on open source Java that ended on the JavaOne keynote stage with Scott McNealy. In this talk, I'd like to share my favorite stories in and around open source and the lessons they teach us.
What it was like to take the servlet engine Tomcat from a Sun internal project to an Apache open source project
How Jakarta changed Apache's character
How not to think about Apache
The pros and cons of leading the JDOM project
Why JDOM is not part of Apache
Why my latest coding work isn't open source
How companies can best utilize open source and open source ideas
The past, present, and future of open source Java
Forgotten Web Algorithms
In this talk I'll explain -- without any needless math or boring proofs -- several fun algorithms of interest to back-end web programmers. Each algorithm was selected because it's really practical, really interesting, or both. The algorithms aren't always the same but can include: public key cryptography, credit card checksum validation, TCP Slow Start, two's complement, priority queues, the XOR swap, and the Google MapReduce function for massively distributed calculation.
Attendees need only come with a curiosity about the algorithms that go into the programs we use every day.
New Features in Java 5
The new Java 5 release introduces a number of significant Java language enhancements: generics, typesafe enums, autoboxing, an enhanced "for" loop, a static import facility, and a general-purpose metadata facility. This talk gives an overview of the changes and helps you understand what all the funny new syntax means.
The main new language topics covered:
Generics, also called "parameterized types", which let you specify the type of objects used in a collection, among many other things.
Autoboxing, that lets you implicitly convert from primitives to reference types, and vice-versa.
An Enhanced For Loop, that lets you iterate over arrays or collections with half the code as before.
Typesafe Enums, to create object-oriented, extensible enumerated values.
Static Imports, to put into scope static methods and fields.
Varargs, that allows methods to accept an arbitrary number of parameters.
A Metadata Facility, allowing decoration to classes and methods for later tool consumption. Covered in more depth in the "Java Metadata" talk.
Random new Library Features, like the ability to control external process launching, output formatting, and input scanning.
This talk describes the proposed changes and shows how they work together to improve the Java language. We also take breaks to see how closely Java matches the C# designs!
Attendees are assumed to be competent Java programmers.
Greasemonkey: Ajax For One
Greasemonkey is a Firefox extension with a hook to let you run your own JavaScript after each page loads. People have written hundreds of Greasemonkey scripts, each using Ajax techniques, to do everything from making a static page dynamic to changing a page's style to integrating comparison pricing on Amazon pages and giving Google search results easy keyboard shortcuts. Greasemonkey lets you take back control of the web browsing experience -- and teaches you Ajax while you're at it.
In this talk we'll look at about a dozen useful Greasemonkey scripts. Each script provides a benefit in its own right, but like good engineers we'll dissect them to see what makes them tick.
Some scripts we'll cover:
- Tracing XMLHttpRequest activity on a page
- Avoiding the Slashdot effect with auto-links to mirrors
- Replacing a page's CSS design
- Making hidden form fields visible in the page
- Auto refreshing pages
- Browsing the web through Google's cache
- Adding keyboard shortcuts to Google's search results
- Auto-selecting ad-free print versions of online articles
- Working around Google's protection of Google Book Search images
- Comparing book prices inline
- Downloading all the images behind thumbnails
- Using Platypus for graphical page editing of pages you don't own!
Attendees leave this talk having more power over their web browsing and a great tool to get going with Ajax for one.
What's New in Java 6
The Java 6 (Mustang) release should make your life easier, for a change. It doesn't alter the core language like Java 5 did. It doesn't pack in so many sub-JSRs that you'll be overwhelmed by the amount you have to learn. Instead Java 6 adds several handy things that honestly should have been added before. Among the improvements we'll cover in this fast-paced class:
- A new Console class
- A real Compiler API
- A GIF writer
- Pluggable Locale data
- Access to disk partition size data
- Array reallocation
- Low-level floating point functions
- Reflective access to parameter names
- Access to network interface details
- Pluggable annotation processing
- Improved class file format
- Streaming XML with StAX
- A new Scripting interface
With Sun developing Java 6 in public, you can not only learn about these changes but provide feedback as well.
Web Publishing 2.0
If we're moving toward Web 2.0, what does that mean for online publishing? In this talk I'll answer that question. Based on my experience as Principal Technologist at Mark Logic working with dozens of the largest online publishers, I'll present a vision for how the Web 2.0 concepts like personalization, collective intelligence, the long tail, and the importance of "owning the data" can and should reshape the face of online publishing -- and how XML, XQuery, and XML-aware text search act as the key enablers. I'll also introduce new Web Publishing 2.0 concepts like "Sweat the content" and "Give answers not links".
(Not content to be a windbag, I'll use practical examples and demos to help get the points across.)
XQuery By Example: Building an Email Archive System
The classic searchable email archive system is cluged together -- a frankenstein monster combining a relational database with a search engine, with Java just barely able to keep the two together. In this talk we'll demonstrate how email is more content than data, how it's better encoded in XML rather than relational tables, and how Java can convert emails to XML and drive an XQuery backend to produce a simpler and more scalable email archive system.
Attendees should be familiar with XML and have an interest in text search and back-end architecture design.
Books
Appin: JAVA, J2EE, JSP, JAVA SERVLETS, Computer Based Training (CBT) (JAVA: Real-Time Java Platform Programming, Version 4.1)
by
-
-COURSE HIGHLIGHTS
*Introduction to Java
*Java is Object Oriented
*Java Base System and Libraries
*Object-Oriented Programming Concepts
*What Is an Exception?
*What Is a Thread?
*What is GUI (Graphical User Interface)
*Creating a User Interface
*JDBC(TM) Database Access
*RMI
*Java Servlets
*Overview
*Introduction to J2EE
*Enterprise Beans
*Getting Started with Enterprise Beans
-COURSE DETAILS
-Introduction to Java
*The Java Programming Language
*The Java Platform
*The Java Virtual Machine
*The Java Platform--a New Approach to Distributed Computing
*of the Java TM Programming Language
* Primitive Data TypesArithmetic and Relational Operators
*Arrays
*Strings
*Memory Management and Garbage Collection
*The Background Garbage Collector
*Integrated Thread Synchronization
-Java is Object Oriented
*Object Technology in Java
*What are Classes ?
*Subclasses
*Java Language Interfaces
*Access Control
*Packages
*Class Variables and Class Methods
*Abstract Methods
*The Java Language Compared
-Java Base System and Libraries
*Java Language Classes
*Input Output Package
*Utility Package
*Abstract Window Toolkit
*Creating Your First Application
*Language Basics
*Data Types
*Variable Names
*Scope
*Variable Initialization
*Operators
*Arithmetic Operators
*Relational and Conditional Operators
*Expressions, Statements, and Blocks
*Control Flow Statements
-Object-Oriented Programming Concepts
*What Is an Object?
*What Is a Message?
*What Is a Class?
*What Is Inheritance?
*Encapsulation
*Overloading and Recursion
*Polymorphism
*Interfaces and Packages
*Creating and Using Interfaces
*Creating and Using Packages
*Handling Errors with Exceptions
-What Is an Exception?
*How to Throw Exceptions
*Threads: Doing Two or More Tasks At Once
-What Is a Thread?
*Testing Thread State
*Thread Scheduling
Java Enterprise Best Practices
by Robert Eckstein and J. Steven Perry
-
Java developers typically go through four "stages" in mastering Java. In the first stage, they learn the language itself. In the second stage, they study the APIs. In the third stage, they become proficient in the environment. It is in the fourth stage --"the expert stage"-- where things really get interesting, and Java Enterprise Best Practices is the tangible compendium of experience that developers need to breeze through this fourth and final stage of Enterprise Java mastery.
Crammed with tips and tricks, Java Enterprise Best Practices distills years of solid experience from eleven experts in the J2EE environment into a practical, to-the-point guide to J2EE.
Java Enterprise Best Practices gives developers the unvarnished, expert-tested advice that the man pages don't provide--what areas of the APIs should be used frequently (and which are better avoided); elegant solutions to problems you face that other developers have already discovered; what things you should always do, what things you should consider doing, and what things you should never do--even if the documentation says it's ok.
Until Java Enterprise Best Practices, Java developers in the fourth stage of mastery relied on the advice of a loose-knit community of fellow developers, time-consuming online searches for examples or suggestions for the immediate problem they faced, and tedious trial-and-error. But Java has grown to include a huge number of APIs, classes, and methods. Now it is simply too large for even the most intrepid developer to know it all. The need for a written compendium of J2EE Best Practices has never been greater.
Java Enterprise Best Practices focuses on the Java 2 Enterprise Edition (J2EE) APIs. The J2EE APIs include such alphabet soup acronyms as EJB, JDBC, RMI, XML, and JMX.
Java Servlet Programming (Java Series)
by Jason Hunter and William Crawford
-
Aimed at Web developers with some previous Java experience, Java Servlet Programming, Second Edition, offers a solid introduction to the world of Java development with Servlets and related technologies. Thoroughly revised and newly updated with over a half-dozen new chapters, this title brings an already useful text up to speed with some leading-edge material. It excels particularly in explaining how to program dynamic Web content using Java Servlets, with a fine introduction to all the APIs, programming techniques, and tips you will need to be successful with this standard.
Besides a useful guide to APIs, the book looks at a variety of techniques for saving session state, as well as showing how Servlets can work together to power Web sites. You will learn performance tips and ways to get Servlets to work together (like forwarding and redirection), plus the basics of database programming with JDBC, to build content with "live" data. A later chapter examines what's next for Servlets with the emerging Servlet 2.3 API standard. Importantly, the authors go over deploying and configuring Web applications by editing XML files, a must-have for successfully running Servlets in real applications.
Since the first edition of this title, the choices for Java Web developers have grown much richer. Many of the new chapters in this edition look at options beyond Servlets. Short sections on application frameworks such as Tea, WebMacro, the Element Construction Set (ECS), XMLC, and JavaServer Pages (JSP) let you explore what's out there for Java developers today with a survey of some current tools that can speed up creating new Web applications.
The text closes with reference sections on Servlet APIs (and other material) that will be useful for any working developer. Although Servlets are not the only game in town, they are still important tools for successful Web development. This updated edition shows you just how to do it with plenty of basic and advanced tips for taking full advantage of this powerful Java standard. --Richard Dragan
Topics covered:
- Overview and history of Java Servlets
- Fundamentals of HTTP
- Web applications (including deployment and configuration using XML files)
- The Servlet lifecycle (initializing, processing requests, cleanup, and caching)
- Multimedia content (images and compressed content)
- WAP and WML for wireless content
- Servlet session tracking techniques (hidden form fields, cookies, and URL rewriting)
- Security issues with Servlets (including certificates and SSL)
- Tutorial for JDBC and Java database programming
- Using applets and Servlets together
- Servlet collaboration
- Quick introduction to Java 2 Enterprise Edition (J2EE)
- Internationalization issues
- Survey of third-party Servlet application frameworks and tools: Tea, WebMacro, the Element Contruction Set (ECS), XMLC, and JavaServer Pages (JSP)
- Miscellaneous tips for Servlets (including sending e-mail and using regular expressions)
- Description of the new Servlet 2.3 API spec
- Servlet API quick reference

