Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Jetty/Tutorial/Jetty HelloWorld"
m (Jetty/Tutorial/Jetty Classpath moved to Jetty/Tutorial/Jetty HelloWorld: better name) |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Jetty Tutorial | {{Jetty Tutorial | ||
| introduction = | | introduction = | ||
− | + | ||
+ | {{Jetty Redirect|http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html}} | ||
+ | |||
+ | 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 the | ||
+ | [[Jetty/Tutorial/Jetty_and_Maven_HelloWorld|Jetty and Maven HelloWorld tutorial]]. | ||
+ | |||
+ | |||
| details = | | details = | ||
=== Downloading the Jars === | === Downloading the Jars === | ||
− | Jetty is decomposed into many [[Jetty/Reference/Dependencies|jars and dependencies]] | + | Jetty is decomposed into many [[Jetty/Reference/Dependencies|jars and dependencies]] to achieve a minimal footprint by selecting the minimal set of jars. Typically it is best to use something like Maven to manage jars (see [[Jetty/Tutorial/Jetty_and_Maven_ HelloWorld|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. |
− | + | You can manually download the jetty aggregate-all jar and the servlet api jar using [http://www.gnu.org/software/wget/ wget] or similar command (for example, [http://curl.haxx.se/ curl]) or a browser. Use wget as follows: | |
<source lang="bash"> | <source lang="bash"> | ||
− | mkdir | + | mkdir Demo |
− | cd | + | cd Demo |
− | wget -U none http://repo1.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/ | + | 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 18: | Line 26: | ||
=== Writing a HelloWorld Example === | === 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. | + | The [[Jetty/Tutorial/Embedding Jetty|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 an editor, edit the file <tt>HelloWorld.java</tt> and add the following content: |
<source lang="java"> | <source lang="java"> | ||
Line 57: | Line 65: | ||
=== Compiling the HelloWord example === | === Compiling the HelloWord example === | ||
− | The following command | + | The following command compiles the HelloWorld class: |
<source lang="bash"> | <source lang="bash"> | ||
− | javac -cp servlet-api-2.5.jar:jetty-all- | + | javac -cp servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld.java |
</source> | </source> | ||
=== Running the Handler and Server === | === Running the Handler and Server === | ||
− | The following command | + | The following command runs the HelloWorld example: |
<source lang="bash"> | <source lang="bash"> | ||
− | java -cp .:servlet-api-2.5.jar:jetty-all- | + | java -cp .:servlet-api-2.5.jar:jetty-all-$JETTY_VERSION.jar HelloWorld |
</source> | </source> | ||
− | You can now point your browser at | + | You can now point your browser at <nowiki>http://localhost:8080</nowiki> to see your hello world page. |
Line 76: | Line 84: | ||
* Follow the examples in [[Jetty/Tutorial/Embedding Jetty]] tutorial to better understand the jetty APIs | * Follow the examples in [[Jetty/Tutorial/Embedding Jetty]] tutorial to better understand the jetty APIs | ||
* Explore the complete [http://download.eclipse.org/jetty/stable-7/apidocs/ jetty javadoc] | * Explore the complete [http://download.eclipse.org/jetty/stable-7/apidocs/ jetty javadoc] | ||
− | * Consider using [[Jetty/Tutorial/ | + | * Consider using [[Jetty/Tutorial/Jetty_and_Maven_HelloWorld|Jetty and Maven]] to manage your jars and dependencies. |
* Review other options to [[Jetty/Howto/Develop|Howto Develop with Jetty]] | * Review other options to [[Jetty/Howto/Develop|Howto Develop with Jetty]] | ||
}} | }} |
Latest revision as of 13:53, 23 April 2013
Contents
Introduction
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 the
Jetty and Maven HelloWorld tutorial.
Details
Downloading the Jars
Jetty is decomposed into many jars and dependencies to achieve a minimal footprint 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.
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 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 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 http://localhost:8080 to see your hello world page.
Next Steps
- Follow the examples in Jetty/Tutorial/Embedding Jetty tutorial to better understand the jetty APIs
- Explore the complete jetty javadoc
- Consider using Jetty and Maven to manage your jars and dependencies.
- Review other options to Howto Develop with Jetty