Spring MVC与JAX-RS比较与分析
2010-08-04 00:00:00 来源:WEB开发网请求参数、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:
- ››Spring源码学习-含有通配符路径解析(上)
- ››Spring MVC与JAX-RS比较与分析
- ››Spring 框架的设计理念与设计模式分析
- ››Spring Web Flow 2 中流管理的持久化
- ››JAXP 全面介绍,第 1 部分:XML 处理工具包使解析...
- ››JAXP 全部内容,第 2 部分:使用 Sun 的 XML 处理...
- ››Spring 事务管理高级应用难点剖析: 第 2 部分
- ››Spring 事务管理高级应用难点剖析: 第 3 部分
- ››Spring 事务管理高级应用难点剖析,第 1 部分
- ››Spring之@Autowired问题
- ››spring 框架使用初步
- ››Spring 与 EJB 比较
更多精彩
赞助商链接