Jersey框架学习

news2024/11/24 0:48:40

一、入门

controller

package com.itheima.controller;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("/person")
public class PersonResource {
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String get(){
		return "GET Person resource";
	}
}

配置类

package com.itheima.config;

import com.itheima.controller.PersonResource;
import org.glassfish.jersey.server.ResourceConfig;


//配置类,配置这个项目有什么资源
public class ApiResourceConfig extends ResourceConfig {
	public ApiResourceConfig() {
		register(PersonResource.class);
	}
}

前端控制器配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>jerseyServlet</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.itheima.config.ApiResourceConfig</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>jerseyServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    
</web-app>

二、注解

1、@Path

image-20230706230507730

@Path("/person")
public class PersonResource {
	@GET
	@Path("{id}")
	@Produces(MediaType.TEXT_PLAIN)
	public String get(@PathParam("id") Long id){
		return "GET Person resource"+id;
	}
}
image-20230706230830607

不仅支持路径参数,还支持表达式

@Path("/person")
public class PersonResource {

	@GET
	@Path("/{username: [a-zA-Z]{5,8}}")//支持正则表达式:大小写字母并且5到8个字符之间
	@Produces(MediaType.TEXT_PLAIN)
	public String getUser(@PathParam("username") String username){
		return "GET Person resource"+username;
	}
}
image-20230706231419141

2、请求方式的注解

image-20230706231547127

3、@Produces

image-20230706231841957 image-20230706232601475 image-20230706232535754
@Path("/person")
//@Produces(MediaType.TEXT_PLAIN)
public class PersonResource {
	@GET
	@Path("/text")
	@Produces({"text/plain","text/html"})
	public String getTextOrHtml(){
		return "hello";
	}
}

设置Accept为text/plain或text/html

image-20230706233527567 image-20230706234007968
@Path("/person")
//@Produces(MediaType.TEXT_PLAIN)
public class PersonResource {
	@GET
	@Path("/text")
    //服务端指定,text/plain 品质因数为0.9
	@Produces({"text/plain; qs=0.9","text/html"})
	public String getTextOrHtml(){
		return "hello";
	}
}
image-20230706234137132

访问,没有制定请求头Accept,响应头是text/html

4、@Consumes

image-20230706235105576

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

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

相关文章

【微笑女王-InsCode Stable Diffusion 美图活动一期】

文章目录 一、 Stable Diffusion 模型在线使用地址二、模型相关版本和参数配置三、图片生成提示词与反向提示词四、种子及对应图片 一、 Stable Diffusion 模型在线使用地址 https://inscode.csdn.net/inscode/Stable-Diffusion 操作步骤&#xff1a; 点击Stable Diffusion …

数据结构进阶(一):AVL树

所谓的AVL树也叫做高度平衡的二叉搜索树。 啥是高度平衡的二叉搜索树&#xff1f; 高度平衡的二叉搜索树&#xff1a;意味着左右子树的高度最大不超过一。 我们先来回顾一下二叉搜索树的概念&#xff1a; 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c…

Git 分支详解

一、分支概念介绍 1. 主分支&#xff08;主干/主线/main/master&#xff09; 包含所有最终修改的历史&#xff0c;反映项目的最终版本。 建议不要乱动主干&#xff0c;如果你编辑了一个小组项目的主干分支&#xff0c;你的改动会影响到其他人&#xff0c;而且很快就会出现合并…

jmeter负载测试如何找到最大并发用户数

在性能测试中&#xff0c;当我们接到项目任务时&#xff0c;很多时候我们是不知道待测接口能支持多少并发用户数的。此时&#xff0c;需要我们先做负载测试&#xff0c;通过逐步加压&#xff0c;来找到最大并发用户数。那么当我们找到一个区间&#xff0c;怎么找到具体的值呢&a…

实验室仪器管理系统/基于微信小程序的实验室仪器管理系统

摘 要 随着当今网络的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;于是网络已经逐步进入人们的生活&#xff0c;给我们生活或者工作提供了新的方向新的可能。 本毕业设计的内容是设计实现一个实验室仪器管理系统。使用微信开发者是以java语言…

<Java导出Excel> 1.0 Java实现Excel动态模板导出

思路&#xff1a; 1&#xff0c;先创建动态模板&#xff08;必须要在数据库建一张表&#xff0c;可随时修改模板&#xff09; 例如&#xff1a; 建表语句&#xff1a; CREATE TABLE list_table_header (headerName VARCHAR(100) NOT NULL,headerField VARCHAR(100) NOT NULL…

一起了解抖音共创功能:激发创意,合作共创更有趣的短视频

抖音共创功能是抖音短视频平台推出的一项创作工具&#xff0c;旨在鼓励用户通过合作共创来创作更有趣、创意的短视频内容。该功能于2020年11月上线&#xff0c;受到了广大用户的热烈欢迎。下面不若与众科技就来介绍一下抖音共创功能。 抖音共创功能允许用户邀请其他用户一同参与…

