使用Jetty编写RESTful接口

news2024/9/20 20:45:45

一、依赖

     <!--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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux scatterlist 详解

源码基于&#xff1a;Linux 5.4 约定&#xff1a; 芯片架构&#xff1a;ARM64内存架构&#xff1a;UMACONFIG_ARM64_VA_BITS&#xff1a;39CONFIG_ARM64_PAGE_SHIFT&#xff1a;12CONFIG_PGTABLE_LEVELS &#xff1a;3 0. 前言 之前在《Linux DMA... 零拷贝》博文分享了DMA 技…

程序员养生之道

程序员养生之道——如何保持健康的生活方式 摘要&#xff1a; 随着互联网行业的快速发展&#xff0c;越来越多的人选择从事程序员这个职业。然而&#xff0c;长时间的工作和高强度的压力容易导致程序员出现亚健康状况&#xff0c;如头发稀疏、视力下降、肥胖等问题。因此&#…

字节大佬整理测试用例编写规范

目录 1.1目的 1.2使用范围 二 测试用例编写原则 2.1系统性 2.2连贯性 2.3全面性 2.4正确性 2.5符合正常业务惯例 2.6仿真性 2.7容错性&#xff08;健壮性&#xff09; 三 测试用例设计方法 3.1 等价类划分法&#xff1a; 3.2 边界值分析法&#xff1a; 3.3 因果图…

python简单通讯录

代码&#xff1a; # 定义联系人类 class Contact:def __init__(self, name, phone, street, city, province, postcode):self.name nameself.phone phoneself.street streetself.city cityself.province provinceself.postcode postcodedef __str__(self):return f"…

shell编程系列(6)-使用Sort进行数据排序

文章目录 前言使用Sort命令文本排序sort命令的选项如下&#xff1a;基本排序对单个指定列进行排序对多个指定列进行排序删除重复的行 结语 前言 shell脚本通常用作一些自动化的操作&#xff0c;但是在有些场景下例如科研运算&#xff0c;有时候会产生大量的运算结果文件&#…

学习记录PCL-1 通过哈希表进行三维点云的虚拟格网划分

直接对整个场景的点云进行特征提取&#xff0c;效果很差&#xff0c;因此通过划分区域格网进行划分。格网划分有很多种方式&#xff0c;在这里尝试使用哈希表进行格网链接&#xff0c;后续通过在每个格网内基于点云特征进行提取。 参考博客&#xff1a; 点云侠的PCL 点云分块_p…

揭示堆叠自动编码器的强大功能 - 最新深度学习技术

简介 在不断发展的人工智能和机器学习领域&#xff0c;深度学习技术由于其处理复杂和高维数据的能力而获得了巨大的普及。在各种深度学习模型中&#xff0c;堆叠自动编码器[1]作为一种多功能且强大的工具脱颖而出&#xff0c;用于特征学习、降维和数据表示。本文探讨了堆叠式自…

影视网站影视介绍评论网站

基于Boostrap的响应式电影网站影视网站移动技术应用开发一、考核要求1、考核内容本课程的成绩主要依据平时表现、文档、答辩&#xff08;设计讲解、操作演示等&#xff09;等方面评定。运用所学知识&#xff0c;独立设计并开发一个影视介绍评论网站&#xff0c;具体要求如下&am…

凯旋泥巴佬正式全面亮相,Triumph TF 250-X

之前给大家曝光过凯旋将要进军越野车领域&#xff0c;并且发动机和车架都已经造出来了&#xff0c;还要去参加赛事想要获得比赛的荣誉和名次&#xff0c;就在今日凯旋的一台越野车TF 250-X正式亮相&#xff0c;售价9995美元。 这是凯旋真正意义上的第一台竞赛级越野车&#xff…

特征选择的方法:包裹法之递归特征消除

1.递归特征消除法的基本原理 递归特征消除法是一种贪婪的优化算法&#xff0c;致力于通过反复创建模型的方式找到性能最佳的特征子集。 首先将筛选的K个特征作为初始特征子集&#xff0c;开展机器学习计算得到每个特征的重要性&#xff0c;利用交叉验证方法得到初始特征子集的…

智慧水务系统在流域水环境规划中起到什么作用?

