使用Jetty与Jersey建立Restful API Serv

2021-01-12  本文已影响0人  BitInterfc

一、关于Jetty相关知识

1、 什么是Jetty
Jetty是一个开源HTTP服务器和Servlet殷勤,可以为JSP和Servlet提供Runtime。

2、Jetty 特性

3 和Tomcat相比

4 Jetty应用场景

4.1 AboutNIO

5 Jetty 原理

5 Jetty启动过程

6、jetty接收请求的步骤
jetty默认是基于http协议的
(1)Jetty 在启动时将会创建 BIO 的工作环境,它会创建 HttpConnection 类用来解析和封装 HTTP1.1 的协议

(2)创建一个队列线程池,用于处理每个建立连接产生的任务

(3)创建 ServerSocket,用于准备接受客户端的 socket 请求

(3)创建一个或多个监听线程,用来监听访问端口是否有连接进来

(4)当 ServerSocket 被执行时,HttpConnection 将被调用,它固定了如何将请求传递到 servlet 容器里,又如何将请求最终路由到目的 servlet

(5)当 Jetty 接受到一个请求时,Jetty 就把这个请求交给在 Server 中注册的 Handler 去执行

(6)Server 的 handle 的方法将请求代理给 ContextHandler 的 handle 方法,ContextHandler 又调用 HelloHandler 的 handle 方法

二、使用Jetty + Jersey搭建Restful API Web Service

//create server with port
Server server = new Server(8080);
//
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");

//add handler
server.setHandler(context);

ServletHolder holder1 = context.addServlet(ServletContainer.class, "/thresholdmgmt/0.8/*");


// Tells the Jersey Servlet which REST service/class to load.
holder1.setInitParameter(
          "jersey.config.server.provider.packages",
          "com.ibm.perfmgmt.thresholdservice.restapi"
);

try {
            server.start();
            server.join();
        }  catch (Exception e) {
            logger.info("Failed to start application: " + e);
        } finally {
            server.destroy();
        }


上一篇下一篇

猜你喜欢

热点阅读