Neo4j图数据库的使用笔记

Neo4j图数据库的使用笔记 win系统安装Neo4j图数据库 安装准备&#xff1a; neo4j-3.4.0版本的zip包 找个目录解压安装zip包 启动neo4j 下载neo4j-3.4.0版本的zip包 可以去neo4j官网下载&#xff0c;也可以去微云数聚官网下载。 微云数聚是neo4j在国内的代理商。 解压到…

sql分组查询

多个相同去重 思路&#xff1a; 找where条件 分组 分组后过滤

java导入csv格式文件之身份证格式处理

一. 出现的问题 csv中的身份证号如下图&#xff1a; 导到数据库中的结果 因此怎样导入才能使身份证能够正常导入呢&#xff1f; 2. 解决方案 第一步&#xff1a; 选中身份证那一列 第二步&#xff1a; 右键选择&#xff0c;设置单元格格式 第三步&#xff1a; 数字列中&#x…

面试必问之锁的底层原理

sychrionzed的底层原理: 实例数据&#xff1a;存放类的属性数据信息&#xff0c;包括父类的属性信息&#xff1b; 对齐填充&#xff1a;由于虚拟机要求 对象起始地址必须是8字节的整数倍。填充数据不是必须存在的&#xff0c;仅仅是为了字节对齐&#xff1b;根据寻址优化算法 s…

开源免费多语言翻译模型

今天给大家介绍赫尔辛基大学开源免费的多语言翻译模型&#xff0c;赫尔辛基大学开发了1400多个多语种翻译模型&#xff0c;我们可以在Hugging Face网站上免费下载免费使用这些模型,今天我来介绍其中的中译英和英译中两个模型。 我机器的环境是win11,adaconda&#xff0c;pytho…

C++笔记之是否知道了一个数组首元素的地址就可以获取该整个数组?-合众新能源汽车面试官问题

C笔记之数组名和指针GPT问答记录 事前提要&#xff1a;前段时间去面合众新能源汽车&#xff0c;面试官说知道了一个数组首元素的地址&#xff0c;就可以获取该整个数组&#xff0c;我当时就困惑&#xff0c;不知道大小和长度&#xff0c;只知道地址怎么就能获取。但也没反驳面…

windows,win10去掉命令行窗口cmd选中内容后导致中断的问题

背景 cmd黑窗口被选中内容后&#xff0c;会暂时挂起/阻塞进程。如&#xff1a;node.js的一些命令&#xff0c;选中刷出的日志会导致请求阻塞、http请求后端api接口的日志被选中后也会阻塞 方法 左键点击cmd黑窗口左上角的图标&#xff0c;选择 “属性”&#xff08;要注意选…

9.3.1 【Linux】区块选择(Visual Block)

当我们按下 v 或者 V 或者 [Ctrl]v 时&#xff0c;这个时候光标移动过的地方就会开始反白&#xff0c;这三个按键的意义分别是&#xff1a; 9.3.2 多文件编辑 我们可以使用vim后面同时接好几个文件来同时打开&#xff0c;相关的按键有&#xff1a; 9.3.3 多窗口功能 分区窗口…

高压放大器在半导体测试行业的应用

半导体测试是一项非常重要的工作&#xff0c;它涉及到对半导体芯片进行电气、物理等方面的测试&#xff0c;以确保产品质量和性能。测试过程中需要使用高精度、高可靠性的测试设备和仪器&#xff0c;而高压放大器则是其中的一种重要工具。 在半导体测试中&#xff0c;高压放大器…

【ARM】-异常中断处理概述

文章目录 控制程序执行流程ARM 体系中异常中断种类 控制程序执行流程 在 ARM 体系中通常有以下 3 种方式控制程序的执行流程&#xff1a; 在正常程序中执行过程中&#xff0c;每执行一条 ARM 指令&#xff0c;程序计数寄存器 PC 的值加 4 个字节&#xff1b;每执行一条 Thumb…

Java——异常学习

一、什么是异常 Java的异常是指在程序运行过程中可能发生的错误或异常情况,如数组越界、除零错误、空指针等。 备注&#xff1a;(开发过程中的语法错误和逻辑错误不是异常) 二、Java异常分类 三、异常处理方式 下面先看以下代码 //下面创建一个用于计算的类 class calculate…

OpenCV读取一张深度图像并显示

#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp> #include

openGauss学习笔记-01 什么是openGauss

文章目录 openGauss学习笔记-01 什么是openGauss1.1 openGauss是一个数据库管理系统1.2 openGauss数据库是关系型的1.3 openGauss软件是开源的1.4 openGauss数据库具有高性能、高可用、高安全、易运维、全开放的特点1.4.1 高性能1.4.2 高可用1.4.3 高安全1.4.4 易运维1.4.5 全开…