1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.mortbay.jetty.example;
16
17 import java.io.IOException;
18
19 import javax.servlet.ServletException;
20 import javax.servlet.http.HttpServletRequest;
21 import javax.servlet.http.HttpServletResponse;
22
23 import org.mortbay.jetty.Connector;
24 import org.mortbay.jetty.Handler;
25 import org.mortbay.jetty.HttpConnection;
26 import org.mortbay.jetty.Request;
27 import org.mortbay.jetty.Server;
28 import org.mortbay.jetty.handler.AbstractHandler;
29 import org.mortbay.jetty.handler.ContextHandler;
30 import org.mortbay.jetty.handler.ContextHandlerCollection;
31 import org.mortbay.jetty.handler.DefaultHandler;
32 import org.mortbay.jetty.handler.HandlerCollection;
33 import org.mortbay.jetty.nio.SelectChannelConnector;
34
35 public class ManyContexts
36 {
37 public static void main(String[] args)
38 throws Exception
39 {
40 Server server = new Server();
41 Connector connector=new SelectChannelConnector();
42 connector.setPort(8080);
43 server.setConnectors(new Connector[]{connector});
44
45 ContextHandler context0 = new ContextHandler();
46 context0.setContextPath("/zero");
47 Handler handler0=new HelloHandler();
48 context0.setHandler(handler0);
49
50 ContextHandler context1 = new ContextHandler();
51 context1.setContextPath("/one");
52 Handler handler1=new HelloHandler();
53 context1.setHandler(handler1);
54
55 ContextHandlerCollection contexts = new ContextHandlerCollection();
56 contexts.setHandlers(new Handler[]{context0,context1});
57
58 HandlerCollection handlers = new HandlerCollection();
59 handlers.setHandlers(new Handler[]{contexts,new DefaultHandler()});
60
61 server.setHandler(handlers);
62
63 server.start();
64 server.join();
65 }
66
67 public static class HelloHandler extends AbstractHandler
68 {
69 static int h=0;
70 int hello=h++;
71
72 public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException
73 {
74 Request base_request = (request instanceof Request) ? (Request)request:HttpConnection.getCurrentConnection().getRequest();
75 base_request.setHandled(true);
76 response.setStatus(HttpServletResponse.SC_OK);
77 response.setContentType("text/html");
78 response.getWriter().println("<h1>Hello OneContext "+hello+"</h1>");
79 }
80 }
81
82 }