@javax.ws.rs Webservice注解

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

用于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

目录
相关文章
|
Java
The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方案
The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方案
460 0
The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方案
|
6月前
spring3 springfox报错Type javax.servlet.http.HttpServletRequest not present
spring3 springfox报错Type javax.servlet.http.HttpServletRequest not present
208 0
|
缓存 Java
严重: Servlet[jsp]的Servlet.service()抛出异常 java.lang.IllegalStateException: 当前响应已经调用了方法getOutputStream()
严重: Servlet[jsp]的Servlet.service()抛出异常 java.lang.IllegalStateException: 当前响应已经调用了方法getOutputStream()
603 0
|
前端开发 JavaScript 小程序
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
56 0
|
存储 NoSQL Java
java.lang.IllegalStateException: Cannot load configuration class: org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration
java.lang.IllegalStateException: Cannot load configuration class: org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration报错问题处理
java.lang.IllegalStateException: Cannot load configuration class: org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration
|
Java 应用服务中间件 Apache
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path类似问题简单解决方案
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path类似问题简单解决方案
481 0
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path类似问题简单解决方案
|
JSON 前端开发 安全
org.springframework.http.converter.HttpMessageNotWritableException...解决方法
org.springframework.http.converter.HttpMessageNotWritableException...解决方法
org.springframework.http.converter.HttpMessageNotWritableException...解决方法
|
Java 应用服务中间件
Java Web——Servlet的过滤器接口(Filter)
Java Web——Servlet的过滤器接口(Filter)
Java Web——Servlet的过滤器接口(Filter)
|
Oracle Java 关系型数据库
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(下)
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(下)
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(下)
|
前端开发 Java 应用服务中间件
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(上)
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(上)
JavaEE的RESTful标准技术JAX-RS,jersey-client客户端使用介绍【享学Java】(上)