Maven 依赖
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.4.3.v20170317</version>
</dependency>
代码
package Test;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.server.handler.ContextHandler;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JettyHttpServerTest {
/**
* <pre>
* @param args
* </pre>
*/
public static void main(String[] args) {
try {
Server server = new Server(8080);
ContextHandler context = new ContextHandler();
context.setContextPath("/search");
context.setResourceBase(".");
context.setClassLoader(Thread.currentThread()
.getContextClassLoader());
server.setHandler(context);
context.setHandler(new HelloHandler());
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class HelloHandler extends AbstractHandler {
@Override
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
/**
* <pre>
* 从 URL 里面得到传递过来的参数:
* http://localhost:8080/search?query=hello
* 如果你需要传递更多的参数,可以这么写:
* http://localhost:8080/search?query=hello&name=ZhangLili
* 从这里开始,你可以写自己的代码逻辑。
*
* [注意:GET方法的请求,URL 的最大长度是 1024个字节]
* </pre>
*/
String query = request.getParameter("query");
String result = "welcome to my server.";
if (null != query && query.equals("hello")) {
result = query + ", " + result;
}
print(baseRequest, response, result);
}
/**
* <pre>
* @param baseRequest
* @param response
* @param result 需要返回给客户的结果
* @throws IOException
* 将结果 result 返回给客户
* </pre>
*/
private void print(Request baseRequest, HttpServletResponse response,
String result) throws IOException {
response.setContentType("text/json;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println(result);
}
}