1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.embedded;
15
16 import java.io.IOException;
17
18 import javax.servlet.ServletException;
19 import javax.servlet.http.HttpServletRequest;
20 import javax.servlet.http.HttpServletResponse;
21
22 import org.eclipse.jetty.server.Connector;
23 import org.eclipse.jetty.server.Handler;
24 import org.eclipse.jetty.server.HttpConnection;
25 import org.eclipse.jetty.server.Request;
26 import org.eclipse.jetty.server.Server;
27 import org.eclipse.jetty.server.handler.AbstractHandler;
28 import org.eclipse.jetty.server.handler.ContextHandler;
29 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
30 import org.eclipse.jetty.server.handler.DefaultHandler;
31 import org.eclipse.jetty.server.handler.HandlerCollection;
32 import org.eclipse.jetty.server.nio.SelectChannelConnector;
33
34
35
36
37
38
39
40
41
42 public class ManyContexts
43 {
44 public static void main(String[] args)
45 throws Exception
46 {
47 Server server = new Server();
48 Connector connector=new SelectChannelConnector();
49 connector.setPort(8080);
50 server.setConnectors(new Connector[]{connector});
51
52 ContextHandler context0 = new ContextHandler();
53 context0.setContextPath("/");
54 Handler handler0=new HelloHandler("Root Context");
55 context0.setHandler(handler0);
56
57 ContextHandler context1 = new ContextHandler();
58 context1.setContextPath("/context");
59 Handler handler1=new HelloHandler("A Context");
60 context1.setHandler(handler1);
61
62 ContextHandler context2 = new ContextHandler();
63 context2.setContextPath("/context");
64 context2.setVirtualHosts(new String[]{"127.0.0.2"});
65 Handler handler2=new HelloHandler("A Virtual Context");
66 context2.setHandler(handler2);
67
68 ContextHandlerCollection contexts = new ContextHandlerCollection();
69 contexts.setHandlers(new Handler[]{context0,context1,context2});
70
71 server.setHandler(contexts);
72
73 server.start();
74 System.err.println(server.dump());
75 server.join();
76 }
77
78 public static class HelloHandler extends AbstractHandler
79 {
80 String _welcome;
81
82 HelloHandler(String welcome)
83 {
84 _welcome=welcome;
85 }
86
87 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
88 {
89 ((Request)request).setHandled(true);
90 response.setStatus(HttpServletResponse.SC_OK);
91 response.setContentType("text/html");
92 response.getWriter().println("<h1>"+_welcome+" "+request.getContextPath()+"</h1>");
93 response.getWriter().println("<a href='/'>root context</a><br/>");
94 response.getWriter().println("<a href='http://127.0.0.1:8080/context'>normal context</a><br/>");
95 response.getWriter().println("<a href='http://127.0.0.2:8080/context'>virtual context</a><br/>");
96
97 }
98 }
99
100 }