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.
1. Web development
1.1. Webdevelopment with Java
Java has strong support for web development. While Java on the desktop, with the notable exception of Eclipse RCP based application was never a huge success, Java is frequently used at the server side.
1.2. Web development
If you develop a web application (independent of the programming language your are using), you typically put your web application on a dedicated 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.
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. Server vs cloud deployment
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 which allows to host web applications written in different programming languages.
1.4. Java web or Java EE container
Java web applications are typically not running directly on the server. Java web applications are running inside a web container 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. Popular Java web frameworks are GWT, JavaServer Faces, Struts and the Spring framework. These web frameworks usually require as a minimum container a web container.
2. Java Web application
A Java web application is a collection of dynamic resources
Servlets, JavaServer Pages, Java classes and jars) and
(HTML pages and pictures). A Java web application
can be deployed as a
file is a zip file
contains the complete
content of the
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.
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 the JSP is accessed. The current latest version is 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. Getting started with Java web development
Getting started with Java Web development is relatively easy. You can try it out via the following Servlet and JSP Tutorial.
4. Non standard based Java Web Development
5. Links and Literature
5.1. Java Webdevelopment
6. vogella training and consulting support
Appendix A: Copyright, License and Source code
Copyright © 2012-2019 vogella GmbH. Free use of the software examples is granted under the terms of the Eclipse Public License 2.0. This tutorial is published under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany license.