Support free tutorials:











vogella training Training Books



Introduction into Java Web development - Tutorial

Lars Vogel

Version 0.5

30.09.2010

Revision History
Revision 0.1 - 0.5 09.04.2009 - 30.09.2010 Lars
Vogel
bug fixed and enhancements

Java Web technologies

This article gives an overview of the standard web technologies for Java. It explains the terms web applications, servlets, JSPs and web container.


Table of Contents

1. Web development
1.1. Overview
1.2. Web development
1.3. Container
1.4. Java hosting at Google
2. Java Web application
3. Java Web Standards
3.1. Servlet
3.2. JavaServer Page
3.3. JavaServer Pages Standard Tag Library
3.4. Try it out
4. Non standard based Java Web Development
5. Support this website
5.1. Thank you
5.2. Questions and Discussion
6. Links and Literature
6.1. Java Webdevelopment
6.2. vogella Resources

1. Web development

1.1. Overview

Java has strong support for web development. The following gives an overview of the available Java technologies starting with an explanation of web applications and then highlighting important standards in Java. After you finished the overview, you can create your first Java web application with Servlet and JSP development with Eclipse WTP.

1.2. Web development

If you develop a web application (independent of the programming language your are using), you put your web application on a server (and not your local computer). The web application runs on the server and people can access it there. The server is either a real machine (with CPU, memory, harddisk, etc.) or a virtual server which is basically a machine which is separated by software into smaller machines.

Instead of running your application directly on a dedicated server, you could also run it in a cloud environment. This cloud environment provides the necessary server for your application. An example for this is the Google App Engine.

Of course it is possible to use your local computer as a server, but usually you want to have a fixed server which runs 24 hours per day, 7 days per week so that web clients can always reach your server under a pre-defined address. For example, blog.vogella.com contains the vogella blog. This blog is a web application powered by WordPress which is a web application written in the server-side scripting language PHP.

1.3. Container

Java web applications are typically not running directly on the server. Java web applications are running inside a container on the server. This container runs on the server. The container provides a runtime environment for Java web applications. The container is for Java web applications what the JVM (Java Virtual Machine) is for local running Java applications. The container itself runs in the JVM.

In general, Java distinguishes two containers: the web container and the Java EE container. Typical web containers in the Java world are Tomcat or Jetty. A web container supports the execution of Java servlets and JavaServer Pages. A Java EE container supports additional functionality, for example, distribution of server load.

Most of the modern Java web frameworks are based on servlets and JavaServer Pages. Popular Java web frameworks are JavaServer Faces, Struts, Spring. These web frameworks usually run in a web container.

1.4. Java hosting at Google

Traditionally is has been difficult to start Java web development as a server was required for hosting the Java web container. Google offers a free of charge (for starters) solution based on Java. For details see Java Development on the Google App Engine.

2. Java Web application

A Java web application is a collection of dynamic resources (such as Servlets, JavaServer Pages, Java classes and jars) and static resources (HTML pages and pictures). A Java web application can be deployed as a ".war" file. The ".war" file is a zip file which contains the complete content of the corresponding web application.

3. Java Web Standards

Standard Java technologies are defined via a standard process called the Java Community Process (JCP). The following technologies are defined via the JCP.

3.1. Servlet

A servlet is a Java class which extends "HttpServlet" and answers a HTTP request within a web container. The latest official version is Servlets 3.0 which is also part of Java EE 6. For details see the Java Servlets 3.0 Spec.

3.2. JavaServer Page

JavaServer Pages (JSP) are files which contain HTML and Java code. The web cotainer compiles the JSP into a servlet at the first time first time the JSP is accessed. The current latest version is 2.1. See Specification for JavaServer Pages 2.1

3.3. JavaServer Pages Standard Tag Library

The JavaServer Pages Standard Tag Library (JSTL) encapsulates the core functionality common to many Web applications as simple tags. The current version is 1.2 is part of the JavaServer Pages Specification version 2.1.

3.4. Try it out

I hope the above does not sound too scary. Java Web development is actually really easy. You can try it out via the following Servlet and JSP Tutorial.

4. Non standard based Java Web Development

For Java you also find lots of non-standard web development. For example, GWT supports the Java development and is compiled into JavaScript. See the GWT Tutorial for more information.

5. Support this website

This tutorial is Open Content under the CC BY-NC-SA 3.0 DE license. Source code in this tutorial is distributed under the Eclipse Public License. See the vogella License page for details on the terms of reuse.

Writing and updating these tutorials is a lot of work. If this free community service was helpful, you can support the cause by giving a tip as well as reporting typos and factual errors.

5.1. Thank you

Please consider a contribution if this article helped you.

Flattr this

5.2. Questions and Discussion

If you find errors in this tutorial, please notify me (see the top of the page). Please note that due to the high volume of feedback I receive, I cannot answer questions to your implementation. Ensure you have read the vogella FAQ as I don't respond to questions already answered there.

6. Links and Literature

6.2. vogella Resources

vogella Training Android and Eclipse Training from the vogella team

Android Tutorial Introduction to Android Programming

GWT Tutorial Program in Java, compile to JavaScript and HTML

Eclipse RCP Tutorial Create native applications in Java

JUnit Tutorial Test your application

Git Tutorial Put all your files in a distributed version control system