Jump to: navigation, search

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

Line 12: Line 12:
  
 
<source lang="bash">
 
<source lang="bash">
 +
mkdir jettyTutorial
 +
cd jettyTutorial
 
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
 
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
 
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>
  
 +
=== 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 <tt>HelloWorld.java</tt> and add the following content:
 +
 +
<source lang="java">
 +
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();
 +
    }
 +
}
 +
</source>
 +
 +
=== Compiling the HelloWord example ===
 +
The following command will compile the HelloWorld class:
 +
 +
<source lang="bash">
 +
javac -cp servlet-api-2.5.jar:jetty-all-7.0.1.v20091125.jar HelloWorld.java
 +
</source>
 +
 +
 +
=== Running the Handler and Server ===
 +
The following command will run the HelloWorld example:
 +
 +
<source lang="bash">
 +
java -cp .:servlet-api-2.5.jar:jetty-all-7.0.1.v20091125.jar HelloWorld
 +
</source>
 
}}
 
}}
 +
 +
You can now point your browser at [http://localhost:8080] to see the hello world page.

Revision as of 19:12, 15 February 2010



Introduction

To develop against the Jetty API's you need Jetty jars on your classpath. This can be done with maven and/or IDE tools like m2eclipse. However, this tutorial shows you the simplest possible approach to building and running a Jetty server.

Details

Downloading the Jars

Normally it is best to let a tool like maven manage the jetty jars and dependencies. But for this tutorial, we will manually download jars from the maven repository.

You can use the many individual jetty jars, if you want the minimal footprint, but for this tutorial we will download the aggregate-all jar, that contains all the jetty classes in a single jar. We also need to download a servlet API jar.

The downloads can be done with wget or similar command (eg curl) or a browser as follows:

mkdir jettyTutorial
cd jettyTutorial
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
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-7.0.1.v20091125.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-7.0.1.v20091125.jar HelloWorld

You can now point your browser at [1] to see the hello world page.