Jetty与servlet之间的连接就是servletContextHandler,这是handlerWrapper的一个子类。servletContextHandler添加servlet采用的是addServlet的方式,里面需要实例ServletHolder(这里为HelloHandler)以及访问的路径,可以添加多个servlet进行处理。
版本: jetty-distribution-8.1.17.v20150415.zip
实例一:
package com.what21.jetty.demo3;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
public class MinimalServlets {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
// 添加servlet
handler.addServletWithMapping(HelloServlet.class, "/*");
server.start();
server.join();
}
}
package com.what21.jetty.demo3;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 506368532761783489L;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("
Hello from HelloServlet
");}
}
实例二:
package com.what21.jetty.demo3;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
public class ServletContext {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.setResourceBase(System.getProperty("java.io.tmpdir"));
server.setHandler(context);
// Add hello servlet
context.addServlet(HelloServlet.class, "/hello/*");
// Add default servlet
context.addServlet(DefaultServlet.class, "/");
server.start();
server.join();
}
}