Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery

Jetty HelloWorld

Downloading the Jars
Writing a HelloWorld Example
Compiling the HelloWord example
Running the Handler and Server
Next Steps

This tutorial shows how you can develop code against the Jetty API with the jetty classes on your class path. If you want to use Maven or standard web applications, see Jetty and Maven HelloWorld.

Downloading the Jars

Jetty is decomposed into many [[Jetty/Reference/Dependencies|jars and dependencies]] //TODO xref//to achieve a minimal footprint by selecting the minimal set of jars. Typically it is best to use something like Maven to manage jars this tutorial uses an aggregate Jar that contains all of the Jjetty classes in one Jar.

You can manually download the jetty aggregate-all Jar and the servlet api Jar using wget or similar command (for example, curl ) or a browser. Use wget as follows:


mkdir Demo
cd Demo
JETTY_VERSION=7.0.2.v20100331
wget -U none http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/$JETTY_VERSION/jetty-all-$JETTY_VERSION.jar
wget -U none http://repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar

    

Writing a HelloWorld Example

The ??? tutorial contains many examples of writing against the Jetty API. This tutorial uses a simple HelloWorld handler with a main method to run the server. In an editor, edit the file HelloWorld.java and add the following content:


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import java.io.IOException;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class HelloWorld extends AbstractHandler
{
    public void handle(String target,
                       Request baseRequest,
                       HttpServletRequest request,
                       HttpServletResponse response) 
        throws IOException, ServletException
    {
        response.setContentType("text/html;charset=utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        baseRequest.setHandled(true);
        response.getWriter().println("<h1>Hello World</h1>");
    }

    public static void main(String[] args) throws Exception
    {
        Server server = new Server(8080);
        server.setHandler(new HelloWorld());
 
        server.start();
        server.join();
    }
}

      

Compiling the HelloWord example

The following command compiles the HelloWorld class:


javac -cp servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld.java

    

Running the Handler and Server

The following command runs the HelloWorld example:


java -cp .:servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld

    

You can now point your browser at <nowiki>http://localhost:8080</nowiki>to see your hello world page.

Next Steps

To learn more about Jetty, take these next steps:

  • Follow the examples in ??? to better understand the jetty APIs.
  • Explore the complete jetty javadoc
  • Consider using Jetty and Maven (see Jetty and Maven HelloWorld) to manage your Jars and dependencies.
  • Review other options in [[Jetty/Howto/Develop|Howto Develop with Jetty]] TODO xref
See an error or something missing?
Contribute to this documentation at Github!