当前位置: 首页 > news >正文

@javax.ws.rs Webservice注解

用于webservice。

1.路径

@javax.ws.rs.Path

标识要请求的资源类或资源方法的uri路径。
例,@Path("animal"),表示下一层路径是animal时要处理的事务。
@Path("{species}")这种带大括号的表示方法,表示下一层路径会被参数化,配合@PathParam("species")使用可以赋值给函数的参数。

对于代码:

@Path("animal")
public class Animal {
	public String species,name;
	public int age;
	public static Animal animal=new Animal();
	
	@GET
	@Path("{species}")
	@Produces(MediaType.APPLICATION_JSON)
	public Animal wsAnimal(@PathParam("species") String species,
			@QueryParam("name") String name,
			@QueryParam("age") int age
			){
		animal.species=species;
		animal.name=name;
		animal.age=  age==0?2:age;
		return animal;
	}
}

效果见图1-1:


图 1-1 @Path 用法示例


2.从报文数据到方法参数

@javax.ws.rs.PathParam

将uri中指定的路径参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。

@javax.ws.rs. QueryParam

将http请求的Query参数赋值给函数的参数。

@javax.ws.rs.DefaultValue

设置@QueryParam参数的默认值。如果@QueryParam没有接收到值,就使用默认值。比如:

public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}
@javax.ws.rs. FormParam

将http请求的Form表单中的参数赋值给函数的参数。

@avax.ws.rs.Context

用于获取环境信息。一个获取客户端ip的例子见下:

@Path("util")
public class Util {
	
	@Path("getClientIp")
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String getClientIp(@Context HttpServletRequest request){
		return request.getRemoteAddr();
	}
}

3.http方法

@javax.ws.rs.GET
表示此方法响应一个HTTP GET请求。

@javax.ws.rs.POST
表示此方法响应一个HTTP POST请求。

@javax.ws.rs.PUT

通常用来更新数据。

@javax.ws.rs.DELETE

通常用来删除数据。

4.返回数据类型

@javax.ws.rs.Produces
设置Http返回报文,报文体的内容类型。
取值为 javax.ws.rs.core.MediaType.XXX。常用的有:

MediaType.APPLICATION_JSON
MediaType.TEXT_PLAIN

相关文章:

  • webservice测试窗体只能用于来自本地计算机的请求
  • MySQL 关闭子表的外键约束检察
  • YUM命令使用
  • 深入详解SQL中的Null
  • 博客迁移
  • STM32 USB虚拟串口(转)
  • leetcode------Gas Station
  • 实用的JS代码段(表单篇)
  • 【VMCloud云平台】SCAP(四)连接公有云(二)
  • easytouch使用方法
  • Django从安装到目录创建
  • Liam的C# 学习历程(五):正则表达式(Regular Expressions)
  • 收集谷歌替代网站
  • fsync与数据库日志刷新
  • 第十六次课:Servlet实现商品用户评价
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CAP理论的例子讲解
  • Laravel5.4 Queues队列学习
  • mac修复ab及siege安装
  • npx命令介绍
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 欢迎参加第二届中国游戏开发者大会
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据可视化之 Sankey 桑基图的实现
  • 我有几个粽子,和一个故事
  • 写给高年级小学生看的《Bash 指南》
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 译有关态射的一切
  • elasticsearch-head插件安装
  • 湖北分布式智能数据采集方法有哪些?
  • #FPGA(基础知识)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (Java)【深基9.例1】选举学生会
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (办公)springboot配置aop处理请求.
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (篇九)MySQL常用内置函数
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)fock函数详解
  • (转载)OpenStack Hacker养成指南
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .cn根服务器被攻击之后
  • .net 受管制代码
  • .net分布式压力测试工具(Beetle.DT)
  • .NET实现之(自动更新)
  • .Net语言中的StringBuilder:入门到精通
  • :O)修改linux硬件时间