We used to
deploy our application in server. In some cases, we need to deploy server in
our application. In this post, I am going to explain you, how to deploy Jetty
in your application.
I am going
to use following Maven dependency.
<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>9.3.4.RC1</version> </dependency>
HelloWorld.java
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; public class HelloWorld extends AbstractHandler { @Override 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); response.getWriter().println("<h1>Welcome to Jetty Application</h1>"); baseRequest.setHandled(true); } public static void main(String[] args) throws Exception { Server server = new Server(8080); server.setHandler(new HelloWorld()); server.start(); server.join(); } }
Run above
application and hit the url ‘http://localhost:8080/’ in browser. You will get
following output.
Server server = new Server(8080);
server.start();
server.join();
Above
statements create and run an HTTP server on port 8080. If you don’t set any
handlers to this server, then it returns 404-error message for every request.
public void handle(String target, Request
baseRequest, HttpServletRequest request, HttpServletResponse response)
target: Represents the target of the request, usually it is
an URI.
baseRequest: Jetty mutable request object
request: Immutable request object, can be wrapped by a
filter or servlet.
response: response send to user, can be wrapped by a
servlet/filter.
server.setHandler(new HelloWorld());
Once we add
the handler to server instance, it can able to handle HTTP requests.
No comments:
Post a Comment