4 CHAPTER 1: Introducing Java Web Development
This book is based on some of the mainstream object-oriented JVM languages that were specifically
designed for the JVM, namely, Java, Groovy, and Scala.
Java EE
Java began life as a programming language designed for building stand-alone applications and grew
rapidly into other spheres. A large part of Java’s popularity can be attributed to its usage in creating
web applications. A web application consists of static and dynamic (interactive) web pages. Static
web pages contain various types of markup languages (HTML, XHTML, and so on) and are used, in
general, to provide information; dynamic web pages, on the other hand, are capable of generating
content with the aid of additional web components (covered in Chapter 2). Thus, a web application
is a collection of web pages and is capable of generating dynamic content in response to requests.
Unlike a web page used merely to provide information, a web application lets you perform some
activity and save the result. Developing a web application, however, is fundamentally different from
building stand-alone applications and requires you to understand the following three key elements:
The Java EE platform: This is the set of API specifications that are the building
blocks of the web application.
The web container: The web container implements the API specifications of
the Java EE platform. Specifically, the web container provides the services
for managing and executing web components such as servlets, JSPs, filters,
listeners, and render responses to the client. The web containers are covered in
Chapter 2.
Table 1-2. Languages Ported to the JVM
Languages Ported to JVM Description
JRuby^7 JRuby is a JVM reimplementation of the Ruby programming language. Ruby is a
dynamically typed OO language with some functional features.
Jython^8 Jython is a reimplementation of Python on the JVM, so it is a dynamic language.
Rhino^9 Rhino provides an implementation of JavaScript on the JVM. JavaScript is a
dynamically typed OO language.
(^7) http://jruby.org/
(^8) http://www.jython.org/
(^9) https://developer.mozilla.org/en-US/docs/Rhino_documentation
Note There are several types of containers, but this book will focus on the web container primarily used for
web applications. You have to choose the container based on the kind of application you want to develop.
Web components: These are hosted by the container. These web components,
such as servlets, JSPs, filters, and listeners, are covered in Chapter 2.