当前位置:编程学习 > JAVA >>

JAX-RS之@formparam和@HeaderParam

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

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

 
Java代码 
html> 
<body> 
    <h1>JAX-RS @FormQuery Testing</h1> 
  
    <form action="rest/user/add" method="post"> 
         
            Name : <input type="text" name="name" /> 
         
 
         
            Age : <input type="text" name="age" /> 
         
 
        <input type="submit" value="Add User" /> 
    </form> 
  
</body> 
</html> 


   处理:
 
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(); 
  
    } 

   也可以同样达到目的

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,