在嵌入式Jetty中,有时候我们想运行一些的Servlet,此时就需要创建创建Context,然后让自己的Servlet运行在这些ServletContext中。
package hb.jetty; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; class MyServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet MyServlet"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost MyServlet"); super.doPost(req, resp); } @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("MyServlet"); } }
package hb.jetty; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; class MyServlet2 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet MyServlet2"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost MyServlet2"); super.doPost(req, resp); } @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("MyServlet2"); } }
package hb.jetty; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; public class ServletContextServer { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); //相当于工程目录,如果是myweb,则http://localhost:port/myweb/ context.setContextPath("/"); server.setHandler(context); // http://localhost:8080/servlet1 context.addServlet(new ServletHolder(new MyServlet()), "/servlet1"); // http://localhost:8080/servlet1/2 context.addServlet(new ServletHolder(new MyServlet2()), "/servlet1/2"); server.start(); server.join(); } }