Jump to: navigation, search

Difference between revisions of "Jetty/Tutorial/Jetty HelloWorld"

m
Line 14: Line 14:
  
 
<source lang="bash">
 
<source lang="bash">
mkdir jettyTutorial
+
mkdir Demo
cd jettyTutorial
+
cd Demo
wget -U none http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/7.0.1.v20091125/jetty-all-7.0.1.v20091125.jar
+
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
 
wget -U none http://repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
 
</source>
 
</source>
Line 64: Line 65:
  
 
<source lang="bash">
 
<source lang="bash">
javac -cp servlet-api-2.5.jar:jetty-all-7.0.1.v20091125.jar HelloWorld.java
+
javac -cp servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld.java
 
</source>
 
</source>
  
Line 71: Line 72:
  
 
<source lang="bash">
 
<source lang="bash">
java -cp .:servlet-api-2.5.jar:jetty-all-7.0.1.v20091125.jar HelloWorld
+
java -cp .:servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld
 
</source>
 
</source>
  

Revision as of 10:35, 6 April 2010



Introduction

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

Details

Downloading the Jars

Jetty is decomposed into many jars and dependencies so that a minimal foot print can be achieved by selecting the minimal set of jars. Typically it is best to use something like maven to manage jars (see Jetty and Maven HelloWorld Tutorial), but for this tutorial, we will use an aggregate jar that contains all of the jetty classes in one jar.

The jetty aggregate-all jar and the servlet api jar can be manually downloaded using wget or similar command (eg 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 Jetty/Tutorial/Embedding Jetty tutorial contains many examples of writing against the Jetty API. For this tutorial, we will use a simple HelloWorld handler with a main method to run the server. In and 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 will compile 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 will run the HelloWorld example:

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

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


Next Steps