JAX-RS之@formparam和@HeaderParam

2014-11-24 01:34:31 · 作者: · 浏览: 0

今天继续学习JAX-RS中的@formparam和@headerparam

1 @formparam
其功能是可以将前端的HTML绑定,先看例子


Java代码
html>

JAX-RS @FormQuery Testing





Name :



Age :







处理:

Java代码
@Path("/user")
public class UserService {

@POST
@Path("/add")
public Response addUser(
@FormParam("name") String name,
@FormParam("age") int age) {

return Response.status(200)
.entity("addUser is called, name : " + name + ", age : " + age)
.build();

}


对于前端的HTML浏览,比如:
http://localhost:8080/RESTfulExample/UserForm.html
会出现普通的HTML表单,当提交按钮时,会转到
http://localhost:8080/RESTfulExample/rest/user/add
这个URL,这样,REST就去匹配addUser方法了,所以就会把表单中提交的数据输出。


2 在JAX-RS中,有两种方法能取得HTTP REQUEST头,
1)@headparam

Java代码
@Path("/users")
public class UserService {

@GET
@Path("/get")
public Response addUser(@HeaderParam("user-agent") String userAgent) {

return Response.status(200)
.entity("addUser is called, userAgent : " + userAgent)
.build();

}

当访问URL:
/users/get
会输出HTTP 头信息,即:
addUser is called, userAgent : Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0

另外的方法是,
Java代码
@Path("/users")
public class UserService {

@GET
@Path("/get")
public Response addUser(@Context HttpHeaders headers) {

String userAgent = headers.getRequestHeader("user-agent").get(0);

return Response.status(200)
.entity("addUser is called, userAgent : " + userAgent)
.build();

}

也可以同样达到目的