rest学习

										rest学习

(1)介绍:REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。
(2)统一接口
JAX-RS使用@javax.ws.rs.POST 、@javax.ws.rs.GET 、@javax.ws.rs.PUT、@javax.ws.rs.DELETE四个注解代表了对资源的CRUD(Create, Retrieve, Update, Delete)操作。
(3)定位资源
<1>注:下文中url中的root代表web应用的名称加上你在web.xml中servlet-mapping元素设置的路径。
@javax.ws.rs.ApplicationPath 标识应用路径,用于由@Path提供的所有资源uri的基本uri。当发布在一个servlet容器中,它的值可以使用web.xml中的servlet-mapping进行重写。
@javax.ws.rs.Path 标识要请求的资源类或类方法的uri路径。
@javax.ws.rs.PathParam 将uri中指定的路径参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。
例:
@Path("/user")
public class UserResource {
@GET
@Path("{userName}")
@Produces(MediaType.APPLICATION_JSON)
public User getUser(@PathParam(“userName”) String userName) {

}
}
当浏览器请求http://localhost:8080/root/user/boglond时,方法中userName值为boglond。
@javax.ws.rs.QueryParam 将http请求的Query参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。
例:@Path("/user")
public class UserRecource {
@GET
@Path("/getUser")
@Produces(MediaType.APPLICATION_JSON)
public User getUser(@QueryParam(“userName”) String userName,@QueryParam(“age”) int age) {

}
}
当浏览器请求http://localhost:8080/root/user/getUser?userName=boglond&age=26时,方法中userName值为boglond,age值为26。
@javax.ws.rs.FormParam 将http请求的Form表单中的参数绑定到资源方法参数
例:
@Path("/user")
public class UserRecource {
@javax.ws.rs.POST
@Path("/insert")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String insertUser(@FormParam(“userName”) String userName,@FormParam(“age”) int age){

}
}
页面中的form表单如下

姓名: 年龄: 提交 提交表单后方法中userName值为boglond,age值为26。 @javax.ws.rs.CookieParam 将http cookie的值绑定到资源方法参数,资源类的字段,或资源类的bean属性。 例: @Path("/user") public class UserRecource { @GET @Path("/getCookieParam") @Produces(MediaType.APPLICATION_JSON) public String getCookieParam(@CookieParam("JSESSIONID") String jsessionId) { ... } } 当浏览器请求http://localhost:8080/root/user/getCookieParam时,方法中jsessionId值为”FFF7BDDC46579DBDDDEB3E94776A2623″,此值不是固定的,不同的浏览器有不同的值。 @javax.ws.rs.HeaderParam 将http header的值绑定到资源方法参数,资源类的字段,或资源类的bean属性。 例:@Path("/user") public class UserRecource { @GET @Path("/getHeaderParam") @Produces(MediaType.APPLICATION_JSON) public String getHeaderParam(@HeaderParam("Accept") String accept,@HeaderParam("Accept-Language") String acceptLang) { ... } } 当浏览器请求http://localhost:8080/root/user/getHeaderParam时,方法中accept值为”text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8″,acceptLang值为”zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3″,不同的浏览器,值有所不同。 @javax.ws.rs.MatrixParam 将uri矩阵参数的值绑定到资源方法参数,资源类的字段,或资源类的bean属性。 例:@Path("/user") public class UserRecource { @GET @Path("/getUser") @Produces(MediaType.APPLICATION_JSON) public User getUser(@MatrixParam("userName") String userName,@MatrixParam("age") int age) { ... } } 当浏览器请求http://localhost:8080/root/user/getUser;userName=boglond;age=26时,方法中userName值为boglond,age值为26。 @javax.ws.rs.DefaultValue 设置 @PathParam, @QueryParam, @MatrixParam, @CookieParam, @FormParam, or @HeaderParam参数的默认值。如果它们没有接收到值,就使用默认值。 @javax.ws.rs.BeanParam 将请求中的bean绑定到资源方法参数,资源类的字段,或资源类的bean属性。 例:bean配置 @javax.xml.bind.annotation.XmlRootElement public class UserBean{ @FormParam("userName") private String userName; @FormParam("age") private int age; ... } 资源类方法的配置: @Path("/user") public class UserRecource { @javax.ws.rs.POST @Path("/insertUserBean") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String insertUserBean(@BeanParam UserBean userBean){ ... } } 页面中的 姓名: 年龄: 提交 当提交表单后insertUserBean方法中的userBean对象的属性值会映射为表单中对应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值