xix
Introduction
This book is for a large cross section of modern Java web developers, with various levels of
experience.
Learning the Java programming language is a noble cause, but learning merely the Java language
is not enough in the real world. Java developers have to learn Java EE, a collection of related
server-side technologies, to put their Java skills to any real use.
But learning Java EE is not enough either. The Java language along with Java EE may suffice to
develop web applications for projects in the same organization, as a means to reusability, but the
diverse landscape of Java on the Web is permeated with several web frameworks, such as Spring
Web MVC, that make development much easier; thus, a Java web developer has to have the
knowledge of these web frameworks.
But this is not enough still. In the very first line of this introduction, I mentioned that this book is for
a modern Java web developer. Modern Java is more than just a language; it is now a fully optimized
platform because several other languages such as Groovy and Scala, called the JVM languages,
now run on the Java Virtual Machine (JVM). All such JVM languages, especially Groovy, have a close
association with Java, and you will come across web applications before long where Java and these
other JVM languages work in tandem. The most ambitious projects will require you to build web
applications using these JVM languages.
This book addresses all the needs of a modern Java web developer. It is designed for beginners up
to intermediate developers and explains the specifics of Java on the Web. For example, this book is
perfect for developers who are aware of technologies like MVC but do not yet understand how and
why they have changed the way web applications are built.
This book is also for developers who want to learn frameworks other than JSF 2 (which is bundled
with Java EE). This book covers four types of web frameworks: request based, component based,
rapid, and reactive. Among these four types, the book covers five proven web frameworks: Struts 2,
Spring Web MVC, JSF 2, Grails 2, and Play 2.
In addition, this book is for developers who have no experience in the Java, Groovy, and Scala
programming languages but who yearn to create web applications. This book provides the essentials
of these three languages in the appendixes.