智慧水务系统在流域水环境规划中扮演着越来越重要的角色。作为一款集信息化、自动化、智能化、智慧化于一体的水务管理系统&#xff0c;智慧水务系统不仅能够提高水环境规划的效率&#xff0c;还能为水资源的保护和利用提供有力支持。 在流域水环境规划中&#xff0c;智慧水务系…

Windows10设置定时提醒

文章目录 Windows10设置定时提醒创建提醒文件新建文本文档修改文件编码和后缀双击测试 创建文件夹创建任务测试运行 Windows10设置定时提醒 创建提醒文件 新建文本文档 修改文件编码和后缀 双击测试 创建文件夹 创建任务 创建触发器 选择程序 测试运行 弹窗正常

16.Oracle数据库Row_number() over()函数排序使用方法

1.原始数据(部分) SELECT * FROM SCOTT.EMP ; 2.使用Row_number() over() 函数,排序 SELECT EMPNO,ENAME,SAL,DEPTNO,Row_number() over( order by sal) rs FROM SCOTT.EMP ; 根据工资排序并添加序号 3.使用Row_number() over() 函数,分组并排序 SELECT EMPNO,ENAME,SAL,DEPTN…

深眸科技|AI+机器视觉加速进入工业制造,成为提升智能制造必选项

随着人工智能技术的飞速发展&#xff0c;AI视觉与机器视觉技术正在加速进入工业制造中。机器视觉技术赋予机器新活力与新智慧&#xff0c;不仅让机器实现精密工作的完成&#xff0c;还让其能够代替部分脑力活动&#xff0c;具有更高的智慧与能力。 深眸科技CEO周礼表示&#x…

自动伸缩:解密HPA、VPA、CA和CPA智能调整应用大小和数量

关注【云原生百宝箱】公众号&#xff0c;快速掌握云原生 Kubernetes提供了多种自动伸缩机制&#xff0c;例如HPA&#xff08;Horizontal Pod Autoscaling&#xff09;&#xff0c;可以根据不同情况动态调整Pod副本数量。此功能使 Pod 能够有效地处理当前流量&#xff0c;而无需…

Android启动系列之进程杀手--lmkd

本文概要 这是Android系统启动的第三篇文章&#xff0c;本文以自述的方式来讲解lmkd进程&#xff0c;通过本文您将了解到lmkd进程在安卓系统中存在的意义&#xff0c;以及它是如何杀进程的。&#xff08;文中的代码是基于android13&#xff09; 我是谁 init&#xff1a;“大…

P8A004-系统加固-磁盘访问权限

【预备知识】 访问权限&#xff0c;根据在各种预定义的组中用户的身份标识及其成员身份来限制访问某些信息项或某些控制的机制。访问控制通常由系统管理员用来控制用户访问网络资源&#xff08;如服务器、目录和文件&#xff09;的访问&#xff0c;并且通常通过向用户和组授予…

字节的“游戏心脏”,真的停止跳动了吗?

字节跳动在游戏行业的宏大叙事&#xff0c;终究变成了一场游戏一场梦。 近日&#xff0c;朝夕光年首次公开回应此前的裁员传闻&#xff0c;明确表示会有业务方向和组织调整&#xff0c;游戏业务将迎来大规模收缩&#xff0c;未来会更加聚焦部分创新型游戏及相关技术的探索。 …

管理类联考——写作——考点+记忆篇——论说文——记忆

文章目录 整体文字提炼/目录大纲法图像畅想/记忆宫殿法 审题立意论说文-历年真题命题类型总结 写作结构论说文-万能写作结构 分析段标题开头段结尾过渡段和措施段 整体 整体用记忆宫殿法、绘图记忆法等 文字提炼/目录大纲法 利用书本的目录、大纲&#xff0c;一本好书&#xff…

增加F110 付款方式的随手记录

随便记录一下&#xff0c;基本上有这些信息可以了 为了保持PRD与测试机一致的银行代码&#xff0c;需要先在DEV&#xff0c;QAS 改成4 外部给号 主要都是在FBZP 开户行维护-FI12_HBANK/FI12 S4hana 里面有的没有办法在FI12 维护只能去NWBC NWBC&#xff1a;维护银行账户并关联…