一、依赖
<!--Jetty服务器的核心依赖项,用于创建和管理服务器。-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.4.43.v20210629</version>
</dependency>
<!-- Jetty的Servlet支持依赖项,用于处理Servlet相关的功能。-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.4.43.v20210629</version>
</dependency>
<!-- Jersey的Servlet容器依赖项,用于支持JAX-RS(Java API for RESTful Web Services)的实现-->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.34</version>
</dependency>
<!-- Jersey的HK2依赖项,用于依赖注入和管理。-->
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.34</version>
</dependency>
<!-- JAX-RS API的依赖项,提供了构建RESTful接口的核心功能。-->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
二、启动类
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.example.controller.HelloWorldResource;
public class App {
public static void main(String[] args) throws Exception {
Server server = new Server(8088); // 创建Jetty服务器并指定端口号为8088
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/"); // 设置Servlet上下文路径为根路径 "/"
server.setHandler(context); // 将Servlet上下文设置为服务器的处理程序
ServletHolder holder = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
// 将Jersey的ServletContainer添加到Servlet上下文中,映射到所有请求路径 "/*"
holder.setInitOrder(0);
holder.setInitParameter("jersey.config.server.provider.classnames", HelloWorldResource.class.getCanonicalName());
// 配置Jersey的ServletContainer,指定要提供的RESTful资源类为HelloWorldResource
server.start(); // 启动Jetty服务器
server.join(); // 阻塞主线程,直到服务器停止
}
}
三、接口
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello, World!";
}
}
四、测试
http://localhost:8088/hello