View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  package org.eclipse.jetty.embedded;
20  
21  import org.eclipse.jetty.server.Connector;
22  import org.eclipse.jetty.server.Handler;
23  import org.eclipse.jetty.server.Server;
24  import org.eclipse.jetty.server.handler.ContextHandler;
25  import org.eclipse.jetty.server.handler.ContextHandlerCollection;
26  import org.eclipse.jetty.server.nio.SelectChannelConnector;
27  
28  /* ------------------------------------------------------------ */
29  /**
30   * A {@link ContextHandlerCollection} handler may be used to direct a request to
31   * a specific Context. The URI path prefix and optional virtual host is used to
32   * select the context.
33   * 
34   */
35  public class ManyContexts
36  {
37      public final static String BODY=
38          "<a href='/'>root context</a><br/>"+
39          "<a href='http://127.0.0.1:8080/context'>normal context</a><br/>"+
40          "<a href='http://127.0.0.2:8080/context'>virtual context</a><br/>";
41          
42      public static void main(String[] args) throws Exception
43      {
44          Server server = new Server();
45          Connector connector = new SelectChannelConnector();
46          connector.setPort(8080);
47          server.setConnectors(new Connector[]
48          { connector });
49  
50          ContextHandler context0 = new ContextHandler();
51          context0.setContextPath("/");
52          Handler handler0 = new HelloHandler("Root Context",BODY);
53          context0.setHandler(handler0);
54  
55          ContextHandler context1 = new ContextHandler();
56          context1.setContextPath("/context");
57          Handler handler1 = new HelloHandler("A Context",BODY);
58          context1.setHandler(handler1);
59  
60          ContextHandler context2 = new ContextHandler();
61          context2.setContextPath("/context");
62          context2.setVirtualHosts(new String[]
63          { "127.0.0.2" });
64          Handler handler2 = new HelloHandler("A Virtual Context",BODY);
65          context2.setHandler(handler2);
66  
67          ContextHandlerCollection contexts = new ContextHandlerCollection();
68          contexts.setHandlers(new Handler[]
69          { context0, context1, context2 });
70  
71          server.setHandler(contexts);
72  
73          server.start();
74          System.err.println(server.dump());
75          server.join();
76      }
77  
78  }