1、說明java
在嵌入式Jetty中,有時候咱們想運行一些的Servlet,此時就須要建立建立Context,而後讓本身的Servlet運行在這些ServletContext中。web
2、應用eclipse
一、方式一ide
首先建立一個ServletContextServer類,用來初始化web應用程序的Context,而且指定Servlet和Servlet匹配的url。這裏指定了兩個Servlet,分別是IndexServlet和UserServlet,並分別對應/test/index/indexServlet和/test/user/userServlet。url
package com.test.main; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import com.test.servlet.IndexServlet; import com.test.servlet.UserServlet; public class Main { public static void main(String[] args) throws Exception { Server service = new Server(); //建立鏈接器 Connector connector = new SelectChannelConnector(); // 設置端口 connector.setPort(80); // 設置host地址 connector.setHost("127.0.0.1"); service.setConnectors(new Connector[] { connector }); //ServletContext ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); //設置根路徑 context.setContextPath("/test"); //設置servlet的url context.addServlet(new ServletHolder(new IndexServlet()), "/index/indexServlet"); context.addServlet(new ServletHolder(new UserServlet()), "/user/userServlet"); service.setHandler(context); service.setStopAtShutdown(true); service.setSendServerVersion(true); // 啓動服務 service.start(); service.join(); } }
二、方式二
spa
除了上面的方式外,也能夠建立兩個Context,分別綁定到/index/indexServlet和/user/userServlet,以下:.net
package com.test.main; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import com.test.servlet.IndexServlet; import com.test.servlet.UserServlet; public class Main { public static void main(String[] args) throws Exception { Server service = new Server(); //建立鏈接器 Connector connector = new SelectChannelConnector(); // 設置端口 connector.setPort(80); // 設置host地址 connector.setHost("127.0.0.1"); //context1 ServletContextHandler context1 = new ServletContextHandler(ServletContextHandler.SESSIONS); context1.setContextPath("/index"); context1.setClassLoader(Thread.currentThread().getContextClassLoader()); context1.addServlet(new ServletHolder(new IndexServlet()), "/indexServlet"); //context2 ServletContextHandler context2 = new ServletContextHandler(ServletContextHandler.SESSIONS); context2.setContextPath("/user"); context2.setClassLoader(Thread.currentThread().getContextClassLoader()); context2.addServlet(new ServletHolder(new UserServlet()), "/userServlet"); //contexts ContextHandlerCollection contexts = new ContextHandlerCollection(); contexts.setHandlers(new Handler[] { context1, context2 }); service.setHandler(contexts); service.setStopAtShutdown(true); service.setSendServerVersion(true); // 啓動服務 service.start(); service.join(); } }
3、參考
server