WEB开发网
开发学院软件开发Java Spring MVC与JAX-RS比较与分析 阅读

Spring MVC与JAX-RS比较与分析

 2010-08-04 00:00:00 来源:WEB开发网   
核心提示: 请求参数、Cookies和HTTP头 Spring MVC和JAX-RS拥有能够抽取这种HTTP请求值的注解:@GET@Pathpublicvoidfoo(@QueryParam("q")Stringq,@FormParam("f")Stringf,@Co

请求参数、Cookies和HTTP头

Spring MVC和JAX-RS拥有能够抽取这种HTTP请求值的注解:

@GET @Path 
public void foo(@QueryParam("q") String q, @FormParam("f") String f, @CookieParam("c") String c, 
  @HeaderParam("h") String h, @MatrixParam("m") m) { 
  // JAX-RS 
} 
 
@RequestMapping(method=GET) 
public void foo(@RequestParam("q") String q, @CookieValue("c") String c, @RequestHeader("h") String h) { 
  // Spring MVC 
} 

上面的注解非常像,区别在于JAX-RS支持矩阵参数(matrix parameters)的抽取,拥有单独的注解来处理查询字符串和表单参数。矩阵参数并不常见,他们类似于查询字符串参数,但却使用了特殊的路径片段(比如GET /images;name=foo;type=gif)。稍后将介绍表单参数。

假如使用了前请求范围声明资源,那么JAX-RS可以在属性和setters方法上使用上述注解。

Spring MVC有个特性能让我们少敲几个字符,如果注解名与Java参数名相同,那么就可以省略掉上面的注解名了。比如说,名为“q”的请求参数要求方法参数也得为“q”:

public void foo(@RequestParam String q, @CookieValue c, @RequestHeader h) { 
 
} 

这对于那些在参数中使用了注解而导致方法签名变长的情况来说实在是太方便了。请记住,这个特性要求代码使用调试符号进行编译。

类型转换与HTTP请求值的格式化

HTTP请求值(头、cookies和参数)是不变的字符串并且需要解析。

JAX-RS通过寻找valueOf()方法或是在客户化的目标类型中接收字符串的构造方法来解析请求数据。JAX-RS支持如下类型的注解方法参数,包括路径变量、请求参数、HTTP头值和cookies:

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Spring MVC JAX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接