获取请求的參数。rest技术相对于servlet来说要方便很多。

Servlet我们要获取请求的參数,非常麻烦啊。须要request.getParameter(“”)。假设我们要的是int,float这些东西,还须要去转换。

尽管说有ognl这种工具能够帮忙类型转换,自己主动设置对象值。还是麻烦。

可是rest就很方便。提供了一种注解的机制来自己将http请求參数类型转换成rest的方法參数。不不过http的请求參数。还支持cookie參数,路径參数等等。

那么我们来见识下申请的rest。

@Cookieparam

@FormParam

@HeaderParam

@MatrixParam

@PathParam

@QueryParam

@BeanParam

总共7个注解。

这里我先介绍下下面三个注解

@MatrixParam

@PathParam

@QueryParam

这三个注解都是从URL里面取东西的。

@MatrixParam取URL分号(;)后面的參数。

这个也要注意。一定要在?

号前面。

@PathParam取URL路径里的參数。使用的时候须要注意。要在@Path注解内放一个变量,用{}括起来。然后才干够使用。

@QueryParam取URL?

后面的请求參数。

那么如今就简单地搭个环境啦

package restparams;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("rest")
public class MyApplication extends Application {

}


这样的配置方式取代了xml的配置方式。指定了全部rest资源类的URL前缀。然后再写资源类。

package restparams;

import javax.ws.rs.GET;
import javax.ws.rs.MatrixParam;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

@Path("/max/{a}.html")
public class Max {

@GET
@Produces("text/html")
public String max(@PathParam("a") int a, @QueryParam("b") int b, @MatrixParam("c") int c) {
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
return "The max number is " + max;
}
}


​在@Path()注解中的{a}。能够将这段路径的值放入一个变量a中。比方/max/12.html,a的值就是12。​

​在以下的方法中就使用了@PathParam注解,将这个变量a注入到了int​​ a中。

以下这个URL,c是分号(;)后面的參数。所以是MatrixParam。查询參数就是get请求经常使用的,在问号(?)后面。

​http://localhost:8080/restparams/rest/max/5.html;c=2?b=3​

这个URL的訪问结果就是这样子的。

 REST技术第二步 获取URL中的參数_xml