博客
关于我
JAX-RS之@formparam和@HeaderParam
阅读量:129 次
发布时间:2019-02-26

本文共 2362 字,大约阅读时间需要 7 分钟。

今天继续学习JAX-RS中的@formparam和@headerparam
1 @formparam
    其功能是可以将前端的HTML绑定,先看例子
 
Java代码
  1.   
  2. html>   
  3. <body>   
  4.     <h1>JAX-RS @FormQuery Testing</h1>   
  5.     
  6.     <form action="rest/user/add" method="post">   
  7.            
  8.             Name : <input type="text" name="name" />   
  9.            
  10.   
  11.            
  12.             Age : <input type="text" name="age" />   
  13.            
  14.   
  15.         <input type="submit" value="Add User" />   
  16.     </form>   
  17.     
  18. </body>   
  19. </html>  
html>	

JAX-RS @FormQuery Testing

Name :
Age :
   处理:
  
Java代码
  1. @Path("/user")   
  2. public class UserService {   
  3.     
  4.     @POST  
  5.     @Path("/add")   
  6.     public Response addUser(   
  7.         @FormParam("name") String name,   
  8.         @FormParam("age"int age) {   
  9.     
  10.         return Response.status(200)   
  11.             .entity("addUser is called, name : " + name + ", age : " + age)   
  12.             .build();   
  13.     
  14.     }  
@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代码
  1.   
  2. @Path("/users")   
  3. public class UserService {   
  4.     
  5.     @GET  
  6.     @Path("/get")   
  7.     public Response addUser(@HeaderParam("user-agent") String userAgent) {   
  8.     
  9.         return Response.status(200)   
  10.             .entity("addUser is called, userAgent : " + userAgent)   
  11.             .build();   
  12.     
  13.     }  
@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代码
  1. @Path("/users")   
  2. public class UserService {   
  3.     
  4.     @GET  
  5.     @Path("/get")   
  6.     public Response addUser(@Context HttpHeaders headers) {   
  7.     
  8.         String userAgent = headers.getRequestHeader("user-agent").get(0);   
  9.     
  10.         return Response.status(200)   
  11.             .entity("addUser is called, userAgent : " + userAgent)   
  12.             .build();   
  13.     
  14.     }  
@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(); 	}
   也可以同样达到目的 

转载地址:http://aacf.baihongyu.com/

你可能感兴趣的文章
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>
MYSQL:基础——触发器
查看>>
Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
查看>>