Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Creating a Simple Web Application with Embedded Jetty

Header Image

Ahoy there mateys! Today, we’ll be exploring the high seas of web development with Embedded Jetty. If you’re looking to create a simple web application using Embedded Jetty, you’ve come to the right place. In this article, we’ll walk you through the process of setting up a Maven project, creating a basic Servlet and JSP page, and deploying it to an Embedded Jetty server. So hoist the main sail and let’s set course!

Setting up a Maven Project

Before we can start coding, we need to set up our development environment. Embedded Jetty is easy to use with Maven, a popular Java build tool. First, make sure you have Maven installed on your system. Once that’s done, open up your favorite IDE and create a new Maven project.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-web-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>9.4.31.v20200723</version>
    </dependency>
  </dependencies>
</project>

In the pom.xml file, we’ve specified our Maven project’s metadata such as groupId, artifactId, and version. We’ve also specified that we’re creating a web application packaged as a WAR file, and included a dependency on the jetty-server artifact.

Creating a Servlet and JSP Page

With our project set up, it’s time to create our first Servlet and JSP page. A Servlet is a Java class that extends the javax.servlet.http.HttpServlet class and handles incoming HTTP requests. A JSP page is a template that can be used to dynamically generate HTML.

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("name", "world");
        request.getRequestDispatcher("/hello.jsp").forward(request, response);
    }
}

In the above code, we’ve created a simple HelloServlet that sets the name attribute to “world” and forwards the request to a JSP page called hello.jsp.

<!DOCTYPE html>
<html>
<head>
    <title>Hello World</title>
</head>
<body>
    <h1>Hello ${name}!</h1>
</body>
</html>

In the hello.jsp file, we’ve used the ${name} expression language to output the value of the name attribute set by the Servlet.

Deploying to an Embedded Jetty Server

Now that we have our Servlet and JSP page, it’s time to deploy our web application to an Embedded Jetty server. Fortunately, Embedded Jetty makes this process a breeze.

public static void main(String[] args) throws Exception {
    Server server = new Server(8080);

    WebAppContext webAppContext = new WebAppContext();
    webAppContext.setContextPath("/");
    webAppContext.setWar("my-web-app/target/my-web-app-1.0-SNAPSHOT.war");
    server.setHandler(webAppContext);

    server.start();
    server.join();
}

In the main() method, we’ve created a new Server instance on port 8080. We then create a WebAppContext and set its context path to / and the path to our WAR file. Finally, we set the WebAppContext as the handler for the Server and start the server.

Testing the Web Application

To test our web application, we simply need to navigate to http://localhost:8080 in our web browser. We should see a simple “Hello world!” message displayed on the page.

Congratulations, you’ve successfully created a simple web application using Embedded Jetty! From here, the sky’s the limit. You can add more Servlets, JSP pages, and even integrate with databases or other external services.

Conclusion

In this article, we’ve explored the basics of creating a simple web application using Embedded Jetty. We covered setting up a Maven project, creating a basic Servlet and JSP page, and deploying it to an Embedded Jetty server. Remember to use code examples, analogies, and storytelling techniques to make your web development journey more enjoyable and productive. Keep exploring and happy coding!