zoukankan      html  css  js  c++  java
  • 【转】@javax.ws.rs Webservice注解

    用于webservice。

    1.路径

    @javax.ws.rs.Path

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

    对于代码:

    1. @Path("animal")  
    2. public class Animal {  
    3.     public String species,name;  
    4.     public int age;  
    5.     public static Animal animal=new Animal();  
    6.       
    7.     @GET  
    8.     @Path("{species}")  
    9.     @Produces(MediaType.APPLICATION_JSON)  
    10.     public Animal wsAnimal(@PathParam("species") String species,  
    11.             @QueryParam("name") String name,  
    12.             @QueryParam("age") int age  
    13.             ){  
    14.         animal.species=species;  
    15.         animal.name=name;  
    16.         animal.age=  age==0?2:age;  
    17.         return animal;  
    18.     }  
    19. }  
    @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没有接收到值,就使用默认值。比如:

    1. public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}  
    public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}

    @javax.ws.rs.FormParam

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

    @avax.ws.rs.Context

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

    1. @Path("util")  
    2. public class Util {  
    3.       
    4.     @Path("getClientIp")  
    5.     @GET  
    6.     @Produces(MediaType.TEXT_PLAIN)  
    7.     public String getClientIp(@Context HttpServletRequest request){  
    8.         return request.getRemoteAddr();  
    9.     }  
    10. }  
    @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

  • 相关阅读:
    网络通信过程
    路由表转发分析实例
    随机生成MAC地址和IP地址
    zabbix监控LAMP全教程
    linux ssh利用公钥免密登陆
    如果Mysql插入字符始终乱码怎么办?
    Windows 桌面利用 Navicat等工具连接 虚拟机Mysql
    pagefile.sys 虚拟内存
    linux常用命令---------------find
    当你使用Pycharm编译程序的时候,遇到了这个问题,该怎么办?please select a valid interpreter
  • 原文地址:https://www.cnblogs.com/caogen1991/p/7902722.html
Copyright © 2011-2022 走看看