`

JAX-RS之@formparam和@HeaderParam

阅读更多
今天继续学习JAX-RS中的@formparam和@headerparam

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

 

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>


   处理:
  
@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
  

@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

   另外的方法是,
@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();
 
	}


   也可以同样达到目的
2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics